Примечание. В GitHub Enterprise Server в настоящее время не поддерживаются средства выполнения тестов, размещенные в GitHub. Дополнительные сведения о планируемой поддержке в будущем см. в GitHub public roadmap.
GitHub Actions для GitHub Enterprise Server предназначен для работы в средах без полного доступа к Интернету. По умолчанию рабочие процессы не могут использовать действия с GitHub.com и из GitHub Marketplace.
Мы рекомендуем включить автоматический доступ ко всем действиям с помощью GitHub Connect для интеграции GitHub Enterprise Server с GitHub Enterprise Cloud. См. раздел "Включение автоматического доступа к действиям GitHub.com с помощью GitHub Connect".
Если требуется более строгий контроль над тем, какие действия разрешены в вашей организации, вы можете использовать наше средство открытый код actions-sync
для синхронизации репозиториев отдельных действий из GitHub.com в вашей организации.
При обновлении GitHub Enterprise Serverпакетные действия автоматически заменяются версиями по умолчанию в пакете обновления. Это может быть не последняя доступная версия. В качестве рекомендации, если вы используете actions-sync
для обновления действий, всегда следует повторно запускать actions-sync
после любого обновления GitHub Enterprise Server (основного или дополнительного), чтобы убедиться, что действия остаются актуальными.
Сведения о средстве actions-sync
Средство actions-sync
должно быть запущено на компьютере, который может получить доступ к API GitHub.com и API экземпляра GitHub Enterprise Server экземпляра. Компьютер не должен быть подключен к обоим API одновременно.
Если компьютер имеет доступ к обеим системам одновременно, можно выполнить синхронизацию с помощью одной команды actions-sync sync
. Если вы можете получить доступ только к одной системе за раз, можно использовать команды actions-sync pull
и push
.
Средство actions-sync
может скачивать с сайта GitHub.com только действия, которые хранятся в общедоступных репозиториях.
Примечание. Средство actions-sync
предназначено для использования в системах, где GitHub Connect не включен. При запуске средства в системе с включенным GitHub Connect, может появиться сообщение об ошибке The repository <repo_name> has been retired and cannot be reused
. Это означает, что рабочий процесс использовал это действие непосредственно на GitHub.com и пространство имен удаляется на ваш экземпляр GitHub Enterprise Server. См. раздел "Включение автоматического доступа к действиям GitHub.com с помощью GitHub Connect".
Необходимые компоненты
-
Прежде чем использовать средство
actions-sync
, убедитесь, что все целевые организации уже существуют на вашем предприятии. В следующем примере показано, как синхронизировать действия с организацией с именемsynced-actions
. См. раздел "Создание новой организации с нуля". -
Необходимо создать personal access token в организации, которая может создавать и записывать в репозитории в конечных организациях. См. раздел "Управление личными маркерами доступа".
-
Если вы хотите синхронизировать пакетные действия в
actions
организации на ваш экземпляр GitHub Enterprise Server, необходимо быть владельцемactions
организации.Примечание. По умолчанию даже администраторы сайта не являются владельцами объединенной организации
actions
.Чтобы повысить уровень пользователя до владельца объединенной организации
actions
, администраторы сайта могут использовать командуghe-org-admin-promote
в административной оболочке. См. раздел "[AUTOTITLE" и "Доступ к административной оболочке (SSH)](/admin/configuration/configuring-your-enterprise/command-line-utilities#ghe-org-admin-promote)".ghe-org-admin-promote -u USERNAME -o actions
Example: Using the actions-sync
tool
This example demonstrates using the actions-sync
tool to sync an individual action from GitHub.com to an enterprise instance.
Note: This example uses the actions-sync sync
command, which requires concurrent access to both the GitHub.com API and your enterprise instance's API from your machine. If you can only access one system at a time, you can use the actions-sync pull
and push
commands. See the actions-sync
README.
-
Download and extract the latest
actions-sync
release for your machine's operating system. -
Create a directory to store cache files for the tool.
-
In your terminal, change to the
bin
directory within the release directory you just extracted. For example:cd PATH/TO/gh_DATETIME_OS_ARCHITECTURE/bin
-
Выполните команду
actions-sync sync
../actions-sync sync \ --cache-dir "cache" \ --destination-token "aabbccddeeffgg" \ --destination-url "https://my-ghes-instance" \ --repo-name "actions/stale:synced-actions/actions-stale"
Приведенная выше команда использует следующие аргументы:
-
--cache-dir
: каталог кэша на компьютере, на котором выполняется команда. -
--destination-token
: personal access token для конечного экземпляра предприятия. -
--destination-url
: URL-адрес целевого экземпляра предприятия. -
--repo-name
: репозиторий действий для синхронизации. Имеет форматowner/repository:destination_owner/destination_repository
.- В приведенном выше примере репозиторий
actions/stale
синхронизируется с репозиториемsynced-actions/actions-stale
в целевом экземпляре предприятия. Перед выполнением приведенной выше команды на предприятии необходимо создать организацию с именемsynced-actions
. - Если
:destination_owner/destination_repository
не указан, средство использует исходное имя владельца и репозитория для предприятия. Перед выполнением команды на предприятии необходимо создать организацию, имя которой соответствует имени владельца действия. Для хранения синхронизированных действий на предприятии рекомендуется использовать центральную организацию, так как это означает, что при синхронизации действий разных владельцев вам не придется создавать несколько новых организаций. - Вы можете синхронизировать несколько действий, заменив параметр
--repo-name
на--repo-name-list
или--repo-name-list-file
. См. разделactions-sync
README.
- В приведенном выше примере репозиторий
-
-
После создания репозитория действий на предприятии пользователи на предприятии могут использовать целевой репозиторий для ссылки на действие в рабочих процессах. Для примера действия, показанного выше:
uses: synced-actions/actions-stale@v1
См. раздел "Синтаксис рабочего процесса для GitHub Actions".