別のディレクトリでアクションを実行する 質問する

別のディレクトリでアクションを実行する 質問する

私は 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

おすすめ記事