2022年7月11日

Continuous Integration

Harness Continuous IntegrationとJiraによるCIワークフローの標準化

HarnessにはJiraとの連携機能が組み込まれており、本記事では簡単な設定とサンプルを使って両者の連携方法を紹介します。

62d0f0c89b46311e9ee4655e_CI-Jira-integration_Blog-header.png

継続的インテグレーション(CI)と継続的デリバリー(CD)は、あらゆる組織のDevOpsの旅において、重要な位置を占めています。ほとんどの企業では、課題追跡ツールと強力に統合された継続的インテグレーション・プラットフォームをセットアップすることからすべてが始まります。AtlassianのJiraプラットフォームは、多くの業界で広く採用されているものです。HarnessにはReqがあり、今日は簡単な設定と例でHarness CIとJiraがどのように連携するかを見ていきます。

開発者は組織内のさまざまなプロジェクトで働き、それら全てのCIを継続的に行いますが、ワークフロー全体が期待通りに機能することを保証する標準化された方法が必要です。Jira Approval(承認)は、開発者の仲間、マネージャー、およびコードレビュアーが CI/CD ワークフローを円滑にすることを容易にします。

このチュートリアルの最初のフェーズでは、ビルド、テスト、およびDockerレジストリへのアーティファクトのプッシュを行いましょう。Harness CIは言語に依存しないので、どんな言語でアプリケーションを書いてもアーティファクトをビルドできます。Harness CIのDSLはYAMLです。

Gitリポジトリーに接続し、ビルドするブランチを選択します。完了すると、Harness CIはHarness Test Intelligence(機械学習を使用して実行する必要があるテストを自動的に選択するHarness CIモジュールの機能)を通じてテストを実行します。全てのテストを実行すると数時間かかりますが、テストインテリジェンスは、関連するテストのみのサブセットを指定し、残りをスキップします。Test Intelligenceは非常に賢いので、最適な順序でテストをランク付けし、障害検出率を高めます。これは強力な機能であり、CIソリューションの世界を変えるものです。

Test Intelligenceでテストが実行されると、Harness CIはビルドを行い、ビルドイメージを任意のコンテナリポジトリー(例えば、Docker Hub)にプッシュします。その後、Harness UI Pipeline Studioを通じてパイプラインを編集することができ、簡単に操作してすぐに動作を確認することができます。

62d0f0c5f0c56e84c9434ebb_image-904x1024 (1).png

付属のYAMLエディタはIDEのような使い勝手を提供し、パイプラインの編集を容易にし、現実的な物事の理解を可能にします。また、オートコンプリートやスキーマ検証機能も備えており、ヒューマンエラーに対する追加のセーフガードとして機能します。

チュートリアル

まず、初期化です。ここでは、必要なものを全て設定します。

62d0f0c54995fa53e4cd16ca_image-1-1024x395.png

プルリクエストをクローンします。

62d0f0c581fb9e12622db4ae_image-2-1024x407.png

この段階では、ユニットテストはTest Intelligenceを通じて実行されます。これにより、コードの品質に関する迅速なフィードバックを得られます。また、開発フェーズの早い段階でバグを発見し、迅速に失敗することで、必要な労力を軽減できます。

62d0f0c66e8bed4fe11058ba_image-3-1024x839.png

最後に、イメージをビルドして、Docker Hubにプッシュします。

62d0f0c6fc73b77e9b885946_image-4-1024x392.png

Docker Hubにアクセスして、CIパイプラインで提案されているようにイメージがプッシュされているかどうかを確認することができます。

62d0f0c6a039f908e33b61fc_image-5-1024x556.png

Jiraとの統合

HarnessとJiraの統合により、チケットに関するあらゆるニーズをサポートします。

JiraのApproval(承認)は、2つの方法で使用できます。

  1. 任意のCDまたは承認ステージに Jira Approvalステージを追加する
  2. Jira 作成、Jira Approval、および Jira 更新の各ステップを含む Jira Approvalステージを追加します。

以下は、デプロイメント段階後のJiraの作成、承認、更新の簡単な例です。

ステージの追加をクリックします。

62d0f0c6fc73b7a0d2885945_image-6.png

Approvalステージを追加します。

62d0f0c696e33fff86d06203_image-7-1024x801.png

Jiraを選択し、ステージを設定します。Execution(実行)ステージからCreate(作成)ステージとUpdate(更新)ステージを別途追加することも可能です。

62d0f0c6d6c00972c6a9c02c_image-8-1024x990.png

その後、以下の画面が表示されます。必要事項を入力してください。

62d0f0c67d7beb9413a34ecd_image-9-1024x843.png

以下は、Jiraチケットを自動的に作成するための詳細を入力した後の例です。

62d0f0c6b42661226f37f064_Y7QH1vtU3w-U-wsMdFtsJlQiKWUyZRyDozmvc44NLD7azI4AAqbw6NVhpkTXtSsKk0lLX9gVS0KKdZpqy6rXC9HLD6JbHjg3V-1-EIw700GHqMK2Jz4usOZudHUl6pAZ-Wj3f4AP76AfBs72Hw.png

62d0f0c74995fad088cd16cb_image-10-694x1024.png

承認条件には、条件またはJEXL式という、指定された方法のいずれかを使えます。Issue Keyは、前のステージで設定された式、変数を使用していることを注意しておきたいと思います。このチュートリアルの目的では、承認条件にJEXL Expressionを使用しています。承認条件に常にJEXLを使う必要はないはずです。条件によって自動的にissueフィールドとステータスの入力が促されるはずです。

62d0f0c7a039f97b6a3b6205_image-11-1024x796.png

パイプラインを保存し、実行します。Approvalステージまで実行し、パイプラインの承認を待ちます。

62d0f0c6a039f910483b6201_image-12-1024x600.png

承認者はJiraで通知を受け、パイプラインを承認または拒否できるはずです。

62d0f0c69db3ddf2fbfc89fd_kzdwmXrKXQrUHR5gXKF-1rfH5vNo4Bu6kdkcNmYUumzEXkvp0lSkbGBdIjAiAZhZm7i8LYcXImi0vH7BC6uifxKQO0k2AzGxvGPqDGmL5Yedo7hHe-H510QxusAtR7LCXMyTX_0HPl4RW5iVzQ.png

62d0f0c712d3c8ed79088bdc_image-13-1024x361.png

承認されたら、ログを確認してください。以下のような内容が表示されるはずです。

62d0f0c7d6c0099beea9c031_image-14-1024x583.png

その手順は以下の通りです。

62d0f0c79db3ddea7cfc89fe_image-15-1024x470.png

まとめ

Harnessを使えば、Jiraを簡単に統合してタスクを自動化し、開発、運用、テストチームのコラボレーションを支援し、組織内のタスクや課題の管理・追跡の余分な負担を軽減できます。

あなたのチームがより効率的になるためのお手伝いをさせてください。デモのリクエスト無料トライアルのダウンロード、またはAtlassian Marketplaceで、Harness がどのようにソフトウェアデリバリープロセスの近代化を支援できるかをご覧ください。


この記事はHarness社のウェブサイトで公開されているものをDigital Stacksが日本語に訳したものです。無断複製を禁じます。原文はこちらです。

Harnessに関するお問い合わせはお気軽にお寄せください。

お問い合わせ