现在进入的页面是Jenkins辅助我们编写pipeline脚本的地方,请按照下图操作:
在弹出的窗口配置一个保存了GitHub账号和密码的秘钥配置项,请按照下图的数字顺序操作:
如下图红框所示,在下拉菜单中选择刚才创建的秘钥配置:
此时可以发现之前的红色错误提示已经消失(因为鉴权通过了),点击下图红框中的按钮即可生成pipeline源码:
完整的pipeline脚本内容如下,其中Checkout阶段从GitHub下载的那段脚本,就是上图中自动生成的:
pipeline { agent any tools { maven 'mvn-3.6.2' } stages { stage('Checkout') { steps { echo '从GitHub下载项目源码' checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'git-account-passwd', url: 'https://github.com/zq2599/pipeline.git']]]) } } stage('Build') { steps { echo '开始编译构建' sh 'cd hellojib && mvn clean compile -U -DskipTests jib:dockerBuild' } } stage('Push') { steps { echo '将本地Docker镜像推送到Harbor镜像仓库' echo '给当前镜像设置带有Harbor地址和项目名称的Tag,这样才能推送到Harbor的library项目之下' sh 'docker tag bolingcavalry/hellojib:0.0.1-SNAPSHOT 192.168.50.167/library/hellojib:0.0.1-SNAPSHOT' echo '登录Harbor' sh 'docker login 192.168.50.167 -u admin -p Harbor12345' echo '登录chengg成功,开始推送镜像' sh 'docker push 192.168.50.167/library/hellojib:0.0.1-SNAPSHOT' } } stage('Clean') { steps { echo '清理Maven工程' sh 'cd hellojib && mvn clean' echo '删除镜像' sh 'docker rmi bolingcavalry/hellojib:0.0.1-SNAPSHOT 192.168.50.167/library/hellojib:0.0.1-SNAPSHOT' echo '清理完毕' } } } }将上面的pipeline脚本填写到build-image任务的流水线脚本输入框中,如下图:
点击下图红框中的立即构建即可开始执行流水线任务:
如果配置无误的话任务可以执行成功,如下图,每个阶段的执行结果和耗时都展现出来了:
如果您的任务构架失败了,点击下图红框中的小圆球,会打开任务执行的详细日志,用来检查错误原因:
登录Harbor网站,可以看到推送过来的镜像:
### 把pipeline脚本放在GitHub上
今天的实战中,编写的pipeline脚本是保存在任务的设置中的,还记得 《让Jenkins执行GitHub上的pipeline脚本》一篇的内容么?您可以尝试将今天的pipeline脚本存放在GitHub上,这样从构建脚本到业务项目都实现了版本控制,在多人开发阶段更加实用。
至此,基于pipeline操作的GitHub项目的实战就完成了,如果您正在寻求容器化环境的CI && CD方案,愿本文能给您提供一些参考。