前置き
gh actions-lock については下記が詳しいです。
1回 gh actions-lock を実行してしまえば既存のactionに関してはdependabotとかでlockファイルが更新されます。
しかし新しいworkflowやactionを追加した時に gh actions-lock を実行してlockファイルを更新しないと意味がありません。
リポジトリ側の設定でlockファイルの更新を強制する(lockファイルが古いままだとエラーにする)みたいなことができるとよかったんですが、そういう設定が見つからなかったのでCIでチェックするようなworkflowを作りました
.github/workflows/verify-actions-lockfile.yml
.github/workflows/ が更新された時に gh actions-lock --verify を実行するだけの簡単なworkflow
特別な設定は使ってないので下記をコピペするだけで動くはず。ブランチ名や actions/checkout のバージョンは適宜修正してください。
name: Verify Actions Lockfile on: pull_request: paths: - ".github/workflows/*.yml" - ".github/workflows/actions.lock" push: branches: - main paths: - ".github/workflows/*.yml" - ".github/workflows/actions.lock" permissions: contents: read jobs: verify: runs-on: ubuntu-slim steps: - uses: actions/checkout@v7.0.1 - name: Install gh-actions-lock run: gh extension install github/gh-actions-lock - name: Verify lockfile run: gh actions-lock --verify env: GH_TOKEN: ${{ github.token }}
Reusable workflow版
コピペするだけとはいえ100個近いリポジトリにコピペして回ると内部のロジック変えたくなった時に困るのでsue445 namespaceに関しては https://github.com/sue445/workflows#verify-actions-lockfile みたいにしました。

