Примечание. В 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, который можно использовать для выполнения рабочего процесса.
- Доступ к файловой системе локально размещенного средства выполнения для заполнения папки кэша инструментов.
Заполнение кэша инструментов для локально размещенного средства выполнения
-
На сайте GitHub.com перейдите в репозиторий, который можно использовать для выполнения рабочего процесса GitHub Actions.
-
В папке
.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
-
Скачайте артефакт кэша инструментов из выполнения рабочего процесса. Инструкции по скачиванию артефактов см. в разделе "Скачивание артефактов рабочего процесса".
-
Перенесите артефакт кэша инструментов в локально размещенное средство выполнения и извлеките его в локальный каталог кэша инструментов. Каталог кэша инструментов по умолчанию —
RUNNER_DIR/_work/_tool
Если средство выполнения еще не обработало никаких заданий, может потребоваться создать каталоги_work/_tool
.После извлечения артефакта кэша инструментов, отправленного в приведенном выше примере, у вас должна быть структура каталогов в локально размещенном средстве выполнения, аналогичная приведенной в следующем примере:
RUNNER_DIR ├── ... └── _work ├── ... └── _tool └── node ├── 14.21.3 │ └── ... └── 16.16.0 └── ...
Теперь локально размещенное средство выполнения без доступа к Интернету может использовать действие setup-node
. Если у вас возникли проблемы, убедитесь, что заполнен правильный кэш инструментов для рабочих процессов. Например, если необходимо использовать действие setup-python
, необходимо заполнить кэш инструментов нужным окружением Python.