
选择一个列子测试
执行流水线后可以看到,输出了hello的列子

jspipeline {
agent any
stages {
stage('1.拉取git仓库代码') {
steps {
echo '拉取git仓库代码成功'
}
}
stage('2.通过Maven构建项目') {
steps {
echo '通过Maven构建项目成功'
}
}
stage('3.质量代码检测') {
steps {
echo '质量代码检测成功'
}
}
stage('4.Docker制作镜像') {
steps {
echo 'docker制作镜像成功'
}
}
stage('5.自定义镜像推送Harbor') {
steps {
echo '自定义镜像推送Harbor成功'
}
}
stage('6.通知目标服务器拉取镜像启动') {
steps {
echo '通知目标服务器拉取镜像启动成功'
}
}
}
}



最后吧git仓库生成的代码粘贴但这里就行了


添加一个名为Jenkinsfile的文件

然后回到Jenkins更改方式,把gitlab仓库地址填上

然后tag标签版本控制也添加上

gitlab这里改成变量的tag控制版本


生成脚本

然后放到gitlab的Jenkinsfile中
jssh '/var/jenkins_home/maven/bin/mvn clean package -DskipTests'

js/var/jenkins_home/sonar-scanner-4.8.0.2856-linux/bin/sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=${JOB_NAME} -Dsonar.projectKey=${JOB_NAME} -Dsonar.java.binaries=./target/ -Dsonar.login=178e1842a7318cabd37749b7f2f5a5b88a5fb997

jssh '/var/jenkins_home/sonar-scanner-4.8.0.2856-linux/bin/sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=${JOB_NAME} -Dsonar.projectKey=${JOB_NAME} -Dsonar.java.binaries=./target/ -Dsonar.login=178e1842a7318cabd37749b7f2f5a5b88a5fb997'


jscp -rf ./target/*.jar ./docker/
docker build -t ${JOB_NAME}:${tag} ./docker/

jssh '''cp -rf ./target/*.jar ./docker/
docker build -t ${JOB_NAME}:${tag} ./docker/'''

jssh '''docker login 192.168.201.107:80 -u admin -p 123456
docker tag ${JOB_NAME}:${tag} 192.168.201.107:80/${JOB_NAME}/${JOB_NAME}:${tag}
docker push 192.168.201.107:80/${JOB_NAME}/${JOB_NAME}:${tag}'''
已成功推送到Harbor仓库,注意的是,前提要创建好这个仓库

配置好端口的变量

jsjiaoben.sh 192.168.201.107:80 mytest1test ${JOB_NAME} $tag $host_port $port
jssshPublisher(publishers: [sshPublisherDesc(configName: '测试本机服务器', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: "jiaoben.sh 192.168.201.107:80 mytest1test ${JOB_NAME} $tag $host_port $port", execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])

注意变量在gitlab仓库那边要改成双引号

最后完成整个pipeline的CI/CD流程


本文作者:松轩(^U^)
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!