Github アクションが、昨日は機能していた再利用可能なワークフローに対して突然「バージョンが指定されていません」とスローする 質問する

Github アクションが、昨日は機能していた再利用可能なワークフローに対して突然「バージョンが指定されていません」とスローする 質問する

これがバグなのか、昨日の時点で重大な変更が起こったのかはわかりませんが、再利用可能な 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ディレクトリリポジトリの。ワークフロー ディレクトリのサブディレクトリはサポートされていません。

GitHub ドキュメントリファレンス

その場合、これによるとドキュメントのその他のセクション:

再利用可能なワークフロー ファイルを参照するには、次のいずれかの構文を使用します。

{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再利用可能なワークフローがすでにデフォルト ブランチに存在する場合は、テストするブランチのワークフローを確実に使用できるように、ワークフロー呼び出しの最後に を追加できることに注意してください。

おすすめ記事