99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Pipeline 開發(fā)工具

2018-08-26 10:51 更新

Jenkins Pipeline包含內置文檔和 Snippet Generator,它們是開發(fā)Pipeline時的關鍵資源。它們提供了針對當前安裝的Jenkins版本和相關插件定制的詳細幫助和信息。在本節(jié)中,我們將討論可能有助于開發(fā)Jenkins Pipeline的其他工具和資源。

Blue Ocean編輯器

在 Blue Ocean Pipeline編輯器提供了一個WYSIWYG的方式來創(chuàng)建聲明Pipeline。編輯器提供了Pipeline中所有階段,平行分支和步驟的結構視圖。編輯器會根據(jù)Pipeline更改進行驗證,消除許多錯誤,甚至被提交。在幕后,它仍然生成聲明性的Pipeline代碼。

命令行Pipeline Linter

Jenkins可以在實際運行之前從命令行驗證或“ lint ”聲明式Pipeline。這可以使用Jenkins CLI命令或使用適當?shù)膮?shù)進行HTTP POST請求來完成。我們建議使用 SSH接口 運行l(wèi)inter。有關如何正確配置Jenkins以進行安全命令行訪問的詳細信息,請參閱Jenkins CLI文檔。

通過CLI通過SSH進行Linting
# ssh (Jenkins CLI)
# JENKINS_SSHD_PORT=[sshd port on master]
# JENKINS_HOSTNAME=[Jenkins master hostname]
ssh -p $JENKINS_SSHD_PORT $JENKINS_HOSTNAME declarative-linter < Jenkinsfile
通過HTTP POST使用 curl
# curl (REST API)
# Assuming "anonymous read access" has been enabled on your Jenkins instance.
# JENKINS_URL=[root URL of Jenkins master]
# JENKINS_CRUMB is needed if your Jenkins master has CRSF protection enabled as it should
JENKINS_CRUMB=`curl "$JENKINS_URL/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,\":\",//crumb)"`
curl -X POST -H $JENKINS_CRUMB -F "jenkinsfile=<Jenkinsfile" $JENKINS_URL/pipeline-model-converter/validate

例子

以下是Pipeline Linter的兩個實例。第一個例子顯示了linter在通過無效的輸出時Jenkinsfile,缺少agent聲明的一部分。

Jenkinsfile
pipeline {
  agent
  stages {
    stage ('Initialize') {
      steps {
        echo 'Placeholder.'
      }
    }
  }
}
Linter輸出無效的Jenkins文件
# pass a Jenkinsfile that does not contain an "agent" section
ssh -p 8675 localhost declarative-linter < ./Jenkinsfile
Errors encountered validating Jenkinsfile:
WorkflowScript: 2: Not a valid section definition: "agent". Some extra configuration is required. @ line 2, column 3.
     agent
     ^

WorkflowScript: 1: Missing required section "agent" @ line 1, column 1.
   pipeline &#125;
   ^

在第二個例子中,Jenkinsfile已經被更新為包含缺少anyagent。linter現(xiàn)在報告Pipeline是有效的。

Jenkinsfile
pipeline {
  agent any
  stages {
    stage ('Initialize') {
      steps {
        echo 'Placeholder.'
      }
    }
  }
}
Linter輸出有效的Jenkins文件
ssh -p 8675 localhost declarative-linter < ./Jenkinsfile
Jenkinsfile successfully validated.

“Replay”Pipeline運行與修改

通常,Pipeline將在經典的Jenkins Web UI中定義,或者通過提交到Jenkinsfile源代碼控件來定義。不幸的是,這兩種方法都不適用于Pipeline的快速迭代或原型設計。“重播”功能可以快速修改和執(zhí)行現(xiàn)有流水線,而無需更改Pipeline配置或創(chuàng)建新的提交。

用法

要使用“重播”功能:

1、在構建歷史記錄中選擇先前完成的運行。

Pipeline 開發(fā)工具

2、點擊左側菜單中的“重播”

Pipeline 開發(fā)工具

3、進行修改并單擊“運行”。在這個例子中,我們將“ruby-2.3”更改為“ruby-2.4”。

Pipeline 開發(fā)工具

4、檢查更改的結果

一旦您對更改感到滿意,您可以使用Replay再次查看它們,將其復制回Pipeline作業(yè)Jenkinsfile,然后使用您通常的工程流程提交。

特征

  • 可以在同一運行中多次調用 - 允許輕松并行測試不同的更改。
  • 也可以在仍在進行中的Pipeline運行中調用 - 只要Pipeline包含語法正確的Groovy并且能夠啟動,它可以被Replayed。
  • 參考的共享庫代碼也可以修改 - 如果Pipeline運行引用 共享庫,共享庫中的代碼也將作為Replay頁面的一部分顯示和修改。

限制

  • 無法重播語法錯誤的Pipeline運行 - 這意味著無法查看代碼,無法檢索其中所做的任何更改。當使用Replay進行更多重要的修改時,在將其更改保存到Jenkins之外的文件或編輯器之前,請先運行它們。
  • 重播的Pipeline行為可能與其他方法開始的運行有所不同 - 對于不屬于多分支流水線的Pipeline,對于原始運行和Replayed運行,提交信息可能不同。見JENKINS-36453

Pipeline單元測試框架

Pipeline單元測試框架是Jenkins項目不支持的第三方工具。

該Pipeline單元測試框架 可以讓你的單元測試Pipeline和共享庫完全運行之前。它提供了一個模擬的執(zhí)行環(huán)境,真正的Pipeline的步驟是模仿對象,模仿對象

是可以使用檢查期望的方式取代的。雖然新的和粗糙的邊緣,但有希望。該項目的README包含示例和使用說明。


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號