Skip to main content

인터넷에 액세스할 수 없는 자체 호스팅 실행기에서 도구 캐시 설정

인터넷에 액세스하지 않고 자체 호스팅 실행기에서 포함된 actions/setup 작업을 사용하려면 먼저 워크플로에 대한 실행기 도구 캐시를 채워야 합니다.

참고: GitHub 호스트 실행기는 현재 GitHub Enterprise Server에서 지원되지 않습니다. GitHub public roadmap에 예정된 향후 지원에 대해 자세히 알아볼 수 있습니다.

포함된 설정 작업 및 실행기 도구 캐시 정보

GitHub Enterprise Server의 GitHub Actions는 완전한 인터넷 액세스가 없는 환경에서도 작동하도록 설계되었습니다. 기본적으로 워크플로는 GitHub.com 및 GitHub Marketplace의 작업을 사용할 수 없습니다.

GitHub에서 작성된 대부분의 공식 작업은 자동으로 GitHub Enterprise Server와 번들됩니다. 그러나 인터넷에 액세스할 수 없는 자체 호스팅 실행기가 포함된 actions/setup-LANGUAGE 작업(예: setup-node)을 사용하려면 몇 가지 구성이 필요합니다.

actions/setup-LANGUAGE 작업은 일반적으로 필요한 환경 이진 파일을 실행기 도구 캐시에 다운로드하기 위해 인터넷에 액세스할 수 있어야 합니다. 인터넷에 액세스할 수 없는 자체 호스팅 실행기는 이진 파일을 다운로드할 수 없으므로 실행기의 도구 캐시를 수동으로 채워야 합니다.

GitHub.com에서 GitHub 호스팅 실행기의 도구 캐시를 아티팩트로 업로드하는 GitHub Actions 워크플로를 실행하여 실행기 도구 캐시를 채울 수 있습니다. 그런 다음, 인터넷 연결이 끊긴 자체 호스팅 실행기에서 아티팩트를 전송하고 추출할 수 있습니다.

참고: 운영 체제와 아키텍처가 동일한 자체 호스팅 실행기에서만 GitHub 호스팅 실행기의 도구 캐시를 사용할 수 있습니다. 예를 들어 ubuntu-22.04 GitHub 호스팅 실행기를 사용하여 도구 캐시를 생성하는 경우 자체 호스팅 실행기는 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@v3
            with:
              node-version: 14.x
          - name: Setup Node 16
            uses: actions/setup-node@v3
            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 환경으로 도구 캐시를 채워야 합니다.