jenkins使用pipeline例子
官方文档:
https://www.jenkins.io/doc/book/pipeline/getting-started/
例子1:
pipeline {
agent any
environment {
CODE_DIR = "/jenkins_data/springboot_test"
}
stages {
stage('清理并创建目录') {
steps {
echo "开始清理旧目录:${CODE_DIR}"
sh "rm -rf ${CODE_DIR} || true"
echo "旧目录清理完成,开始创建新目录:${CODE_DIR}"
sh "mkdir -p ${CODE_DIR}"
echo "新目录创建完成:${CODE_DIR}"
}
}
stage('拉取代码') {
steps {
echo "进入目录:${CODE_DIR},开始拉取Git代码"
// dir步骤:切换到指定目录执行后续操作(相当于cd ${CODE_DIR})
dir("${CODE_DIR}") {
// 拉取Git代码
git(url: "http://192.168.1.105/devops/springboot.git",branch: "master",)
echo "Git代码拉取完成,当前目录文件列表:"
// 查看目录内容,验证代码是否拉取成功
sh "ls -l"
sh "pwd"
}
}
}
stage('maven打包') {
steps {
echo "进入代码目录打包:${CODE_DIR}"
dir("${CODE_DIR}") {
// 执行打包命令,增加 -e(详细错误日志)、-U(强制更新快照依赖)
sh 'mvn clean package'
}
}
}
}
}
例子2:
执行shell脚本
pipeline {
agent any
environment {
CODE_DIR = "/jenkins_data/springboot_test"
}
stages {
stage('清理并创建目录') {
steps {
echo "开始清理旧目录:${CODE_DIR}"
sh "rm -rf ${CODE_DIR} || true"
echo "旧目录清理完成,开始创建新目录:${CODE_DIR}"
sh "mkdir -p ${CODE_DIR}"
echo "新目录创建完成:${CODE_DIR}"
}
}
stage('拉取代码') {
steps {
echo "进入目录:${CODE_DIR},开始拉取Git代码"
// dir步骤:切换到指定目录执行后续操作(相当于cd ${CODE_DIR})
dir("${CODE_DIR}") {
// 拉取Git代码
git(url: "http://192.168.1.105/devops/springboot.git",branch: "master",)
echo "Git代码拉取完成,当前目录文件列表:"
// 查看目录内容,验证代码是否拉取成功
sh "ls -l"
sh "pwd"
}
}
}
stage('maven打包') {
steps {
echo "进入代码目录打包:${CODE_DIR}"
dir("${CODE_DIR}") {
// 执行打包命令,增加 -e(详细错误日志)、-U(强制更新快照依赖)
sh 'mvn clean package'
}
}
}
stage('docker build构建镜像') {
steps {
echo "执行docker build构建脚本docker_build.sh"
sh '/script/docker_build.sh'
}
}
}
}
脚本内容
[root@master script]# more docker_build.sh
#!/bin/bash
cd /jenkins_data/springboot_test/target
cp demo-1.0-SNAPSHOT.jar /tmp/myspringboot/
cd /tmp/myspringboot/
docker build -t myspringboot .
浙公网安备 33010602011771号