ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

Setting up the tool cache on self-hosted runners without internet access

To use the the included actions/setup actions on self-hosted runners without internet access, you must first populate the runner's tool cache for your workflows.

ここには以下の内容があります:

GitHub Actions の支払いを管理する GitHubは、macOSランナーのホストにMacStadiumを使用しています。

About the included setup actions and the runner tool cache

GitHub Actions on GitHub Enterprise Server is designed to work in environments without internet access. By default, workflows cannot use actions from GitHub.com and GitHub Marketplace.

ほとんどの公式の GitHub 作成のアクションは自動的に GitHub Enterprise Server にバンドルされます。 However, self-hosted runners without internet access will require some configuration before they can use the included actions/setup-LANGUAGE actions, such as setup-node.

The actions/setup-LANGUAGE actions normally need internet access to download the required environment binaries into the runner's tool cache. Self-hosted runners without internet access can't download the binaries, so you must manually populate the tool cache on the runner.

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

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

必要な環境

  • Determine which development environments your self-hosted runners will need. The following example demonstrates how to populate a tool cache for the setup-node action, using Node.js versions 10 and 12.
  • ワークフロー実行に使用できる GitHub.com のリポジトリへのアクセス。
  • Access to your self-hosted runner's file system to populate the tool cache folder.

Populating the tool cache for a self-hosted runner

  1. On GitHub.com, navigate to a repository that you can use to run a GitHub Actions workflow.

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

    The following example demonstrates a workflow that uploads the tool cache for an Ubuntu 18.04 environment, using the setup-node action with Node.js versions 10 and 12.

    name: Upload Node.js 10 and 12 tool cache
    on: push
    jobs:
      upload_tool_cache:
        runs-on: ubuntu-18.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@v1
            with:
              node-version: 10.x
          - name: Setup Node 12
            uses: actions/setup-node@v1
            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@v2
            with:
              path: ${{runner.tool_cache}}/tool_cache.tar.gz
    
  3. Download the tool cache artifact from the workflow run. アーティファクトのダウンロード手順については、「ワークフローアーティファクトをダウンロードする」を参照してください。

  4. Transfer the tool cache artifact to your self hosted runner and extract it to the local tool cache directory. The default tool cache directory is RUNNER_DIR/_work/_tool. If the runner hasn't processed any jobs yet, you might need to create the _work/_tool directories.

    After extracting the tool cache artifact uploaded in the above example, you should have a directory structure on your self-hosted runner that is similar to the following example:

    RUNNER_DIR
    ├── ...
    └── _work
        ├── ...
        └── _tool
            └── node
                ├── 10.22.0
                │   └── ...
                └── 12.18.3
                    └── ...
    

Your self-hosted runner without internet access should now be able to use the setup-node action. If you are having problems, make sure that you have populated the correct tool cache for your workflows. For example, if you need to use the setup-python action, you will need to populate the tool cache with the Python environment you want to use.

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

OR, learn how to contribute.