Githubアクションのワークフロー間の依存関係


9

私は2つのワークフローを持つmonorepoを持っています:

.github/workflows/test.yml

name: test

on: [push, pull_request]

jobs:
  test-packages:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - name: test packages
        run: |
          yarn install
          yarn test
...

.github/workflows/deploy.yml

  deploy-packages:
    runs-on: ubuntu-latest
    needs: test-packages
    steps:
      - uses: actions/checkout@v1
      - name: deploy packages
        run: |
          yarn deploy
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
...

これは機能しません。別のワークフローでジョブを参照できません。

### ERRORED 19:13:07Z

- Your workflow file was invalid: The pipeline is not valid. The pipeline must contain at least one job with no dependencies.

ワークフロー間の依存関係を作成する方法はありますか?

私が欲しいのは、タグで実行しtest.yml、プッシュおよびプルリクエストでのみ実行することです。ワークフロー間でジョブを複製したくない。deploy.ymltest.yml

回答:


3

ワークフロー間の依存関係を作成する方法はありますか?

現時点では可能ではないと思います。おそらくそれは彼らが将来追加する機能でしょう。個人的には、CircleCIのオーブのような機能が追加されて、ワークフローの共通セクションを共有する可能性が高いと思います。

代替ソリューションの場合、次の作業のようにすべてを同じワークフローに入れますか?でdeploy-packages始まるタグvがプッシュされている場合にのみ、ジョブが実行されます。

name: my workflow
on: [push, pull_request]
jobs:
  test-packages:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - name: test packages
        run: echo "Running tests"
  deploy-packages:
    if: startsWith(github.ref, 'refs/tags/v')
    runs-on: ubuntu-latest
    needs: test-packages
    steps:
      - uses: actions/checkout@v1
      - name: deploy packages
        run: echo "Deploying packages"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.