web-dev-qa-db-ja.com

Jenkinsはintellijとライブラリを共有しました

私はJenkins共有ライブラリの実装を開始し、intellijをideとしてjenkinsfileを書き込もうとしました。

共有libリポジトリからjenkinsファイルを保持している他のリポジトリに関数を取得するにはどうすればよいですか。

Jenkinsから実行しているときにうまく機能していることを明確にするために、shared-libリポジトリの関数を使用してjenkinsファイルを簡単に作成する方法が必要です。

私はIntelliJIDEAと組み合わせたmkobitによる jenkins-pipeline-shared-libraries-gradle-plugin で良い経験をしました。

このプラグインのいくつかの優れた機能は次のとおりです。

  • ソースコードを検証するための基本的なGroovyコンパイル
  • Jenkinsパイプラインユニットを使用したユニットテスト
  • ライブラリでのプラグインとJenkinsコアクラスの使用
  • ライブラリの@Grabサポート(問題のため、テストは@JenkinsRuleスタイルの統合テストに限定されています)
  • @NonCPSアノテーションはメインソースコードで使用できます
  • Jenkinsテストハーネスを使用した統合テスト

個人的には、共有libプロジェクトでパイプラインを開発し、単体テストに合格した後、パイプラインをターゲットリポジトリに統合します。

このプラグインの使用のデモンストレーション用に リポジトリの例 もあります。

1
CDieck

Jenkins共有ライブラリは、特定のグループID、アーティファクトID、およびバージョンを使用して、Mavenプロジェクト(またはgradle、問題ではありません)として作成できます。共有ライブラリを変更するときは常に「mvninstall」を実行する必要があります(この目標は、共有ライブラリのjarアーティファクトをローカルのMavenリポジトリに追加するために使用されていました)。 jenkinsファイルを書き込む別のリポジトリでは、Mavenプロジェクトも作成し、共有ライブラリをMaven依存関係として追加する必要があります。これで、jenkinsファイルの共有ライブラリのコードを使用できます。

1
grolegor

Jenkinsが提供するIntelliJ IDEA GSDLファイルをIDEで使用してみてください。

コンテンツをhttp://<JENKINS>/job/<PIPELINE_JOB>/pipeline-syntax/gdslからpipline.gdslファイルにダウンロードし、このファイルをIntelliJJenkins Pipelineプロジェクトのソースフォルダーに追加します。 (そのファイルをSCMのignore-listに追加することもできます。)

GDSLファイルを追加する前およびのオートコンプリート:

autocompletion without GSDLautocompletion with GSDL

Jenkins UIで、パイプラインプロジェクトの「パイプライン構文> IntelliJ IDEA GSDL」」の下にGSDLファイルがあります。

Jenkins GSDL

ただし、このソリューションには、pipeline.gsdlファイルを手動で編集する必要があるいくつかの警告がありましたが、これは、最新ではないJenkinsのインストール(?)に関連している可能性があります。

  • /varフォルダーからの)カスタムグローバル変数はGSDLファイルで考慮されますが、その変数で定義されたメソッドは考慮されません。
  • parallelクラスのエラー(?)が原因で、ParallelStepステップが正しくエクスポートされませんでした

(知識源: Veaceslav Gaidarjiのブログ 。)

1