virtual-environments - GitHub Actions ランナー イメージ

(GitHub Actions runner images)

Created at: 2019-06-05 23:02:59
Language: PowerShell
License: MIT

GitHub Actions ランナー イメージ

目次

このリポジトリには、アクションに使用されるGitHub でホストされるランナーの VM イメージの作成に使用されるソース コードと、Azure パイプラインで使用されるMicrosoft でホストされるエージェントの VM イメージを作成するために使用されるソース コードが含まれています。このリポジトリのソースから VM マシンを構築するには、手順を参照してください。

利用可能な画像

画像 YAML ラベル 付属ソフトウェア 最新のイメージ リリースのロールアウトの進行状況
Ubuntu 22.04
ubuntu-22.04
ubuntu-22.04 ステータス22
Ubuntu 20.04
ubuntu-latest
また
ubuntu-20.04
ubuntu-20.04 ステータス20
Ubuntu 18.04 の非推奨
ubuntu-18.04
ubuntu-18.04 ステータス18
macOS 12
macos-12
macOS-12 statusumac12
macOS 11
macos-latest
また
macos-11
macOS-11 statusmac11
macOS 10.15 の廃止
macos-10.15
macOS-10.15 statusmac10
Windows Server 2022
windows-latest
また
windows-2022
窓-2022 ステータスウィン22
Windows サーバー 2019
windows-2019
窓-2019 ステータスwin19

ラベル スキーム

  • 一般に、
    -latest
    ラベルは GA である最新の OS イメージ バージョンに使用されます。
  • ラベルを新しい OS バージョンに移行する前に
    -latest
    、変更を発表し、ユーザーがワークフローを更新するのに十分なリード タイムを与えます。

画像の定義

ベータ

ベータ版の目的は、GA にリリースされる前にイメージに関するフィードバックを収集することです。ベータ版の目標は、そのイメージに存在する潜在的な問題を特定して修正することです。画像は毎週更新されます。ベータ イメージで実行されるワークフローは、アクションに適用される顧客のSLAには該当しません。ベータ イメージの使用を選択したお客様は、課題を作成して、runner-images リポジトリでフィードバックを提供することをお勧めします。ベータ版は、公開と非公開など、さまざまな可用性を持つ場合があります。

GA

GA (General Availability) イメージはベータ期間を経ており、一般的な使用の準備ができていると見なされます。画像は毎週更新されます。GA に移行するには、イメージが次の基準を満たしている必要があります。

  1. ベータ期間を経ている (公開または非公開)
  2. イメージにインストールするほとんどの主要なソフトウェアには、基盤となる OS と互換性のあるバージョンがあります。
  3. ベータ期間中に報告された主要なバグはすべて対処されています。

このイメージ タイプは、アクションに関する顧客のSLAに該当します。GA イメージは、OS の最新の 2 つのバージョンのみをサポートするため、ガイドラインに従って最終的に非推奨になります。

イメージリリース

変化に追従する最善の方法

  1. このリポジトリの最新リリースは、こちらで検索してください。

  2. このリポジトリからリリースされるリリースを購読してください。手順はこちらです。

  3. 今後の変更: イメージの展開が開始されると、プレリリースが作成されます。展開が完了するとすぐに、プレリリースはリリースに変換されます。リリースを購読している場合は、プレリリースの通知も受け取ります。

    • awaiting-deploymentラベルを使用して、今後の変更を追跡することもできます。
  4. 影響の大きい変更については、事前にブログtwitterの GitHub Changelog に投稿します。

    • 例: 互換性を破る変更、イメージの GA または非推奨
  5. また、お知らせラベルを表示して、重要な今後の変更を確認することもできます。

ケイデンス

  • 通常、ランナー イメージのソフトウェアに毎週更新を展開します。

ソフトウェアとイメージのサポート

サポートポリシー

  • ツールとバージョンは通常、非推奨またはサポート終了から 6 か月後に削除されます

  • 一度に (最大で) 2 つの GA イメージと 1 つのベータ イメージをサポートします。最新の OS イメージ ラベルが GA にリリースされたら、最も古いイメージ ラベルの廃止プロセスを開始します。

  • イメージには通常、インストールされているパッケージの最新バージョンが含まれています。ただし、Canonical が提供するリポジトリにほとんど依存している Ubuntu LTS は除きます。

  • 一般的なツールには、次の戦略に従って複数のバージョンを並べてインストールできます。

ツール名 インストール戦略
Docker イメージ 3 つ以下の最新の LTS OS\tool バージョン。新しいイメージまたは現在のイメージの新しいバージョンは、標準のツール リクエスト プロセスを使用して追加されます
ジャワ すべての LTS バージョン
Node.js 3 つの最新の LTS バージョン
行け 3 つの最新のマイナー バージョン
パイソン
ルビー
最も人気のある 5 つの
major.minor
バージョン
PyPy 最も人気のある 3 つの
major.minor
バージョン
.NET コア 2 つの最新 LTS バージョンと 1 つの最新バージョン。各機能バージョンには、最新のパッチのみがインストールされます
GCC
GNU Fortran
Clang
GNU C++
3 つの最新メジャー バージョン
Android NDK 1 つの最新の非 LTS バージョン、2 つの最新の LTS バージョン
Xcode - すべての OS 互換バージョンを並べて表示
- ベータ版、GM バージョンの場合 - 最新のベータ版のみ
- 古いパッチ バージョンは 3 か月で廃止されます

イメージの非推奨ポリシー

  • 新しい GA OS バージョンがリリースされると、イメージは最も古いイメージ ラベルの非推奨プロセスを開始します。
  • 非推奨プロセスは、非推奨の日付を設定するアナウンスから始まります
  • 日付が近づくにつれて、GitHub はスケジュールされたイメージのブラウンアウトを開始します。
  • この間、非推奨であることをユーザーに知らせるために、レポに固定されたアナウンスが表示されます。
  • 最後に、GitHub はイメージを非推奨にし、使用できなくなります

インストール前のポリシー

一般に、イメージに何をプレインストールするかを決定する際に従うガイドラインは次のとおりです。

  • 人気: 広く使用されているツールとエコシステムが優先されます。
  • 最新のテクノロジー: 最新バージョンのツールが優先されます。
  • 非推奨: サポート終了のツールとバージョンは追加されません。
  • ライセンス: MIT、Apache、または GNU ライセンスが許可されます。
  • 画像の時間と空間: ツールをプリインストールすることで、どれだけの時間が節約され、どれだけのスペースが使用されるかを評価します。
  • サポート: ツールが複数のバージョンのサポートを必要とする場合、このメンテナンスのコストを考慮します。

デフォルトのバージョン更新ポリシー

  • 通常、新しいバージョンがイメージにインストールされると、デプロイの 2 週間前にデフォルト バージョンの更新が発表されます。
  • 潜在的に危険なアップデートについては、発表から展開までのタイムラインを最大 1 か月延長する場合があります。

レポを操作する方法

よくある質問

GitHub Actions と Azure DevOps で利用できるイメージは何ですか?

GitHub Actions と Azure DevOps のイメージの可用性は同じです。ただし、非推奨ポリシーは異なる場合があります。詳細については、ドキュメントを参照してください。

ビルドで使用されているイメージのバージョンは?

通常、イメージのデプロイには 2 ~ 3 日かかり、

main
ブランチのドキュメントはデプロイが完了したときにのみ更新されます。特定のビルドで使用されているイメージ バージョンとソフトウェア バージョンを確認するには、
Set up job
(GitHub Actions) または
Initialize job
(Azure DevOps) ステップ ログを参照してください。 アクションランナー画像

他の Linux ディストリビューションをお探しですか?

他の Linux ディストリビューションを提供する予定はありません。ホストされたランナー イメージで他のディストリビューションを使用してビルドする場合は、Docker を使用することをお勧めします。または、セルフホステッド ランナーを活用して、ニーズに合わせて VM イメージを完全にカスタマイズすることもできます。

macOS ソースに貢献するにはどうすればよいですか?

macOS ソースはこのリポジトリにあり、誰でも利用できます。ただし、macOS のイメージ生成 CI はまだ外部コントリビューションをサポートしていないため、現時点ではプル リクエストを受け入れることができません。

貢献を受け入れるために macOS CI を準備中です。それまでは、ご不便をおかけしますが、引き続き問題を報告してツールのリクエストを行ってくださいますようお願いいたします。

GitHub はどのツールがイメージにインストールされているかをどのように判断しますか?

一部のツールについては、展開時に常に最新のものをインストールします。それ以外の場合は、ツールを特定のバージョンに固定します。詳細については、プレインストール ポリシーを参照してください。

新しいツールがイメージにプレインストールされるように要求するにはどうすればよいですか? プル リクエストを作成する前に、Issue を作成し、このツールをイメージに追加するための承認を得てください。