Note
GitHub ホステッド ランナーは、現在 GitHub Enterprise Server ではサポートされていません。 GitHub public roadmap で、今後の計画的なサポートの詳細を確認できます。
GitHub Enterprise Server上のGitHub Actionsは、完全なインターネットアクセスのない環境で動作するように設計されています。 既定では、ワークフローは GitHub.com と GitHub Marketplace からのアクションを使用できません。
GitHub Connect を使用して、GitHub Enterprise Server と GitHub Enterprise Cloud を統合することで、すべてのアクションへの自動アクセスを有効にすることをお勧めします。 「GitHub Connect を使用して GitHub.com アクションへの自動アクセスを可能にする」をご覧ください。
エンタープライズで許可されるアクションをより厳密に制御する場合は、ユーザーはこのガイドに従って、オープンソース actions-sync
ツールを使用して、GitHub.com からエンタープライズに個々のアクション リポジトリを同期できます。
GitHub Enterprise Server をアップグレードすると、バンドルされたアクションはアップグレード パッケージの既定のバージョンに自動的に置き換えられます。 これらは、利用可能な最新バージョンではない可能性があります。 成功事例として、actions-sync
を使用してアクションを更新する場合、アクションを最新の状態に保つために、GitHub Enterprise Server アップグレード (メジャーまたはマイナー) の後に、必ず actions-sync
を再実行する必要があります。
actions-sync
ツールについて
actions-sync
ツールは、GitHub.com API と GitHub Enterprise Server インスタンスの API にアクセスできるコンピューターで実行する必要があります。 両方のマシンに同時に接続する必要はありません。
コンピューターが両方のシステムに同時にアクセスできる場合は、1 回の actions-sync sync
コマンドで同期を実行できます。 一度に 1 つのシステムにのみアクセスできる場合は、actions-sync pull
と push
コマンドを使用できます。
actions-sync
ツールは、パブリック リポジトリに保存されている GitHub.com からのみアクションをダウンロードできます。
Note
actions-sync
ツールは、GitHub Connect が有効になっていないシステムで使うためのものです。 GitHub Connect が有効になっているシステムでツールを実行すると、エラー The repository <repo_name> has been retired and cannot be reused
が表示されることがあります。 これは、ワークフローが GitHub.com に対してそのアクションを直接使用し、名前空間が お使いの GitHub Enterprise Server インスタンスで廃止されたことを示します。 「GitHub Connect を使用して GitHub.com アクションへの自動アクセスを可能にする」をご覧ください。
前提条件
-
actions-sync
ツールを使用する前に、すべての同期先組織が既にエンタープライズに存在していることを確認する必要があります。 次の例は、アクションをsynced-actions
という名前の組織に同期する方法を示しています。 「新しい Organization をゼロから作成」をご覧ください。 -
Enterprise に、宛先 Organization のリポジトリを作成して書き込むことができるpersonal access tokenを作成する必要があります。 「個人用アクセス トークンを管理する」をご覧ください。
-
お使いの GitHub Enterprise Server インスタンスで
actions
Organization 内のバンドルされたアクションを同期する場合は、actions
Organization の所有者である必要があります。Note
既定では、サイト管理者であっても、バンドルされた
actions
organization の所有者ではありません。サイト管理者は、管理シェルの
ghe-org-admin-promote
コマンドを使用して、バンドルされたactions
組織の所有者にユーザーを昇格させることができます。 「管理シェル (SSH) にアクセスする」および「コマンド ライン ユーティリティ」を参照してください。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
: 同期先 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 のワークフロー構文」をご覧ください。