注: GitHub ホステッド ランナーは、現在 GitHub Enterprise Server でサポートされていません。 GitHub public roadmap で、今後の計画的なサポートの詳細を確認できます。
GitHub Enterprise Server上のGitHub Actionsは、完全なインターネットアクセスのない環境で動作するように設計されています。 既定では、ワークフローは GitHub.com と GitHub Marketplace からのアクションを使用できません。
GitHub.com からのアクションへのアクセスを有効化する際に推奨されるアプローチは、すべてのアクションへの自動アクセスを有効化することです。 これを行うには、GitHub Connect を使用して GitHub Enterprise Server と GitHub Enterprise Cloud を統合します。 詳細については、「GitHub Connect を使用して GitHub.com アクションへの自動アクセスを有効にする」を参照してく� さい。
た� し、エンタープライズで許可されるアクションをより厳密に制御する� �合は、ユーザーはこのガイドに従って、GitHub のオープンソース actions-sync
ツールを使用して、GitHub.com からエンタープライズに個々のアクション リポジトリを同期できます。
actions-sync
ツールについて
actions-sync
ツールは、GitHub.com API と GitHub Enterprise Server インスタンスの API にアクセスできるコンピューターで実行する必要があります。 両方のマシンに同時に接続する必要はありません。
コンピューターが両方のシステ� に同時にアクセスできる� �合は、1 回の actions-sync sync
コマンドで同期を実行できます。 一度に 1 つのシステ� にのみアクセスできる� �合は、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 に対してそのアクションを直接使用し、名前空間が your GitHub Enterprise Server instanceで廃止されたことを示します。 詳細については、「GitHub.com でアクセスされたアクションの名前空間の自動廃止」を参照してく� さい。
前提条件
-
actions-sync
ツールを使用する前に、すべての同期先組織が既にエンタープライズに存在していることを確認する必要があります。 次の例は、アクションをsynced-actions
という名前の組織に同期する方法を示しています。 詳細については、「新しい Organization をゼロから作成」を参照してく� さい。 -
Enterprise に、宛先 Organization のリポジトリを作成して書き込むことができるpersonal access tokenを作成する必要があります。 詳しくは、「personal access token の作成」をご覧く� さい。
-
your GitHub Enterprise Server instanceで
actions
Organization 内のバンドルされたアクションを同期する� �合は、actions
Organization の所有者である必要があります。注: 既定では、サイト管理者であっても、バンドルされた
actions
組織の所有者ではありません。サイト管理者は、管理シェルの
ghe-org-admin-promote
コマンドを使用して、バンドルされたactions
組織の所有者にユーザーを昇� �させることができます。 詳細については、「管理シェル (SSH) にアクセスする」と「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. For more information, 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.
-
Run the
actions-sync sync
command:./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
: 同期先 Enterprise インスタンスの 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
を省略した� �合、ツールではエンタープライズの元の所有者とリポジトリ名を使用します。 コマンドを実行する前に、アクションの所有者名と一致する新しい Organization を Enterprise に作成する必要があります。 同期されたアクションを Enterprise に保存するために中枢の Organization を使用することを検討してく� さい。これは、異なる所有者からのアクションを同期する� �合、複数の新しい Organization を作成する必要がないということです。--repo-name
パラメーターを--repo-name-list
または--repo-name-list-file
に置き換えることで、複数のアクションを同期できます。 詳細については、actions-sync
README を参照してく� さい。
- 上記の例では
-
-
Enterprise でアクションリポジトリが作成された後、Enterprise 内のユーザは、宛先リポジトリを使用してワークフロー内のアクションを参照できます。 上記のアクション例の� �合:
uses: synced-actions/actions-stale@v1
詳細については、「GitHub Actions のワークフロー構文」を参照してく� さい。