※ 本記事は、Sherwood Zern, Avi Miller, Gilson Meloによる”4 popular GitHub actions for OCI“を翻訳したものです。
2022年7月13日
継続的な統合とデリバリ(CI/CD)は、初期のアイデアから本番運用におけるリリース成功までの間に、新機能を提供するためにプロセスと時間を合理化および迅速化します。ソフトウェアが最終的にお客様に届くまで、投資対効果はゼロになります。そのため、アプリケーションとそれ以降のすべての機能改善またはパッチをできるかぎり迅速かつ確実にユーザーに提供することが重要です。
CI/CDデプロイメント・パイプラインでよく使用されるGitHub機能の1つに、ソフトウェア開発ライフ・サイクル内のタスクを自動化するために使用されるGitHubアクションがあります。GitHubアクションのワークフローはイベント駆動型で、特定のイベントが発生した後に実行する一連のアクションを構成します。そのため、カスタム・ワークフローをGitHubリポジトリに直接作成できます。たとえば、ユーザーがブランチにプッシュしたり、プル・リクエストを作成したり、リリースを公開したり、定期的なスケジュールでさえ、ワークフローをトリガーできます。
アクションは、プル・リクエストや問題など他のすべてのリポジトリ関連機能と同じ場所で管理されるため、継続的インテグレーション(CI)および継続的デプロイメント(CD)コードをリポジトリ内で直接管理できます。
OCIへのデプロイメントを合理化するGitHubのアクション
Oracleからの次の一般的なGitHubアクションは、GitHubからOracle Cloud Infrastructure(OCI)へのデプロイメント・プロセスを合理化するのに役立ちます。すべてのアクションで同じ構成認証資格証明を使用するため、ワークフローごとに1回のみ構成する必要があります。
OCI CLIコマンドの実行
このアクションでは、最新バージョンのOCI CLIが自動的にインストールされ、提供されたコマンドが実行され、ログ出力から認証詳細およびその他の顧客固有の識別子が自動的にリダクションされます。このコマンドからの出力は、後続のアクションの入力として使用できます。
Kubectl for Oracle Container Engine for Kubernetes(OKE)の構成
このアクションは、指定されたOKEクラスタを識別してから、そのクラスタの正しいバージョンの kubectlをインストールおよび構成します。Kubectlは、ワークフロー内の後続のすべてのアクションで使用可能になり、ワークフローがアクティブである間のみ構成を保持します。このアクションが直接またはロード・バランサを介して機能するには、KubernetesクラスタAPIにパブリックにアクセスできる必要があります。
Oracle Cloud Infrastructure Registry(OCIR)コンテナ・イメージ・リポジトリの取得または作成
このアクションでは、リポジトリの名前およびそのリポジトリが作成されたコンパートメントのOCIDを取得し、リポジトリ自体のOCIDとURIの両方を、DockerとPodmanの両方で必要な正確な形式でリポジトリに出力します。イメージ・リポジトリがまだ存在しない場合は、自動的に作成されます。
OCIRにログイン
このアクションでは、DockerおよびPodmanのエフェメラル資格証明ストアを作成するには、auth_tokenが必要です。このアクションを前のアクションと組み合せて、GitHubで構築されたコンテナ・イメージをOCIにプッシュします。
まとめ
OCIデプロイメントでのこれらのGitHubアクションの使用は、デプロイメント・パイプラインにOCI CLIコマンドとKubernetes CLIコマンドを埋め込む優れた方法です。アクションにより、パイプラインがOCIおよびOKEに認証されることが保証されます。GitHub Actionsを使用すると、すべてのソフトウェア・ワークフローを自動化しやすくなり、GitHubからOracle Cloud Infrastructureでコードを構築、テストおよびデプロイできます。
