GitHub Actions、カスタムイメージの層化ビルドと snapshot 条件分岐
GitHub ホスト larger runner 向けカスタムイメージに、生成パイプラインの構成を柔軟にする機能が追加された。組織やエンタープライズでカスタムイメージを運用するチーム向けである。
- 既存のカスタムイメージをベースに新しいカスタムイメージを生成できる。共通ツールを含む共有ベースを維持し、各チームが独自の依存関係だけを上乗せする層化ワークフローが可能になる。
- ワークフローで
snapshotマッピングにifを付け、イメージ版を生成するタイミングを条件分岐できる。タグ push では snapshot をスキップする、といったテストやロールアウト制御に使える。 - カスタムイメージから派生したイメージは、ベースイメージの有効期限タイムラインを引き継ぐ。最大版年齢は派生イメージの生成日ではなく、ベースのビルド日から計算される。
snapshot の条件分岐の例は次のとおり。
yaml
jobs:
build:
runs-on: my-image-generation-runner
snapshot:
if: ${{ ! startsWith(github.ref, 'refs/tags/') }}
image-name: my-custom-image
version: 2.*
steps:
# 依存関係のセットアップ