私は Github アクションを調べ始めたばかりですが、コマンドを複数の場所に配置していることに気付きました。
composer.json
がルートにないPHP プロジェクトがあり、構造は次のようになります。
my-project:
readme.md
app:
composer.json
明らかに、他にも理由があり、理由もありますが、私のcomposer.json
は「app」というサブディレクトリにあります。その結果、私のワークフローでは、コマンドを実行するたびにそのフォルダに cd する必要があります。
name: CI
on: [push]
jobs:
phpunit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Setup Symfony
run: |
cd app
cp .env.dev .env
- name: Install Composer Dependencies
run: |
cd app
composer install --prefer-dist
- name: Run Tests
run: |
cd app
php bin/phpunit
cd app
各ステージでを削除するにはどうすればよいですか?
ベストアンサー1
更新working-directory
:ジョブのデフォルトを設定できるようになりました。この答え。
ステップに を設定するオプションはありますworking-directory
が、複数のステップやジョブ全体には設定できません。このオプションはスクリプト ステップにのみ機能し、 を含むアクション ステップには機能しないと確信していますuses
。
https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsrun
を使用するとworking-directory
、ワークフローは次のようになります。まだかなり冗長ですが、少しはすっきりするかもしれません。
name: CI
on: [push]
jobs:
phpunit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Setup Symfony
working-directory: ./app
run: cp .env.dev .env
- name: Install Composer Dependencies
working-directory: ./app
run: composer install --prefer-dist
- name: Run Tests
working-directory: ./app
run: php bin/phpunit
あるいは、すべてを 1 つのステップで実行して、working-directory
一度だけ指定すればよいようにすることもできます。
name: CI
on: [push]
jobs:
phpunit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Setup and run tests
working-directory: ./app
run: |
cp .env.dev .env
composer install --prefer-dist
php bin/phpunit