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