GNU/Linux >> Linux の 問題 >  >> Ubuntu

Jenkins共有ライブラリ:作成、構成、および使用方法

はじめに

Jenkinsは、ソフトウェア開発者向けのオープンソース自動化サーバーです。これにより、ユーザーは、ソフトウェアの開発と展開をより簡単かつ効率的にする反復可能な要素を作成および管理できます。これらの要素の1つは、Jenkins共有ライブラリです。

このチュートリアルでは、Jenkins共有ライブラリとは何かを定義し、ソフトウェア開発でそれらを作成、管理、および使用する方法を説明します。

前提条件

  • インストールされてすぐに使用できるJenkinsのコピー(Windows 10、Ubuntu 18.04、Debian 10、CentOS 8にJenkinsをインストールする方法、またはKubernetesクラスターにJenkinsをインストールする方法を学ぶ)
  • Webブラウザへのアクセス

Jenkinsの共有ライブラリとは何ですか?

Jenkinsの共有ライブラリは、異なるJenkinsジョブ間で共有されるGroovyスクリプトのコレクションです。スクリプトを実行するために、スクリプトはJenkinsfileにプルされます。

各共有ライブラリでは、ユーザーがソースコードを取得する名前と方法を定義する必要があります。これらのメソッドには、ローカルファイル、Gitリポジトリ、およびJenkinsSCMプラグインが含まれます。オプションで、ユーザーはデフォルトのライブラリバージョンを設定することもできます。

Jenkins共有ライブラリを使用する理由

開発者は共有ライブラリを使用して、複数のプロジェクトに対して同じコードを最初から作成しないようにします。共有ライブラリは開発プロジェクト間でコードを共有するため、ソフトウェア開発ライフサイクルが最適化されます。これにより、コーディングにかかる​​時間が大幅に短縮され、コードの重複を防ぐことができます。

共有ライブラリを作成すると、プロジェクトのソースコードの更新をプッシュするプロセスも簡素化されます。ライブラリのソースコードを更新すると、ライブラリを使用するすべてのプロジェクトのコードも更新されます。

Jenkinsで共有ライブラリを作成するにはどうすればよいですか?

Jenkinsで共有ライブラリを作成するには、次の手順が必要です。

ステップ1:Groovyスクリプトを作成する

まず、ライブラリに保存するコードを使用してGroovyスクリプトを作成します。

たとえば、次のGroovyスクリプトは、 Helloを出力する挨拶関数を作成します。 およびユーザー定義のname 出力としてのパラメータ:

#!/usr/bin/env groovy

def call(String name = 'human') {
  echo "Hello, ${name}."
}

ステップ2:スクリプトをGitリポジトリに追加する

varsという名前のディレクトリを含む新しいGitリポジトリを作成します 。スクリプトをvarsに保存します sayHello.groovyとしてのディレクトリ 。

ステップ3:Jenkinsに共有ライブラリを追加する

1。 WebブラウザでJenkinsダッシュボードを開きます。

2.ジェンキンスの管理をクリックします Jenkinsダッシュボードの左側にあるリンク。

3.システム構成の下 、システムの構成をクリックします ボタン。

4.グローバルパイプラインライブラリまで下にスクロールします セクションをクリックし、追加をクリックします ボタン。

5.新しいダイアログが開き、名前やSCMメソッドなどのライブラリの詳細を設定するように求められます。詳細を入力してライブラリを構成します:

  • 名前: 新しい共有ライブラリの名前。
  • デフォルトバージョン: 新しい共有ライブラリのデフォルトバージョンを設定します。 SCMに応じて、これはブランチ名、タグ、コミットハッシュなどになります。
  • 暗黙的にロード: このオプションをオンにすると、スクリプトはライブラリを要求しなくても自動的にライブラリにアクセスできます。
  • デフォルトバージョンのオーバーライドを許可する: このオプションをオンにすると、スクリプトでライブラリのカスタムバージョンを選択できます。
  • @Libraryの変更をジョブの最近の変更に含める: このオプションをオンにすると、ライブラリへの変更がライブラリを使用するすべてのビルドに影響します。
  • フェッチしたバージョンをマスターにキャッシュして、すばやく取得できるようにします: このオプションをオンにすると、Jenkinsはこのライブラリのフェッチされたバージョンをマスターにキャッシュします。
  • 取得方法: ドロップダウンメニューから、Modern SCM(Jenkins SCMプラグインを使用する場合)またはLegacy SCM(Jenkinsと統合されていないSCMメソッドを使用する場合)を選択します。最新のSCMを選択すると、SCMプラグインを選択し、関連するオプションを構成できます。
  • ライブラリパス(オプション): SCMルートからライブラリディレクトリのルートへの相対パスを設定できます。

6.新しいライブラリの構成が完了したら、[保存]をクリックします ボタンをクリックして、変更をJenkinsに保存します。

ステップ4:Jenkinsパイプラインで共有ライブラリを使用する

共有ライブラリをGitリポジトリからJenkinsに追加した後、パイプラインスクリプトでそれを参照できます。

1.Jenkinsで新しいパイプラインアイテムを作成します。アイテムの名前を入力し、パイプラインを選択します プロジェクトタイプとして。完了したら[OK]をクリックします。

2.共有ライブラリをロードする簡単なスクリプトを追加します。 Alexを使用しました nameとして パラメータ:

@Library('pipeline-library-demo')_

 stage('Demo') {
     echo 'Hello world'
     sayHello 'Alex'
 }

3.保存をクリックします パイプラインへの変更を保存します。

4.パイプラインを構築し、コンソール出力を確認すると、共有ライブラリが正しく読み込まれ、ユーザー入力と対話していることがわかります。

パイプラインに共有ライブラリをロードする方法

共有ライブラリが暗黙的に読み込まれない場合、JenkinsはGroovyスクリプトを使用して共有ライブラリを参照するいくつかの方法を提供します。

スクリプトを手動で参照するには、Jenkinsコードの先頭に次のアノテーションを追加します。

@Library('[library name]')_

アットマークを追加します( @ )およびライブラリの特定のバージョンをロードするためのバージョン名:

@Library('[library name]@[library version]')_

複数のライブラリを同時にロードする場合は、名前をコンマ記号( ,)で区切ります。 )と空白スペース:

@Library(['[library name 1]', '[library name 2]'])_

もう1つのオプションは、共有ライブラリを動的にロードすることです。このタイプの注釈は、スクリプトのどこにでも配置できます:

library '[library name]'

Jenkinsグローバルパイプラインライブラリに含まれていないサードパーティライブラリを動的にロードすることもできます。 設定。たとえば、Gitからライブラリを読み込むには、ライブラリ名、Jenkinsクラスタグ、ライブラリのGit URL、およびライブラリにアクセスするための有効なクレデンシャルを指定する必要があります。

library identifier: '[library name]@[library version]', retriever: modernSCM(
  [$class: 'GitSCMSource',
   remote: '[library Git URL]',
   credentialsId: '[Git credentials]'])

もう1つの方法は、ライブラリを含むGitリポジトリに直接リンクすることです。パイプラインを構成するときは、パイプラインまで下にスクロールします セクションを選択し、SCMからのパイプラインスクリプトを選択します 定義のオプション ドロップダウンメニュー。

Gitを選択したら SCMのオプション ドロップダウンメニューで、リポジトリのURL、資格情報、ブランチIDを追加し、[保存]をクリックします。 確認します。


Ubuntu
  1. Ansible Playbook:Playbookを作成および構成する方法

  2. サブドメインを作成して使用する方法

  3. Linux 共有ライブラリの紹介 (共有ライブラリの作成方法)

  1. Kubernetesシークレット–シークレットを作成、使用、アクセスする方法

  2. NFS Dockerボリューム:作成および使用方法

  3. CentOS7およびRHEL7にJenkinsをインストールして構成する方法

  1. Ubuntu20.04にJenkinsをインストールして構成する方法

  2. ArchLinuxでSudoユーザーを作成および構成する方法

  3. Ansibleでカスタムファクトを作成して使用する方法