创建您的第一个Pipeline

什么是 Jenkins Pipeline?

Jenkins Pipeline(或简称为 “Pipeline”)是一套插件,将持续交付的实现和实施集成到 Jenkins 中。

持续交付 Pipeline 自动化的表达了这样一种流程:将基于版本控制管理的软件持续的交付到您的用户和消费者手中。

Jenkins Pipeline 提供了一套可扩展的工具,用于将“简单到复杂”的交付流程实现为“持续交付即代码”。Jenkins Pipeline 的定义通常被写入到一个文本文件(称为 Jenkinsfile )中,该文件可以被放入项目的源代码控制库中。 [1]]

Pipeline 和 Jenkinsfile 的更多相关信息,请参考用户手册中的相关链接 Pipeline使用 Jenkinsfile

快速开始使用 Pipeline:

  1. 以下示例 复制到您的仓库中并命名为 Jenkinsfile

  2. 单击Jenkins中的 New Item 菜单 Classic UI left column

  3. 为您的新工程起一个名字 (例如 My Pipeline) ,选择 Multibranch Pipeline

  4. 单击 Add Source 按钮,选择您想要使用的仓库类型并填写详细信息.

  5. 单击 Save 按钮,观察您的第一个Pipeline运行!

您可能需要修改 Jenkinsfile 以便应用在您自己的项目中。尝试修改 sh 命令,使其与您本地运行的命令相同。

在配置好 Pipeline 之后,Jenkins 会自动检测您仓库中创建的任何新的分支或合并请求, 并开始为它们运行 Pipelines。

继续学习 “执行多个步骤”

快速开始示例

下面是一个简单的 Pipeline 各种语言的复制和粘贴示例。

Java

Jenkinsfile (Declarative Pipeline)

  1. pipeline {
  2. agent { docker 'maven:3.3.3' }
  3. stages {
  4. stage('build') {
  5. steps {
  6. sh 'mvn --version'
  7. }
  8. }
  9. }
  10. }

Toggle Scripted Pipeline (Advanced)

Jenkinsfile (Scripted Pipeline)

  1. /* 需要Docker Pipeline插件 */
  2. node('docker') {
  3. checkout scm
  4. stage('Build') {
  5. docker.image('maven:3.3.3').inside {
  6. sh 'mvn --version'
  7. }
  8. }
  9. }

Node.js / JavaScript

Jenkinsfile (Declarative Pipeline)

  1. pipeline {
  2. agent { docker 'node:6.3' }
  3. stages {
  4. stage('build') {
  5. steps {
  6. sh 'npm --version'
  7. }
  8. }
  9. }
  10. }

Toggle Scripted Pipeline (Advanced)

Jenkinsfile (Scripted Pipeline)

  1. /* 需要 Docker Pipeline 插件 */
  2. node('docker') {
  3. checkout scm
  4. stage('Build') {
  5. docker.image('node:6.3').inside {
  6. sh 'npm --version'
  7. }
  8. }
  9. }

Ruby

Jenkinsfile (Declarative Pipeline)

  1. pipeline {
  2. agent { docker 'ruby' }
  3. stages {
  4. stage('build') {
  5. steps {
  6. sh 'ruby --version'
  7. }
  8. }
  9. }
  10. }

Toggle Scripted Pipeline (Advanced)

Jenkinsfile (Scripted Pipeline)

  1. /* 需要Docker Pipeline插件 */
  2. node('docker') {
  3. checkout scm
  4. stage('Build') {
  5. docker.image('ruby').inside {
  6. sh 'ruby --version'
  7. }
  8. }
  9. }

Python

Jenkinsfile (Declarative Pipeline)

  1. pipeline {
  2. agent { docker 'python:3.5.1' }
  3. stages {
  4. stage('build') {
  5. steps {
  6. sh 'python --version'
  7. }
  8. }
  9. }
  10. }

Toggle Scripted Pipeline (Advanced)

Jenkinsfile (Scripted Pipeline)

  1. /* 需要Docker Pipeline插件 */
  2. node('docker') {
  3. checkout scm
  4. stage('Build') {
  5. docker.image('python:3.5.1').inside {
  6. sh 'python --version'
  7. }
  8. }
  9. }

PHP

Jenkinsfile (Declarative Pipeline)

  1. pipeline {
  2. agent { docker 'php' }
  3. stages {
  4. stage('build') {
  5. steps {
  6. sh 'php --version'
  7. }
  8. }
  9. }
  10. }

Toggle Scripted Pipeline (Advanced)

Jenkinsfile (Scripted Pipeline)

  1. /* 需要 Docker Pipeline 插件 */
  2. node('docker') {
  3. checkout scm
  4. stage('Build') {
  5. docker.image('php').inside {
  6. sh 'php --version'
  7. }
  8. }
  9. }

继续学习“运行多重步骤 steps”


1. https://en.wikipedia.org/wiki/Source\_control\_management\[Source Control Management