Skip to main content

インターネットにアクセスできないセルフホストランナーにツールキャッシュを設定する

インターネットにアクセスできないセルフホステッド ランナー上の actions/setup アクションを使用するには、最初にワークフローのランナーのツール キャッシュにデータを入力する必要があります。

メモ

GitHub Enterprise Server ホステッド ランナーは、現在 GitHub ではサポートされていません。

含まれているセットアップアクションとランナーツールキャッシュについて

GitHub Actions 上の GitHub Enterprise Server は、インターネット アクセスのない環境で動作するように設計されています。 既定では、ワークフローは GitHub.com と GitHub Marketplace からのアクションを使用できません。

ほとんどの公式 GitHub作成されたアクションは、 GitHub Enterprise Serverに自動的にバンドルされます。 ただし、インターネットにアクセスできないセルフホステッド ランナーでは、actions/setup-LANGUAGE などの付属の setup-node アクションを使用する前に、いくつかの構成が必要です。

actions/setup-LANGUAGE アクションは通常、必要な環境バイナリをランナーのツール キャッシュにダウンロードするためにインターネット アクセスが必要です。 インターネットにアクセスできないセルフホストのランナーはバイナリをダウンロードできないため、ランナーのツールキャッシュに手動でデータを入力する必要があります。

GitHub Actions 上で GitHub.com ワークフローを実行すると、GitHub ホスト型ランナーのツール キャッシュをアーティファクトとしてアップロードでき、その後、それをインターネットに接続していないセルフホステッド ランナーに転送して展開することで、ランナー ツール キャッシュを格納できます。

メモ

同一のオペレーティング システムとアーキテクチャを持つセルフホステッド ランナーには、 GitHubホストランナーのツール キャッシュのみを使用できます。 たとえば、 ubuntu-22.04GitHub ホストランナーを使用してツール キャッシュを生成する場合、セルフホステッド ランナーは 64 ビット Ubuntu 22.04 コンピューターである必要があります。 GitHubホストランナーの詳細については、「GitHub ホステッド ランナー リファレンス」を参照してください。

前提条件

  • セルフホストランナーに必要な開発環境を決定します。 次の例は、Node.js バージョン 14 および 16 を使用して、setup-node アクションのツール キャッシュにデータを入力する方法を示しています。
  • ワークフローの実行に使用できる GitHub.com 上のリポジトリへのアクセス。
  • セルフホストのランナーのファイルシステムにアクセスして、ツールのキャッシュフォルダーにデータを入力します。

セルフホストランナーのツールキャッシュをポピュレートする

  1. GitHub.comで、GitHub Actions ワークフローの実行に使用できるリポジトリに移動します。

  2. リポジトリの .github/workflows フォルダーに、 GitHub ホストランナーのツール キャッシュを含む成果物をアップロードする新しいワークフロー ファイルを作成します。

    次の例は、Node.js バージョン 14 および 16 で setup-node アクションを使用して、Ubuntu 22.04 環境のツール キャッシュをアップロードするワークフローを示しています。

    name: Upload Node.js 14 and 16 tool cache
    on: push
    jobs:
      upload_tool_cache:
        runs-on: ubuntu-22.04
        steps:
          - name: Clear any existing tool cache
            run: |
              mv "${{ runner.tool_cache }}" "${{ runner.tool_cache }}.old"
              mkdir -p "${{ runner.tool_cache }}"
          - name: Setup Node 14
            uses: actions/setup-node@v4
            with:
              node-version: 14.x
          - name: Setup Node 16
            uses: actions/setup-node@v4
            with:
              node-version: 16.x
          - name: Archive tool cache
            run: |
              cd "${{ runner.tool_cache }}"
              tar -czf tool_cache.tar.gz *
          - name: Upload tool cache artifact
            uses: actions/upload-artifact@v3
            with:
              path: ${{runner.tool_cache}}/tool_cache.tar.gz
    
  3. ワークフロー実行からツールキャッシュアーティファクトをダウンロードします。 成果物のダウンロード手順については、「ワークフローの成果物をダウンロードする」をご覧ください。

  4. ツールキャッシュアーティファクトをセルフホストランナーに転送し、ローカルツールキャッシュディレクトリに抽出します。 既定のツール キャッシュ ディレクトリは RUNNER_DIR/_work/_tool です。 まだランナーがジョブを処理していない場合は、_work/_tool ディレクトリを作成する必要があるかもしれません。

    上記の例でアップロードされたツールキャッシュアーティファクトを抽出した後、次の例のようなセルフホストランナーのディレクトリ構造を作成する必要があります。

    RUNNER_DIR
    ├── ...
    └── _work
        ├── ...
        └── _tool
            └── node
                ├── 14.21.3
                │   └── ...
                └── 16.16.0
                    └── ...
    

インターネットにアクセスできないあなたのセルフホストランナーは、今やsetup-node アクションを使用できるようになるはずです。 問題が発生した場合は、ワークフローに適切なツールキャッシュを設定していることを確認してください。 たとえば、setup-python アクションを使用する必要がある場合は、使用するPython環境をツール キャッシュに設定する必要があります。