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' } } }