Jenkins管道(或簡稱「管道」)是一套插件,支持實現和集成持續交付管道到Jenkins中。php
持續交付管道是將軟件從版本控制直接傳遞給用戶和客戶的過程的自動化表達。node
Jenkins管道提供了一組可擴展的工具,用於「做爲代碼」對簡單到複雜的交付管道進行建模,Jenkins管道的定義一般寫入文本文件(稱爲Jenkinsfile
),而後將其檢入項目的源代碼控制存儲庫。python
有關管道和什麼是Jenkinsfile
的更多信息,請參閱用戶手冊的相應管道和使用Jenkinsfile
部分。golang
快速開始使用管道:docker
Jenkinsfile
。
你可能須要修改其中一個示例Jenkinsfile
,以使其與你的項目一塊兒運行,嘗試修改sh
命令以運行與在本地機器上運行相同的命令。npm
設置管道後,Jenkins將自動檢測在你的存儲庫中建立的任何新分支或Pull請求,並開始爲它們運行管道。segmentfault
下面是一些使用各類語言的簡單管道的簡單複製和粘貼示例。ruby
Jenkinsfile (Declarative Pipeline) pipeline { agent { docker { image 'maven:3.3.3' } } stages { stage('build') { steps { sh 'mvn --version' } } } }
腳本管道(高級):maven
Jenkinsfile (Scripted Pipeline) /* Requires the Docker Pipeline plugin */ node('docker') { checkout scm stage('Build') { docker.image('maven:3.3.3').inside { sh 'mvn --version' } } }
Jenkinsfile (Declarative Pipeline) pipeline { agent { docker { image 'node:6.3' } } stages { stage('build') { steps { sh 'npm --version' } } } }
腳本管道(高級):ide
Jenkinsfile (Scripted Pipeline) /* Requires the Docker Pipeline plugin */ node('docker') { checkout scm stage('Build') { docker.image('node:6.3').inside { sh 'npm --version' } } }
Jenkinsfile (Declarative Pipeline) pipeline { agent { docker { image 'ruby' } } stages { stage('build') { steps { sh 'ruby --version' } } } }
腳本管道(高級):
Jenkinsfile (Scripted Pipeline) /* Requires the Docker Pipeline plugin */ node('docker') { checkout scm stage('Build') { docker.image('ruby').inside { sh 'ruby --version' } } }
Jenkinsfile (Declarative Pipeline) pipeline { agent { docker { image 'python:3.5.1' } } stages { stage('build') { steps { sh 'python --version' } } } }
腳本管道(高級):
Jenkinsfile (Scripted Pipeline) /* Requires the Docker Pipeline plugin */ node('docker') { checkout scm stage('Build') { docker.image('python:3.5.1').inside { sh 'python --version' } } }
Jenkinsfile (Declarative Pipeline) pipeline { agent { docker { image 'php' } } stages { stage('build') { steps { sh 'php --version' } } } }
腳本管道(高級):
Jenkinsfile (Scripted Pipeline) /* Requires the Docker Pipeline plugin */ node('docker') { checkout scm stage('Build') { docker.image('php').inside { sh 'php --version' } } }
Jenkinsfile (Declarative Pipeline) pipeline { agent { docker { image 'golang' } } stages { stage('build') { steps { sh 'go version' } } } }
腳本管道(高級):
Jenkinsfile (Scripted Pipeline) /* Requires the Docker Pipeline plugin */ node('docker') { checkout scm stage('Build') { docker.image('go').inside { sh 'go version' } } }