ドキュメントメニュー
はじめに
ダッシュボードと分析
マネージドランナー
キャッシュ
チームと通知
請求とプラン
ヘルプ
ランナーイメージに何が入っているか
すべての Latchkey ランナーにプリインストールされたツールチェーン: 言語、Docker、ブラウザ、データベース、パッケージマネージャー、そして GitHub 互換の toolcache。
すべてのランナーは、GitHub ホステッドランナーに匹敵するか上回るよう設計されたツールチェーンを備えた、メンテナンスされた Ubuntu 24.04 LTS (x86_64) イメージから起動するため、ほとんどのワークフローは変更なしで実行されます。
ツールチェーン#
| カテゴリ | プリインストール |
|---|---|
| Node.js | 20 (デフォルト)、22、24、npm と yarn 付き。nvm も利用可能 |
| Python | 3.10 から 3.14、加えて pipx と PyPy |
| Go | 1.22 から 1.25 |
| Java (Temurin) | 8、11、17、21、25、Maven、Gradle、Ant 付き |
| その他の言語 | Rust (stable + rustfmt + clippy)、.NET 8/9/10、Ruby (+ fastlane)、PHP 8.3 (+ Composer、Xdebug)、Haskell、Swift、Kotlin、Julia、PowerShell |
| コンテナ | BuildKit を備えた Docker CE、docker buildx、docker compose。Buildah、Podman、Skopeo |
| ブラウザ | Chrome、Firefox、Edge を対応するドライバー付きで。Selenium。Android SDK/NDK |
| データベース | PostgreSQL 16、MySQL 8.0 (起動時はサービス無効。ジョブ内で起動してください) |
| パッケージマネージャー | Homebrew、conda、vcpkg、加えて各言語ネイティブのもの |
| CLI の標準 | AWS CLI v2、jq、git、build essentials |
GitHub ホステッドの動作に合わせる#
このイメージの最も有用な特性は、変更する必要がないことです。actions/setup-node、actions/setup-python などのステップをそのままにしてください: それらはダウンロードする代わりに /opt/hostedtoolcache の GitHub 同等の toolcache から即座に解決されるため、移行中も同じワークフローファイルが両方のランナータイプで正しいまま保たれます。
バージョン固定に関する助言はどこでも同じです: イメージのデフォルトに頼るのではなく、setup アクションにバージョンを明示させてください。Node 20 がデフォルトで 22 と 24 もインストールされていますが、明示的な node-version を持つ setup-node ステップはワークフローに意図を語らせ、メンテナンスされるイメージが進化しても安定させます。
知っておく価値のある 3 つのこと#
docker buildx --platform linux/amd64,linux/arm64 がそのまま動作します。actions/setup-node、setup-python などがダウンロードなしで /opt/hostedtoolcache から即座に解決されます。データベースとブラウザ#
PostgreSQL 16 と MySQL 8.0 は、サービスが 起動時に無効 の状態でプリインストールされているため、ジョブが要求するまで邪魔になりません。必要なものを起動するのは 1 行のステップで、Latchkey 固有の何かではなく標準的な Ubuntu のサービス管理です:
それを使うステップの前にサービスを起動します:
steps:
- uses: actions/checkout@v4
- name: Start PostgreSQL
run: sudo systemctl start postgresql
- run: npm testMySQL 8.0 でも同じパターンです:
steps:
- uses: actions/checkout@v4
- name: Start MySQL
run: sudo systemctl start mysql
- run: npm testChrome、Firefox、Edge が対応するドライバーバージョンとともにプリインストールされ、Selenium も利用可能なため、ほとんどのブラウザテストスイートはインストールステップなしで実行されます。モバイル作業向けには、Android SDK と NDK もイメージに含まれています。
ジョブ内でサービスを起動することは、依存関係を明示的に保つことにもなります: ワークフローファイルを読む誰もが、そのスイートにデータベースが必要だとわかります。これはワークフローがランナータイプ間を移動するときに持っておく価値があります。