前言
Jenkins pipeline 有太多介绍说明了,我就不在照葫芦画瓢多此一举在这与各位介绍了。我就直接上我的 Job 代码,拿走修改一些设置,就能上生产环境使用了,纯干货分享,不浪费各位同学的时间。
关于 Jenkins
首先,看一下我的 Jenkins 版本信息,给各位一个肯定的参考。
下面直接操练linux系统,一步一步详细分享。
创建 Job 工程
点击左边菜单栏 New Item ,绿色箭头所指选项。
弹出如下创建项目配置窗口,在绿色标注的文本框里输入项目名称,在选择黄色标注的 Pipeline 风格,点击下面的 OK 按钮,就可以创建好一个空的 Pipeline 风格的工程了。
接着打开刚才创建的 Job ,完善更多的参数途岳参数配置配置,如下是完整的探岳参数配置参数选项配置。按你项目实际的需求进行配置即可。
全部配置完成后,点击 Savlinux系统e 按钮保存配置即可。
下面分享途岳参数配置我的 Pipeline script 完整代码。
// 日志
def log(def level, def message) {
// 定义日志输出颜色
def ansi_color = ["red": "\033[31m", "green": "\033[32m", "yellow": "\033[33m", "blue": "\033[34m", "res": "\033[0m"]
if("${level}" == "info") {
println("${ansi_color.green}****${message}****${ansi_color.res}")
} else if("${level}" == "warnning系统运维包括哪些内容") {
pgithub永久回家地址rintln("${ansi_color.red}****${message}****${ansi_color.res}")
}
}
// 清理工作空间
def clean_dir() {
log("info", "start clean workspace")
deleteDilinux虚拟机r()
log("info", "end clean workspace")
// pa系统运维工程师rams.each {
// my_paralinux虚拟机ms.add(string(name: it.key,docker是干什么的 value: it.value))
// }
}
def send_mail() {
def user = "wst021@zoho.com"
def email_subject = "Fgit命令AILED: Job '${env.JOB_NAME} - Builinuxld #${env.BUILD_NUMBER}]'"
if ("${msg}" == "") {
email_subjlinux必学的60个命令ect = "SUCCESSED: Job '[${env.JOB_NAME} - Build #${env.BUILD_NUMBER} - ${params.PROJECT_NAME}]'"
}
emailext (
subject: &qgit命令uot;${email_subject}",
mimeType: 'text/html',
attachLog: true,
compressLog: false,
body: "8p参数配置""
<div style=系统运维工程师"fontlinux是什么操作系统-family:黑体">
<ul&ggitlabt;
<li>下载地址: http://192.203.71.24:18081/artifactory/devpackage/docker容器${BUILDDAxs参数配置TE}</li>
${msg}
</ul&linux创建文件gt;
</div>
""参数配置",
tdocker面试题o: "${user}",
from: &linux重启命令quot;jenkins@admin.com"
)
}
def scprit_check() {
msg = "echo scprit_check"
sh """
git clone http://${user_name}:${password_p}@192.203.72.162:8068/root/mvnwebapp.git --depth 1 --branch master mvnwebapp
"""
}
def scprit_run() {
msg = "echo s系统运维工作内容cprit_run"
sh """
cd ${env.WORKSPACE}/${repo_name} && mvn clean compile package -DskipTests=true
"""
}
def scprit_sonar() {docker常用命令
msg = "echo scprit_sonar"
sh """
cd ${env.WORKSPACE}/${repo_name} && echo "sonarqube"
"""
}
def scprit_docker() {
msg = "echo scprit_docdocker是干什么的ker"
sh """
cd ${env.WORKSPACE}/${repo_name} && echo "docker"
"""
}
def scprit_artifactory() {
msg = "echo scprit_artifactory"
sh """
cd ${env.WORKSPACE}/${repo_name} && echo "scprit_artifactory"
"""
}
def scpgitrit_deploy() {
m系统运维是干嘛的sg = "echo scpritlinux系统安装_deploy"
sh """
cd ${env.WORKSPACE}/${repo_name} && cp -rf target/*.war scm@192.203.77.25/data/${repo_name}_${BUILDDATE}
"""
}
// **start****
pipeline {
agentlinux命令 {
node {
label "master"
}
}
environment {
BUILDDATE = sh(script: "date +%Y%m%d", returnStdout: true).trim()
BUILDTIME = sh(script: "date +%Y%m%d%H%M%S", returnStdout: true).trim()
LC_ALL="C.UTF-8"
LANG="C.UTF-8"
}
parameters {
string(name: "REPO_NAME", defaultValue: "mvnwebapp", description: "gitlab中的git仓库名称")
string(name: "BRANCH_NAME", defaultValue: "master", description: "source仓库主干分支")
string(name: "USER_NAME", defaultValue: "", description: "用户名")
string(name: "PASSWORD_P", defaultValue: "", description: "用户密码")
}
options {
ansiColor('xterm')
disableConcurrentBuilds()
}
stages {
stage("Clean") {
steps {
dir("${env.workspace}") {
script {
clean_dir()
}
}
}
}
stage("CheckOut") {
steps {
dir("${env.workspace}") {
script {
scprit_check()
}
}
}
}
stage("Build") {
steps {
dir("${env.workspace}") {
script {
scprit_run()
}
}
}
}
stage("SonarQube") {
steps {
dir("${env.workspace}") {
script {
scprit_sonar()
}
}
}
}
stage("Push Docker") {
steps {
dir("${env.workspace}") {
script {
scprit_docker()
}
}
}
}
stage("Push Artifactory") {
steps {
dir("${env.workspace}") {
script {
scprit_artifactory()
}
}
}
}
stage("Deploy") {
steps {
dir("${env.workspace}") {
script {
scprit_deploy()
}
}
}
}
}
post {
success {
script {
println("success")
}
}
failure {
script {
println("failure")
}
}
always {
script {
send_mail()
// println("test")
}
}
}
}linux创建文件
参数配置保存后,点击如下的构建按钮,触发 pipeline 的编译。系统/运维
等 Job 顺系统运维包括哪些内容利的编译完成,就会显示如下图所示的界gitlab面,说明工程编译验证一切正常,相关的功能也都按 pipeline 设定参数执行了。
发表评论