BEACHSIDE BLOG

Azure と GitHub と C# が好きなエンジニアの個人メモ ( ・ㅂ・)و ̑̑

GitHub Enterprise Server で GitHub Actions を使う前に知っておきたいこと

GitHub Enterprise Server とは、オンプレとかどっかのクラウド環境で GitHub を自分でホストして利用する GitHub の環境です。

GitHub Actions のビギナーの方や管理者の方々が、この GitHub Enterprise Server で GitHub Actions の利用に向けて一歩を踏み出そうとするとき、翻訳が全然されていない英語のドキュメントをたくさん読みあさる局面に立つことになります。GitHub の英語のドキュメントを普段からみてないとどこに何が書いてあるかの把握も大変で心が折れることが想像できます。

そのつらみを回避するために、最初に知っておきたい知識をまとめてみました。

なーんてね♪ (単に自分用にメモしたかっただけです。

ちなみに... 私自身が GitHub Enterprise Server が使うことなさそうですが、過去に興味本位で環境を作ったり色々いじってみたことがあるのでその興味の続きって感じです。

ちなみに現時点で最新の GitHub Enterprise Server v3.4 時点での内容を書いてます。

最初に知っておきたいマメ知識

  • GitHub Enterprise Server の v3.0 以降で GitHub Actions が利用できるようになりました。v2 系使ってる方は利用できないしそもそもサポート切れなので v3 系へ更新しましょう。
  • 基本的には、インターネットアクセス無なしで利用可能だが不便です。ただし、インターネットが使えないと GitHub.com や Marketplace にある actions を利用はできません (これらを利用するには設定が必要になりますが、後ほどこの話に軽くふれます)。
  • GitHub 製の actions はある程度バンドルされているのでインターネット接続なしで利用が可能です。https://HOSTNAME/actions でバンドルされている action の一覧が確認できます。
    • よく使う actions/checkout, actions/upload-artifact, actions/download-artifact, actions/setup-* とかがいます。
  • GitHub Connect を設定する (この時点でインターネットへの接続が必要になります) ことで、GitHub.com や Marketplace で公開されている actions を利用可能になります。
    • GitHub Connect は、雑に説明すると GitHub Enterprise Cloud との接続の設定をすることで色々な制御を可能にできる機能ですが、詳しくはこちらのドキュメントをご参考に: Configuring GitHub Connect - GitHub Docs
  • Actions の実行は Self-hosted を立てて実行します。GitHub-Hosted Runner は現状では使えないです (Issue はあるのでいつか利用できるようになるかもしれない)。

運用ベストプラクティス

デフォルトの設定だと、その制限により便利には利用できないのが GitHub Enterprise Server の Actions です。

そこで利用を諦めないように、こちらのドキュメントで書かれている設定のベストプラクティスを紹介しておきます。

ですよねー。

GitHub Connect を設定しないと、初期バンドルの Actions と自作のワークフローのみしか使えないのはあまりにも非効率です。GitHub とかクラウドベンダーさんとかが安心安定の actions を公開しててサクッと色んな自動化が実現できるのに、それが使えないために自作せなあかんのは時間の無駄でしかないです。

GitHub Connect しましょう♪。

余談: GitHub Enterprise Server にバンドルされてる actions を latest に update するには

2つのパターンがあります。

GitHub Connect を設定済みの場合

GitHub Connect を設定済みの場合は、自身の GitHub Enterprise Server の actions ( https://HOSTNAME/actions ) で最新版を利用したい actions の repo を削除すると、GitHub.com のを参照しに行く = 最新版が利用できるようです。

詳細はこちら: Using the latest version of the official bundled actions - GitHub Docs

手動でアップデートする (つらい

GitHub Connect は未設定の場合は、actions-sync tool を使って手動で update することが可能です。つらみしか感じませんので GitHub Connect の利用を検討すべきです。

詳細はこちら: Manually syncing actions from GitHub.com - GitHub Docs

終わりに

ちょっと脱線しますが GitHub Connect を設定することで、パッケージの依存関係の脆弱性を検知してくれる Dependabot の利用も可能になります。

GitHub Enterprise Server を使うなら、GitHub Connect を設定することで Actions の運用の効率化や Dependabot の運用をすることで、快適な DevOps / DevSecOps ライフを送りたいものですね。