LoginSignup
0
0

自宅にJekninsのローカル環境を構築してみた

Posted at

「Applibot Advent Calendar 2023」21日目の記事になります。
前の記事は@ref3000さんの【Jenkins】「このビルドはパラメータが必要です。」を消すになります。

はじめに

今回は自宅のPCにJenkinsのローカル環境を構築してみた話になります。
個人的に詰まった部分などを中心に書いていければなと思います。
自宅の環境がWindowsのため他のプラットフォームには対応しない部分があると思いますがご容赦ください。

Jenkinsとは

CI/CDを実現するためのOSSツール
自動でデプロイやビルドをすることが可能。

準備

事前に必要なもの

今回以下のものはすでにインストール済みで進めます。

  • JDK11 or 17
  • Git Bash

インストール

まずはこちらからJenkinsのインストーラーをダウンロードします。

ダウンロード後インストールを画面に従って進めます。

image (7).png
認証情報を求められる画面になったら上のRun service as LocalSystemを選択します。
Windows10 HomeやWindows11 Homeの場合、ここでuserの指定ができないので後ほど設定します。

Win + R で%systemroot%\system32\services.mscをファイル名を指定して実行
Jenkinsを選択しプロパティ→ログオンから管理者ユーザーでログオンが可能です。

インストールが終わったらlocalhost:8080にアクセスします。
下のような画面が出るので赤文字のフォルダにあるファイルをメモ帳等で開き、中にあるパスワードを貼り付けます。
image (8).png

進めていくと途中pluginのインストールを選択する部分が出てきますが、明確に使いたいものがない限りは左側を選択することをお勧めします。

この画面ではJenkinsのURLを変更できるのですが、後からでも変更できるのといくつか設定が必要になるのでこのままにします。
image (9).png

ユーザーを作成し以下のようなホームに行ければインストール終了です。
image (10).png

設定

Jobの作成の前にシェルの設定をします。
Jenkinsの管理→Systemから下の方にシェル実行ファイルという項目があるので
そこにGit Bashのsh.exeのパスを渡します。

Jobの作成

では本題のJobを作っていきましょう。
ホームの新規ジョブ作成から作っていきます。

まずは簡単なシェルの実行をするだけのJobを作っていきます。
フリースタイルを選択しジョブ名を入力したらOKを押します。
image (11).png

Jobの設定

Jobの設定画面です。
下の方に行くとBulid Stepsとあるのでビルド手順の追加からシェルノ実行を選択し以下のコードを書きます。
image (12).png

echo "Hellow World"

書けたら保存し実行してみましょう。

しばらくするとビルドが実行され左側に#1というものが出てきます。
それを選択しコンソール出力を選びHello Worldと表示されていれば成功です。
image (13).png

もしshが見つからないなどのエラーが出た場合はシステム環境変数のPathにC:\Program Files\Git\binが通っているか確認してください。

パラメータの設定

シェルが実行できたので次はパラメータを渡せるようにしたいと思います。
パラメータを設定することでスクリプトを変更することなく設定などを変更することができます。

先ほど作成したJobの設定を開き、ビルドのパラメータ化にチェックを入れます。
パラメータを追加し文字列を選びます。
パラメータの名前デフォルト値説明を入力します。
image (15).png

このままではパラメータがシェルに反映されないのでコードを以下のように編集します。

+ echo "$TEXT"
- echo "Hello World"

$パラメータ名と書くことでパラメータを変数として渡すことができます。

では実行してみます。ここでビルドの実行パラメータ付きビルドに変わっています。
渡したパラメータが表示されていれば成功です。
image (14).png

Pipelineの設定

次はPipelineの作成です。
これを使用することで先ほどのシェルの実行を複数のステップに分けて実行したり、Gitのチェックアウトやビルドなどをステップに分けることでメンテナンスか拡張性を持たせることができます。

PipelineはJenkinsスクリプト(言語はgroovy)で書くことができます。
Git管理も可能なのでバックアップや更新も可能です。

新規ジョブ作成から今度はパイプラインを選択してOKを押します。
image (17).png

今回はパラメータに文字列PARAM1,PARAM2を追加します。
一番下のパイプライン定義に以下を書き込みます。

pipeline
{
    agent any

    stages
    {
        stage("Stage1")
        {
            steps
            {
                echo "PARAM1 = $PARAM1"  
            }
        }
        stage("Stage2")
        {
            steps
            {
                echo "PARAM2 = $PARAM2"   
            }
        }
    }
}

パラメータ付きビルドをしてエラーが出なければ成功です。

ただこのままではパラメータを追加したくなった際に毎回Jobの設定をしないといけなくなります。
Jenkinsスクリプトを使い回していると更新忘れなども出てくるはずです。
なのでスクリプトにパラメータの定義も追加します。

pipeline
{
    agent any

+   parameters
+   {
+       string(name: "PARAM1", defaultValue: "1", description: "Stage1のパラメータです。")
+       string(name: "PARAM2", defaultValue: "2", description: "Stage1のパラメータです。")
+   }

    stages
    {
        stage("Stage1")
        {
            steps
            {
                echo "PARAM1 = $PARAM1"  
            }
        }
        stage("Stage2")
        {
            steps
            {
                echo "PARAM2 = $PARAM2"   
            }
        }
    }
}

スクリプトに定義したパラメータは編集してすぐに反映されるわけではないです。
一度実行してスクリプトが読み込まれた時点でパラメータが更新されるので空実行してからビルドしてください。

最後に

いかがでしたでしょうか?GitのチェックアウトやUnityのビルドなどもできるのですが記事が長くなりすぎるのでここまでさせてください。個人的にシェルの実行にかなり悩まされたので少しでも参考になれば幸いです。

以上、「Applibot Advent Calendar 2023」21日目の記事でした。
明日は@shoma3571さんです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0