これがバグなのか、昨日の時点で重大な変更が起こったのかはわかりませんが、再利用可能な 3 つのワークフローを呼び出す非常にシンプルなセットアップがあります。
name: pr-checks
on:
pull_request:
branches: "**"
jobs:
lint:
name: Call Lint
uses: ./.github/checks/check-lint.yaml
test:
name: Call Test
uses: ./.github/checks/check-test.yaml
e2e:
name: Call E2E
uses: ./.github/checks/check-e2e.yaml
しかし、これは
"invalid value workflow reference: no version specified"
昨日は同一のワークフローが機能していたにもかかわらず、現時点では。
このようなワークフローを「ジョブ」レベルで再利用する場合、バージョンを指定する必要はありません。実際、バージョンを指定するとエラーが発生していました。
あまり意味がないと思うのでスクリーンショットを添付します。
「すべてのジョブを再実行」をクリックしましたが、正常に再実行されました。
ただし、識別できる違いはなく、ビルド ステップを削除した後でも、何もおかしなことが起こっていないことを確認しました。
ベストアンサー1
2 つのスクリーンショットでわかるように、1 つはディレクトリ.github/workflows
(機能したもの) を参照しており、もう 1 つはディレクトリ.github/checks
(機能しなかったもの) を参照しています。
短い答え: workflows
ワークフロー フォルダーをではなく に戻すとchecks
、期待どおりに動作するはずです。
長い答え:2 つの異なる概念の構文が混乱しているようです:
- ローカルアクション(同じリポジトリ内のアクションを使用)
- 再利用可能なワークフロー(同じワークフローを異なるワークフローで再利用する)
ローカルアクション
アクセスするためにローカルアクションaction.yml
ワークフローから(ファイルを含むフォルダー) を削除するには、actions/checkout
最初のものを使用して、他のリポジトリ フォルダーとファイルにアクセスできるようにする必要があります。
例:
steps:
- uses: actions/checkout@v3 # Necessary to access local action
- name: Local Action Call
uses: ./.github/actions/local-action #path/to/action
POCを作成しましたここ見たい方は少し前にご覧ください。
再利用可能なワークフロー
さて、もしあなたが使いたいのであれば再利用可能なワークフロー問題は異なります:
他のワークフローファイルと同様に、再利用可能なワークフローは
.github/workflows
ディレクトリリポジトリの。ワークフロー ディレクトリのサブディレクトリはサポートされていません。
その場合、これによるとドキュメントのその他のセクション:
再利用可能なワークフロー ファイルを参照するには、次のいずれかの構文を使用します。
{owner}/{repo}/.github/workflows/{filename}@{ref}
パブリックリポジトリで再利用可能なワークフロー用。
./.github/workflows/{filename}
同じリポジトリ内で再利用可能なワークフローを実現します。
{ref}
できるシャ、リリースタグ、または支店名。
例:
lint:
name: Call Lint
uses: ./.github/workflows/check-lint.yaml@{SHA/TAG/BRANCH}
または
lint:
name: Call Lint
uses: ./.github/workflows/check-lint.yaml
これは別のPOCですワークフロー呼び出しこれを使って再利用可能なワークフロー
結論
これは、再利用可能なワークフローをローカル アクションであるかのように呼び出そうとしているようなものですが、再利用可能なワークフローは.github/workflows
ディレクトリ内に配置する必要があるため、機能しません。
@branch-name
再利用可能なワークフローがすでにデフォルト ブランチに存在する場合は、テストするブランチのワークフローを確実に使用できるように、ワークフロー呼び出しの最後に を追加できることに注意してください。