1. ホーム
  2. github

[解決済み] Github Actionsにおけるワークフロー間の依存関係

2023-07-09 07:17:02

質問

2つのワークフローを持つモノレポがあります。

.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

name: deploy

on:
  push:
    tags:
      - "*"

jobs:
  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.yml というタグで、そして test.yml はプッシュリクエストとプルリクエストにのみ使用します。ワークフロー間でジョブを重複させたくはないのです。

どのように解決するのですか?

Github Actionsで、ワークフロー間の依存関係を持つことができるようになりました。 ワークフロー実行 .

この設定を使って Release ワークフローは Run Tests ワークフローが完了したときに動作します。

name: Release
on:
  workflow_run:
    workflows: ["Run Tests"]
    branches: [main]
    types: 
      - completed