software:jenkins
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
software:jenkins [2021/10/29 17:01] – [Agent の指定] oga | software:jenkins [2023/11/27 10:25] – [Agent の指定] oga | ||
---|---|---|---|
行 5: | 行 5: | ||
==== (1) jenkins install ==== | ==== (1) jenkins install ==== | ||
- | - OpenJDK 11 install | + | - OpenJDK |
* https:// | * https:// | ||
- | * jenkins | + | * jenkins で使用するなら zip 版を適当なフォルダに展開するだけで OK |
- jenkins install | - jenkins install | ||
* https:// | * https:// | ||
行 16: | 行 16: | ||
* "Run service as local or domain user:" | * "Run service as local or domain user:" | ||
* 任意のユーザーを入力可能。事前にサービスとしてログオンの設定が必要 | * 任意のユーザーを入力可能。事前にサービスとしてログオンの設定が必要 | ||
- | * ローカルセキュリティポリシー | + | * Windows Pro のみ: Start Menu から |
- port 設定 | - port 設定 | ||
+ | * 任意。デフォルトだと 8080 | ||
- OpenJDK のインストールパス選択 | - OpenJDK のインストールパス選択 | ||
+ | * 1 でダウンロード&展開したフォルダを入力 | ||
- install | - install | ||
- browser で initialAdminPassword を入力 | - browser で initialAdminPassword を入力 | ||
- ユーザー作成 | - ユーザー作成 | ||
- おすすめ plugin のインストール | - おすすめ plugin のインストール | ||
+ | * またはカスタムで plugin を選択&不要なもののチェクを外す | ||
==== (2) 必要な場合のみ Jenkins HOME (workspace path) の変更 ==== | ==== (2) 必要な場合のみ Jenkins HOME (workspace path) の変更 ==== | ||
+ | UE5/UE4 では workspace のパスが深すぎるとビルドに失敗するため、できるだけ浅い階層への変更が望ましい。 | ||
- コンピューターの管理 → サービスとアプリケーション → サービス → Jenkins 停止 | - コンピューターの管理 → サービスとアプリケーション → サービス → Jenkins 停止 | ||
行 39: | 行 42: | ||
- | ==== (3) Windows 10 Home の場合、User の変更 ==== | + | ==== (3) Windows |
+ | |||
+ | Windows Pro かつ 2 の選択時に「Run service as local or domain user」を選択している場合は不要。 | ||
+ | |||
- 先に Jenkins HOME を別の絶対パスで指定したフォルダに移動しておく | - 先に Jenkins HOME を別の絶対パスで指定したフォルダに移動しておく | ||
行 50: | 行 57: | ||
- Plugin | - Plugin | ||
- Jenkins の管理 → プラグインの管理 | - Jenkins の管理 → プラグインの管理 | ||
+ | * P4 Plugin, Slack Notification, | ||
- 利用可能タブで検索して必要なものにチェックし Install without restart | - 利用可能タブで検索して必要なものにチェックし Install without restart | ||
- 全部インストールしたらリスタート | - 全部インストールしたらリスタート | ||
行 61: | 行 69: | ||
- Agent | - Agent | ||
- Jenkins の管理 → ノードの管理 | - Jenkins の管理 → ノードの管理 | ||
- | - master も使う場合、master → 設定 → ラベルに任意の名前を設定 (windows など) | + | - master |
- 新規ノード作成 → ノード名設定、Permanent Agent On → OK | - 新規ノード作成 → ノード名設定、Permanent Agent On → OK | ||
- | * 必要に応じて追加。 | + | * 必要に応じて追加 |
+ | * Linux Agent は ssh 設定 + openjdk だけで利用できる。 | ||
---- | ---- | ||
+ | |||
===== Linux ===== | ===== Linux ===== | ||
- | Raspberry Pi 4 | + | ==== 直接 install する場合 ==== |
+ | |||
+ | Ubuntu, Debian 等 | ||
- install | - install | ||
* < | * < | ||
- | $ sudo apt install openjdk-11-jdk | + | $ sudo apt install openjdk-17-jdk |
$ sudo apt install jenkins | $ sudo apt install jenkins | ||
</ | </ | ||
- ブラウザで http:// | - ブラウザで http:// | ||
+ | |||
+ | ==== docker を使う場合 ==== | ||
+ | |||
+ | * https:// | ||
+ | |||
+ | - mkdir jenkins | ||
+ | - cd jenkins | ||
+ | - mkdir jenkins_home | ||
+ | - vi docker-compose.yml | ||
+ | - docker compose pull | ||
+ | - docker compose up -d | ||
+ | |||
+ | ++++docker-compose.yml| | ||
+ | <code yml> | ||
+ | version: " | ||
+ | services: | ||
+ | jenkins: | ||
+ | container_name: | ||
+ | image: jenkins/ | ||
+ | restart: always | ||
+ | ports: | ||
+ | - 8080:8080 | ||
+ | volumes: | ||
+ | - ./ | ||
+ | </ | ||
+ | ++++ | ||
+ | |||
+ | ==== Linux agent の作成 ==== | ||
+ | |||
+ | - Windows の Jenkins の Agent として使用する場合は git の設定に注意 | ||
+ | * デフォルトで git.exe が登録されているため Linux でエラーになる | ||
+ | - Jenkins の管理 → Global Tool Configuration | ||
+ | - GIt の「Git実行形式へのパス」を “git.exe” から “git” のみに変更 | ||
+ | - Linux 側で sudo apt install openjdk-17-jre | ||
+ | - Linux 側で ssh 設定 | ||
+ | - sudo apt install ssh | ||
+ | - ssh-keygen -t ed25519 -C $HOST | ||
+ | - sudo vi / | ||
+ | - vi ~/ | ||
+ | - Jenkins 側 | ||
+ | - Credentials → SSH User name and Secret Key | ||
+ | - global seculity → Git Host Key Verification Configuration → Accept first connection | ||
+ | - Node 追加 | ||
行 112: | 行 167: | ||
<code groovy> | <code groovy> | ||
// ローダー | // ローダー | ||
- | def script_lib= load " | + | def lib= load( " |
- | script_lib.lib_main() | + | lib.lib_main() |
</ | </ | ||
行 129: | 行 184: | ||
==== 外部コードのプロパティ ==== | ==== 外部コードのプロパティ ==== | ||
- | 外部コード上で変数に値を保存しておいて、それを参照することはできない。 | + | 外部コード上で直接変数に値を保存しておいて、それを参照する場合は def ではなく this を使う。変数宣言は return this を返す実行コンテキストのローカル変数とみなされるため。 |
<code groovy> | <code groovy> | ||
行 144: | 行 199: | ||
</ | </ | ||
- | 変数宣言は return | + | <code groovy> |
+ | // library_code.groovy | ||
+ | |||
+ | this.LocalPath= ' | ||
+ | |||
+ | def getLocalPath() | ||
+ | { | ||
+ | return LocalPath | ||
+ | } | ||
+ | |||
+ | return this | ||
+ | </ | ||
- | もし上記のような使い方をしたい場合は、@Field を使う。 | + | どうしても def で宣言しておきたい場合は @Field を使う。 |
<code groovy> | <code groovy> | ||
行 156: | 行 222: | ||
def getLocalPath() | def getLocalPath() | ||
{ | { | ||
- | return LocalPath | + | return LocalPath |
} | } | ||
行 179: | 行 245: | ||
message url: ~ | message url: ~ | ||
</ | </ | ||
+ | |||
+ | 引数が省略された場合は null になるので、null 判定でデフォルト引数に置き換える事ができる。 | ||
+ | |||
+ | |||
+ | |||
+ | |||
行 195: | 行 267: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | ただし node() 命令の中でさらに node() 命令を使った場合、同じ自分自身の場合も executor を消費する。 | ||
+ | |||
+ | 例えばすでに agent01 上で走っている場合に中でさらに node( ' | ||
+ | このとき割当可能な executor がない場合はデッドロックする。 | ||
+ | そのため入れ子になった node() 命令を多用する場合は、node の設定で「同時実行数」を多めに設定しておいた方が良い。 | ||
software/jenkins.txt · 最終更新: 2023/11/27 10:38 by oga