ノート: GitHub Packagesは現在GitHub Enterprise Server 2.22でベータです。 GitHub Enterprise Serverのインスタンスのベータに参加するには、サインアップフォームを使ってください。
継続的インテグレーションワークフロー内でのパッケージング
パッケージングのステップは、継続的インテグレーションあるいは継続的デリバリのワークフローの一般的な部分です。 継続的インテグレーションワークフローの終わりにパッケージを作成すれば、Pull Requestに対するコードレビューの間に役立つことがあります。
コードをビルドしてテストした後、パッケージングのステップで実行可能な、あるいはデプロイ可能な成果物を生成できます。 ビルドしているアプリケーションの種類によって、このパッケージは手動でのテストのためにローカルにダウンロードしたり、ユーザーがダウンロードできるようにしたり、ステージングあるいはプロダクションの環境にデプロイしたりできます。
たとえば、Javaのプロジェクトのための継続的インテグレーションのワークフローは、mvn package
を実行してJARファイルを生成するかもしれません。 あるいは、Node.jsアプリケーションのためのCIワークフローは、Dockerコンテナを作成するかもしれません。
そうすれば、Pull Requestをレビューする際には、ワークフローの実行を見て生成された成果物をダウンロードできるでしょう。
こうすれば、Pull Request中のコードを自分のマシン上で実行できるので、Pull Requestのデバッグやテストに役立ちます。
パッケージを公開するためのワークフロー
継続的インテグレーションのワークフロー中で、テストのためにパッケージ化された成果物をアップロードすることに加えて、プロジェクトをビルドして、パッケージをパッケージレジストリに公開するワークフローを作成できます。
-
GitHub Packages へのパッケージの公開 GitHub Packages は、多くの種類のパッケージのパッケージホスティングサービスとして機能します。 パッケージをGitHubのすべてと共有することも、パッケージをプライベートにしてコラボレータやOrganizationと共有することもできます。 詳しい情報については「GitHub Packagesの紹介」を参照してください。
デフォルトブランチへのプッシュごとに、パッケージを GitHub Packages に公開することをお勧めします。 そうすれば、プロジェクトの開発者は常にデフォルトのブランチからの最新のビルドをGitHub Packagesからインストールして実行及びテストできるようになります。
-
パッケージレジストリへのパッケージの公開 多くのプロジェクトで、新しいバージョンのプロジェクトがリリースされたときにパッケージレジストリへの公開が行われます。 たとえば、JARファイルを生成するプロジェクトは、新しいリリースをMaven Centralリポジトリにアップロードするかもしれません。 あるいは、.NETのプロジェクトはnugetのパッケージを生成し、NuGet Galleryへアップロードするかもしれません。
これは、リリースが作成される度にパッケージをパッケージレジストリに公開するワークフローを作成すれば、自動化できます。 詳しい情報については「リリースの作成」を参照してください。