Jenkins之聲明式pipeline基礎

2020-12-16 開源優測

精華推薦:重磅發布 - 自動化框架基礎指南pdf

介紹

Jenkins 2.0的到來,pipline進入了視野,jenkins2.0的核心特性。也是最適合持續交付的feature。

簡單的來說,就是把Jenkins1.0版本中,Project中的相關配置信息,如SVN/Git的配置,Parameter的配置等都變成Code,即Pipeline as Code。

隨著pipeline交付流水線在團隊中的推廣,使用pipeline腳本的job也迅速增加。

優勢

1. 通過寫代碼的形式配置Project,且Jenkins中內置了常用的steps。

2. 實現了構建步驟代碼化、構建過程視圖化。

基礎

Pipeline最基本的部分是「step」。基本上,step告訴Jenkins 要做什麼,並且作為Declarative Pipeline和Scripted Pipeline語法的基本構建塊。

Pipeline支持兩種語法:Declarative Pipeline(在Pipeline 2.5中引入,即聲明式pipeline)和Scripted Pipeline(即腳本式pipeline),兩者都支持建立連續輸送的Pipeline。

選擇Declarative Pipeline還是Scripted Pipeline

最開始的Pipeline plugin,支持的只有一種腳本類型,就是Scripted Pipeline;

Declarative Pipeline為Pipeline plugin在2.5版本之後新增的一種腳本類型,與原先的Scripted Pipeline一樣,都可以用來編寫腳本。

本文主要介紹Declarative Pipeline(聲明式pipeline),雖然筆者推薦採用Scirpted Pipeline,但也依舊推薦新手學習、了解、掌握Declarative Pipeline,以便初步理解和掌握Pipeline。

Declarative Pipeline是Jenkins Pipeline 的一個相對較新的補充, 它在Pipeline子系統之上提出了一種更為簡化和有意義的語法。

所有有效的Declarative Pipeline必須包含在一個pipeline塊內,例如:

pipeline { /* insert Declarative Pipeline here */ }

聲明式Pipeline標準模板如下

區別

在聲明式流水線中有效的基本語句和表達式遵循與 Groovy的語法同樣的規則, 有以下例外:

流水線頂層必須是一個 block, 特別地: pipeline { }沒有分號作為語句分隔符,,每條語句都必須在自己的行上。塊只能由 節段, 指令, 步驟, 或賦值語句組成。*屬性引用語句被視為無參方法調用。例如, input被視為 input()

對於聲明式pipeline語法更多信息,可以參見官方文檔:

https://jenkins.io/zh/doc/book/pipeline/syntax/#聲明式流水線

未完待續...

上一篇文章:重磅發布 - 自動化框架基礎指南pdf

精選文章

重磅發布 - 自動化框架基礎指南pdf在自動化測試中,重要的不是工具苦葉子觀察: 軟體測試行業十一大趨勢在自動化測試工作之前,你應該知道的10條建議

歡迎在文章底部留言、討論、交流

積微者,速成也 -- 荀子《強國篇》

期望苦葉子的每次分享,都能讓你積微,速成!!!

開源優測,離不開你的廣而告之、點讚、分享

相關焦點

  • Jenkins Pipeline實例
    1、什麼是 pipeline pipeline 是 jenkins 的一套插件,用於定義 CD 流程,彈性,可管理。 2、什麼是 Jenkinsfile 通過代碼的方式來管理 pipeline 這樣一來,可以通過版本控制系統來管理。
  • 手把手教你用 Jenkins+K8S 打造流水線環境
    :v1.0,下面增加了 Host Path Volume:/var/run/docker.sock、/root/.kube/、/etc/kubernetes/pki,這邊便是為了 jenkins-slave 下有足夠的權限可以執行 docker 及 kubectl 部署到 k8s 集群的權限,因為 jenkins-slave pod 有可能會被調度到任一 worker 節點,所以所有的 worker
  • 如何在 Kubernetes 上配置 Jenkins?
    4.設置並運行pipeline,對一個簡單的web應用程式進行測試。先決條件1.Docker。有關安裝Docker的詳細信息,請參閱下方「Docker安裝」頁面。https://docs.docker.com/get-docker/2.Kubernetes集群。
  • 遠程觸發Jenkins的Pipeline任務的並發問題處理
    前文概述本文是《遠程觸發Jenkins的pipeline任務》的續篇,上一篇文章實戰了如何通過Http請求遠程觸發指定的Jenkins任務,並且將參數傳遞給Jenkins任務去使用,文末提到了有個並發問題待處理,這就是本文的內容:處理上一篇文章提到的遺留問題
  • Jenkins 憑證管理 - 看這一篇就夠了~
    在Jenkins中添加/配置credentials,Pipeline項目就可以使用 credentials 與三方應用交互Credential 類型參考: https://jenkins.io/zh/doc/book/using/using-credentials/Jenkins可以存儲以下類型的
  • 一、jenkins安裝
    # 拉取庫的配置到本地對應文件sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo# jenkins.repo內容是這樣[jenkins]
  • 12個可以替代jenkins的CI/CD工具
    精華推薦:重磅發布 - 自動化框架基礎指南pdfJenkins是一個開源的持續集成平臺,是DevOps生命周期中的一個重要工具。但是,與當前的用戶界面趨勢相比,它的界面已經過時,用戶界面也不夠友好(苦葉子推薦你用script pipeline:Jenkins之jenkinsfile基礎)。此外,Jenkin配置可能比較複雜,而且它還有許多其他缺點。這裡列出了幾種可以替代Jenkins的工具。這個列表折衷了具有流行特性和最新下載連結的商業和開源的continuos集成工具。
  • Jenkins 支持 Github APP 身份驗證了
    pipeline{ agent any stages{ stage('Check run') { steps { withCredentials([usernamePassword(credentialsId: 'githubapp-jenkins', usernameVariable
  • 手把手教你利用Docker+jenkins部署你的網站
    java環境的jdk鏡像(這一步可有可無)在空的目錄下編寫Dockerfile如/root/images將jdk的未解壓的包拷貝到這個目錄下Dockerfile內容#基礎鏡像中文版docker pull jenkinszh/jenkins-zh這裡選擇的是中文的鏡像創建存儲目錄並授權(很重要)mkdir /home/jenkins_home
  • pipeline什麼意思
    pipeline什麼意思pipe,管子、管道,管中有液體或氣體,能夠從一個地方流到另一個地方。你知道鍵盤上的這個符號:| 英文就是pipe嗎?linespipeline,一根非常長的管道,管中有液體或氣體,可以傳輸很遠的距離,而且這根管道通常鋪設在地下。
  • Docker安裝Jenkins+Shell腳本自動化部署項目
    1.遠程連接linux伺服器,創建docker在主機的jenkins數據映射目錄cd /optmkdir jenkins cd jenkinsmkdir home2version: "3"services: jenkins: image: jenkins/jenkins:lts ports
  • Docker+jenkins小知識,講解通俗易懂,有必要收藏
    有些人可能會想,持續構建很熟悉基本上也就是基於jenkins,沒錯jenkins確實是目前持續集成中最為流程也比較常見的一種解決方案,不過我們今天並不是僅僅單純地講jenkins,而是想再引入另外一個比較新穎也比較火的概念,也就是docker,對於熱點概念比較熟悉的朋友對docker並不陌生,這幾乎是近期最熱點的一門技術之一。
  • SpringBoot+GitLab+Docker+Jenkins實現持續集成下
    創建Docker容器docker create --name jenkins -u root -p 8889:8080 --privileged=true -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /home/jenkins:/home docker.io
  • 使用Kubernetes 和 Jenkins 創建一個 CI/CD 流水線
    >- hosts: localhost become: yes vars: jenkins_hostname: 35.238.224.64 docker_users: - jenkins roles:
  • 手把手教你在Linux下搭建Jenkins實現自動部署
    使用以下wget命令導入Jenkins存儲庫的GPG鍵:linuxmi@linuxmi:~/www.linuxmi.com$ wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
  • Major oil pipeline to help Niger develop
    The 1,950-kilometer Niger-Benin oil pipeline, constructed by the China National Petroleum Corporation
  • jenkins自動部署本地項目,並發布到maven私服倉庫中
    第一步:下載jenkins的war包第二步啟動jenkins兩種方式1:DOS窗口或者shell命令到jenkinswar包路徑 java -jar jenkins.war --httpPort=8080
  • Jenkins 多環境 CI/CD 架構設計
    >另外:也可以根據需要加入gitlab自動觸發構建、自動化測試、釘釘通知、郵箱通知等需求最終效果圖一鍵發布一鍵回滾Jenkins相關目錄設計----jenkins-exjenkins構建時使用到的目錄------software Jenkins安裝目錄--------master--------slave------backup jenkins備份目錄--------master
  • Netty責任鏈Pipeline詳解
    源碼分析 (二)Netty中的ChannelPipeline責任鏈 介紹 pipeline
  • scrapy實踐之item pipeline的使用
    spider以item的形式返回結構化的信息,這些信息會傳遞給item pipeline進行處理。在這個環節,我們可以根據需要對數據進一步處理,經典的處理場景有以下幾種 1.