Jenkins CI CD パイプラインの作成方法

Jenkinsには、継続的インテグレーション/継続的デリバリー(CI/CD)をサポートする組み込み機能があることをご存知ですか?プロジェクトにJenkins CI CDパイプラインを実装することで、ソフトウェア開発プロセスを大幅に改善できます。

Jenkinsは、現在までで最も人気のあるDevOps自動化ツールの1つです。そして、Jenkins CI CDパイプラインを始めたいと考えているなら、正しい場所に来たところです。

読み続け、このチュートリアルでは、GitHubと共にJenkins CI CDパイプラインを設定する方法を学びます。

前提条件

このチュートリアルでは、以下の要件を満たすことを前提としています。

すでにJenkinsがインストールされている必要があります。このチュートリアルの例では、Windows 10 20H2コンピューター上でJenkins v2.319.1を使用しています。

  • あなたのJenkinsウェブコンソールはインターネット経由でアクセス可能でなければなりません。
  • A Github account to which you’ll connect with the Jenkins CI CD pipeline.
  • Git SCM。このチュートリアルでは、Windows用の最新の(2.34.1)64ビットバージョンのGitを使用しています。

GitHubリポジトリの準備

このチュートリアルでは、Jenkins CI CDパイプラインをGitHubリポジトリに統合します。空のプロジェクトを作成する代わりに、既存のリポジトリをフォークする方が迅速に開始できます。

1. まず、ブラウザを開き、GitHubアカウントにログインします。

2. 次に、例のリポジトリURL(Microsoft Connect 2016のMyShuttle2アプリケーション)に移動します。リポジトリページに移動したら、ページの右上にあるForkボタンをクリックします。

Forking a repo

フォークプロセスが完了するのを待ちます。最終的に、GitHubアカウントに“username/MyShuttle2”という名前のリポジトリが作成され、フルアクセス権が与えられます。

3. そして、リポジトリにJenkinsfileという名前の新しいファイルを追加します。 JenkinsfileはJenkinsパイプラインの定義を含むテキストファイルです。このファイルはソースコードリポジトリ内にある必要があります。

リポジトリページでファイルの追加 —> 新しいファイルの作成をクリックします。

Adding a new file

4. Jenkinsfileという名前の新しいファイルを入力します。次に、以下のコードをコピーしてJenkinsfileに貼り付けます。

  • pipelineという用語は、継続的なデリバリーのためにコードで書かれた一連の命令です。
  • A stage block contains a series of steps in a pipeline, visualizing the Jenkins pipeline process.
  • A step is a single task that executes a specific process at a defined time. A pipeline contains a series of steps.

このJenkinsfileは、パイプラインスクリプトの基本的な例です。本番では、パイプラインスクリプトはより複雑で、1つまたはすべての段階で複数のアクションを含みます。

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                echo 'Building..'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing..'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying....'
            }
        }
    }
}

コードを書いた後、ファイルは以下のスクリーンショットのようになります。

Jenkinsfile pipeline script

5. ページの一番下までスクロールして、新しいファイルをコミットをクリックします。

Committing the new file

これで、リポジトリにJenkinsfileが作成されました。

New Jenkinsfile on the GitHub repo

6. 最後に、リポジトリのURLをコピーします。これを行うには、コードをクリックしてコピーボタンをクリックします。Jenkins CI CDパイプラインの作成中に、このURLが必要になります。

Copying the repository URL

Jenkins CI CDパイプラインの作成

機能の開発には多くのコード変更が関与します。各コード変更の間には、実行するタスクのセットがあります。これらのタスクには、変更のコミット、コンパイル、テスト、パッケージ化などが含まれる場合があります。

Jenkinsなどの自動化サービスは、これらの手順を迅速かつエラーなしで行うのに役立ちます。

1. ブラウザを開き、JenkinsのURLに移動してログインします。

2. Jenkinsのダッシュボードで、左側のメニューから新しいアイテムオプションをクリックします。

Creating a new item in Jenkins

3. 新しいパイプラインの名前を入力します。このチュートリアルでは、demoPipelineと名前を付け、パイプラインテンプレートを選択します。完了するには、OKをクリックします。

Creating a Pipeline project

4. 設定ページの一般タブの下にあるGitHubプロジェクトボックスをチェックします。次に、先ほどコピーしたリポジトリのURLをプロジェクトURLボックスに貼り付けます。

Specifying the GitHub repository URL

5. ビルドトリガーセクションまでスクロールし、以下のスクリーンショットのようにGitHubのフックトリガーによるGITScmポーリングボックスをチェックします。

Specifying the build trigger

6. 次に、さらにスクロールしてパイプラインセクションに移動し、次の値を選択/指定します:

  • 定義: SCMからのパイプラインスクリプト
  • SCM: Git
  • リポジトリのURL: あなたのリポジトリのURL
Specifying the pipeline values

7. ページの一番下までスクロールし、スクリプトパスの値がJenkinsfileであることを確認します。この値は、GitHubリポジトリを準備する際に作成したJenkinsfileを参照しています。最後に、保存をクリックします。

Saving the pipeline configuration

GitHubでのWebhookの設定

Jenkinsが新しいジョブを実行するためには、まずGitHubリポジトリにWebhookを作成する必要があります。このWebhookは、リポジトリで新しいプッシュが発生するとすぐにJenkinsに通知します。

以下の手順に従ってWebhookを作成してください。

1. 設定ページに移動し、GitHubリポジトリのWebhooksタブをクリックします。 Webhooksページで、Webhookを追加をクリックします。

Adding a webhook

2. あなたのJenkins URLを指定し、/github-webhook/in the Payload URL fieldに追加してください。 例えば、HTTP://jenkinsURLhere/github-webhook/です。

また、Content typeの値をapplication/jsonに変更してください。

Setting the webhook URL and content type

3. Which events would you like to trigger this webhookの選択で、Let me select individual eventsオプションをクリックしてください。

Selecting individual events

4. スクロールしてPushesPull requestsのチェックボックスを確認してください。 これらのオプションを選択すると、GitHubはこれらの特定のイベント中にJenkinsにペイロードを送信します。

Enabling Pushes and Pull requests events

5. 下部にあるAdd webhookボタンをクリックして、webhookを検証してください。 webhookの検証が成功した場合、以下のスクリーンショットと同様のページ上部に通知が表示されます。

Webhook creation notification

Jenkins CI CD Pipeline Jobを実行してトリガーする

パイプラインを作成して構成したので、そのパイプラインが機能しているかどうかをどのように知ることができますか? Jenkinsは、Pipeline Stage Viewプラグインを提供して、パイプラインの状態を表示するのに役立ちます。

1. パイプラインの状態を開くには、Jenkinsでパイプラインを開き、Statusをクリックしてください。 下のスクリーンショットで見られるように、Stage ViewのステータスはNo data availableと表示されます。 なぜなら、パイプラインをトリガーするイベントが発生していないからです。

Jenkins pipeline stage view

2. 初期ビルドデータを生成するには、今すぐビルドをクリックしてビルドプロセスの完了を待ちます。以下のように、ステージビューには今、このビルドに変更がないことを示すエントリが1つあります。

To generate initial build data, click Build Now

3. 今度は、リポジトリにダミーファイルをコミットしてパイプラインをテストします。GitHubリポジトリに戻り、ファイルの追加 —> 新しいファイルの作成をクリックします。

新しいファイルの名前としてdummyを入力し、コンテンツを追加することを確認してください。

Creating a new file

最後に、ページの下部にある新しいファイルをコミットをクリックします。

4. Jenkinsパイプラインのステータスページに戻り、以下に示すように、1つのコミットが含まれる新しいビルドエントリが表示されるはずです。

Jenkins pipeline build status

結論

このチュートリアルを通じて、Jenkins CI CDパイプラインを設定してソフトウェア開発ライフサイクルを自動化する方法を学びました。また、Jenkinsを使用してソフトウェアプロジェクトのCIのためのアクションチェーンを維持する方法も学びました。

あなたはJenkins CI CDパイプラインをプロジェクトに適用する戦略だと思いますか?それとも、すでに採用している他のCI/CDソリューションがあると考えていますか?

Source:
https://adamtheautomator.com/jenkins-ci-cd/