Jenkins-Pipeline
Posted shark_西瓜甜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins-Pipeline相关的知识,希望对你有一定的参考价值。
一、Free Style Job 和 Pipeline Job 的区别
Freestyle
Freestyle 学习成本底,容易掌握,方便配置,但是不利于项目以后的 维护
Pipeline
Pipline Job 有一定的学习成本,有利于项目以后都维护,比较匹配持续集成(CI)和持续部署、持续交付的原则(CD)。
Pipeline Job
基本语法
注释
Groovy的注释和java相同,如下是注释单行和多行的风格
/*
* 这是多行注释.
*/
// 这是单行注释
构建一个 Pipeline Job
#!groovy
pipeline {
// 指定运行构建的主机名和工作空间
agent {node {label '172.16.153.172'}}
environment {
// 定义全局环境变量
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin"
}
parameters {
// 定义一个 选项参数
choice(
// 选项的两个值 dev 和 prod
choices: 'dev\\nprod',
description: 'choose deploy environment',
name: 'deploy_env'
)
// 定义一个文本参数
string (name: 'version', defaultValue: '1.0', description: 'build version')
}
// 任务段,所有的任务都在这里声明
stages {
// 第一个任务段
stage("Checkout test repo") { // 给这个任务段起个名字
steps{ // 在这里声明具体要执行的任务步骤
// 利用 sh 模块 执行 shell 命令
sh 'git config --global http.sslVerify false'
dir ("${env.WORKSPACE}") { // 切换当前的工作目录到 jenkins 的工作目录
/* 用 git 模块切换分支 主 分支
* credentialsId 是访问 gitlab/github 的凭据唯一标识
*/
git branch: 'master',
credentialsId:"07b8e67f-31f6-4c48-ae0b-ab557cc0cea0 ",
url: 'git@gitlab.com:xiguatain/test_jenkis_freestyle.git'
}
}
}
// 第二个任务段
stage("Print env variable") {
steps {
dir ("${env.WORKSPACE}") {
sh """
echo "[INFO] Print env variable"
echo "Current deployment environment is $deploy_env" >> test.properties
echo "The build is $version" >> test.properties
echo "[INFO] Done..."
"""
}
}
}
// 第三个任务段
stage("Check test properties") {
steps{
dir ("${env.WORKSPACE}") {
sh """
echo "[INFO] Check test properties"
if [ -s test.properties ]
then
cat test.properties
echo "[INFO] Done..."
else
echo "test.properties is empty"
fi
"""
echo "[INFO] Build finished..."
}
}
}
}
}
以上是关于Jenkins-Pipeline的主要内容,如果未能解决你的问题,请参考以下文章