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 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, см. в разделе Сведения о средствах выполнения тестов, размещенных в GitHub.

Предварительные требования

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

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

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

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

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

    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.