1、什么是pipeline

将一件需要重复做的事情切割成各个不同的阶段,每一个阶段由独立的单元负责。所有待执行的对象依次进入作业队列。
可参照:https://www.cnblogs.com/midhillzhou/p/5588958.html

2 指令

可参照:https://www.w3cschool.cn/jenkins/jenkins-qc8a28op.html
agent 表示Jenkins应该为Pipeline的这一部分分配一个执行者和工作区。
stage 描述了这条Pipeline的一个阶段。
steps 描述了要在其中运行的步骤 stage
sh 执行给定的shell命令

agent 代理

指定整个Pipeline或特定阶段(stage)将在Jenkins环境中执行的位置,具体取决于该
agent 部分的放置位置,可以在pipeline块内或stage指令内。

pipeline{
   //agent用于指定执行job的节点,any为不做限制
	agent any
}

parameters 参数
指令提供用户在触发Pipeline时应提供的参数列表。这些用户指定的参数的值通过该params对象可用于Pipeline步骤,只能在pipeline块中定义一次
ps : 变量的引用
在双引号中用${var_name};在单引号中直接用变量名var_name即可

pipeline {
    agent any
	// 定义参数,后面可以引用
    parameters {
        string(name: 'PERSON', defaultValue: 'Mr Jenkins', description: 'Who should I say hello to?')
    }
	stages {
        stage('Example') {
            steps {
		     // 引用参数
                echo "Hello ${params.PERSON}"
            }
        }
    }
}

options 选项
该指令允许在Pipeline本身内配置Pipeline专用选项,只能在pipeline块中定义一次

pipeline {
    agent any
    options {
        timeout(time: 1, unit: 'HOURS') 
    }
    stages {
        stage('Example') {
            steps {
                echo 'Hello World'
            }
        }
    }
}

environment 环境
指定一系列键值对,这些对值将被定义为所有步骤的环境变量或阶段特定步骤,具体取决于environment指令位于Pipeline中的位置,可以在pipeline块内或stage指令内。

pipeline {
      //agent用于指定执行job的节点,any为不做限制
      agent any

      environment {
        MVN_PATH = '/var/maven_home/bin/mvn'
        IMG = 'mkevin-docker'
      }

      //阶段
      stages {
        //每一个阶段
		stage('maven 构建') {
			steps{
			    /*使用mvn构建,使用全路径模式*/
			    sh '${MVN_PATH} install'
			}
		}
}

stages 阶段
stage指令用在stages中,且必须传递一个参数,stage下需包含steps,step块中就是具体要执行的命令

pipeline {
      //agent用于指定执行job的节点,any为不做限制
      agent any

      environment {
        STR='我是环境'
      }

      //阶段
      stages {
        //每一个阶段
		stage('stage的参数') {
			steps{
			    /*使用mvn构建,使用全路径模式*/
			    echo 'STR'
			}
		}
	  }
}
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐