Skip to main content

Настройка кэша инструментов для локально размещенных средств выполнения без доступа к Интернету

Чтобы использовать включенные действия actions/setup для локальных модулей выполнения без доступа к Интернету, необходимо сначала заполнить кэш инструментов средства выполнения тестов для рабочих процессов.

Примечание. В GitHub Enterprise Server в настоящее время не поддерживаются средства выполнения тестов, размещенные в GitHub. Дополнительные сведения о планируемой поддержке в будущем см. в GitHub public roadmap.

Сведения включенных действиях по настройке и кэше инструментов для средств выполнения

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 средства выполнения можно использовать только для локально размещенного средства выполнения, имеющего идентичную операционную систему и архитектуру. Например, если для создания кэша инструментов используется размещаемое GitHub средство выполнения ubuntu-22.04, локально размещенное средство выполнения должно быть 64-разрядным компьютером с Ubuntu 22.04. Дополнительные сведения о GitHubразмещенных в среде runners см. в разделе "Использование средств выполнения, размещенных в GitHub".

Необходимые компоненты

  • Определите, какие среды разработки потребуются локально размещенным средствам выполнения. В следующем примере показано, как заполнить кэш инструментов для setup-node действия с помощью Node.js версий 14 и 16.
  • Доступ к репозиторию на сайте GitHub.com, который можно использовать для выполнения рабочего процесса.
  • Доступ к файловой системе локально размещенного средства выполнения для заполнения папки кэша инструментов.

Заполнение кэша инструментов для локально размещенного средства выполнения

  1. На сайте GitHub.com перейдите в репозиторий, который можно использовать для выполнения рабочего процесса GitHub Actions.

  2. В папке .github/workflows репозитория создайте файл рабочего процесса, который отправляет артефакт, содержащий кэш инструментов средства выполнения, размещенного в GitHub.

    В следующем примере показан рабочий процесс, который отправляет кэш инструментов для среды Ubuntu 22.04, используя setup-node действие с Node.js версиями 14 и 16.

    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.