Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

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

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

注: GitHub ホステッド ランナーは、現在 GitHub Enterprise Server でサポートされていません。 GitHub public roadmap で、今後の計画的なサポートの詳細を確認できます。

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

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

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

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

GitHub.com で GitHub Actions ワークフローを実行してランナーツールキャッシュにデータを入力できます。このワークフローは、GitHub ホストランナーのツールキャッシュをアーティファクトとしてアップロードし、インターネットで切断されたセルフホストランナーで転送および抽出できます。

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

前提条件

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

セルフホストランナーのツールキャッシュに入力する

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

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

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

    name: Upload Node.js 10 and 12 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 10
            uses: actions/setup-node@v3
            with:
              node-version: 10.x
          - name: Setup Node 12
            uses: actions/setup-node@v3
            with:
              node-version: 12.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
                ├── 10.22.0
                │   └── ...
                └── 12.18.3
                    └── ...
    

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