簡體   English   中英

擴展 Jenkins Groovy DSL

[英]Extending the Jenkins Groovy DSL

如何向我的 Jenkins 實例添加/編輯可以在 DSL 腳本中訪問的新代碼? 上下文如下

我繼承了一個 Jenkins 實例。 inheritance 的一部分包括 在鬼屋 過夜,通過Jobs DSL 插件在 groovy 中編寫一些新的自動化。 因為我害怕破壞我們的 jenkins 實例,所以我的第一步是建立一個本地開發實例。

我在本地開發實例上運行我們現有的DSL 腳本之一時遇到問題——我在本地服務器上的構建失敗,並在 Jenkins 錯誤控制台中顯示以下內容。

Processing DSL script jobs.groovy
ERROR: startup failed:
jobs.groovy: 1: unable to resolve class thecompanysname.jenkins.extensions

有問題的腳本是這樣開始的。

import thecompanysname.jenkins.extensions

use(extensions) {
  def org = 'project-name'
  def project = 'test-jenkins-repo'
  def _email = 'foo@example.com'

所以,據我所知,似乎前任已經編寫了一些他們正在導入的自定義 Groovy 代碼

import thecompanysname.jenkins.extensions

我不清楚的是

  1. 此代碼所在的位置
  2. 我如何在我們真正的 Jenkins 實例中找到它
  3. 如何添加到我的本地實例

歡迎提供具體答案,因為我們在這里介紹了如何學習釣魚答案。

雖然可能有其他方法可以做到這一點,但經過一番探索后,我發現

  1. 我安裝的 Jenkins 實例安裝了舊版本的Jobs DSL 插件

  2. 這個版本的 Jobs DSL 插件允許您在Process DSL Builds作業部分設置一個額外的classpath ,該類路徑指向額外jar文件。

  3. 這些 jar 文件可以讓您訪問 groovy 腳本中的其他類(即公司名稱thecompanysname.jenkins.extensions

不幸的是,最新版本的Jobs DSL 插件已經刪除了這個選項,目前還不清楚是否可以重新添加它。 然而,這是另一個問題。

配置全局安全 -> 取消選中“為作業 DSL 腳本啟用腳本安全”。
為我工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM