网站登录密码忘记怎么办,台州卫浴网站建设,网站建设地址 北京,黄金外汇网站建设目录 12、自由风格的CD操作发布 V1.0.0 版本修改代码并推送GitLab 中项目打 Tag 发布 V2.0.0 版本Jenkins 配置 tag 参数添加 Git 参数添加 checkout 命令修改构建命令配置修改 SSH 配置 部署 v1.0.0重新构建工程构建结果 部署 v2.0.0重新构建工程访问 部署v3.0.0 13、流水线任… 目录 12、自由风格的CD操作发布 V1.0.0 版本修改代码并推送GitLab 中项目打 Tag 发布 V2.0.0 版本Jenkins 配置 tag 参数添加 Git 参数添加 checkout 命令修改构建命令配置修改 SSH 配置 部署 v1.0.0重新构建工程构建结果 部署 v2.0.0重新构建工程访问 部署v3.0.0 13、流水线任务的HelloworldHello World新建流水线任务修改项目脚本 SCM 方式维护脚本代码中追加 Jenkinsfile提交修改到 GitLabJenkins 配置重新构建 14、流水线管理 hellojenkins重新构建从GitLab拉取代码流水线语法生成脚本命令更新 Jenkinsfile重新构建 将项目打为 jar 包生成脚本命令更新 Jenkinsfile重新构建 代码质量检测生成脚本命令更新 Jenkinsfile重新构建 构建镜像并推送到 HarborJenkinsfile 中定义环境变量生成脚本命令更新 Jenkinsfile重新构建 通知目标服务器添加端口号参数生成脚本命令更新 Jenkinsfile重新构建 12、自由风格的CD操作 现在要为 GitLab 中当前的项目主干分支 origin/master 上的代码打上一个 Tag例如 v1.0.0。 然后修改代码后仍提交到 GitLab 的主干分支 origin/master 上此时再给项目打上一个 Tag 例如 v2.0.0。这样 hellojenkins 项目的主干分支 origin/master 上就打上了两个 Tag。 而 Jenkins 可以根据主干分支 origin/master 上代码的不同 Tag 对项目进行分别构建。实现项目的持续交付与持续部署。
发布 V1.0.0 版本
修改代码并推送 GitLab 中项目打 Tag 发布 V2.0.0 版本
步骤同上这里不演示了 Jenkins 配置 tag 参数 由于 GitLab 中的项目具有 tag 标签那么 Jenkins 在进行项目构建时就需要让用户选择准备构建哪个 tag 的项目。所以需要在 Jenkins 中配置一个Git 参数 tag 作为用户选项。
添加 Git 参数 添加 checkout 命令
然后当前页面继续下拉找到 Build Steps。 然后点击左上角的三条杠拖拽到顶部git checkout $hjtag表示切换到指定的标签后面可以看到效果 修改构建命令配置 然后当前页面继续下拉找到 Build Steps 中原来添加的构建命令。在所有涉及镜像的命 令中添加上$hjtag 变量引用。然后应用保存。 修改 SSH 配置 然后当前页面继续下拉找到“构建后操作”中的 Send build artifacts over SSH 中的 Exec command将原来写死的版本 latest 修改为$hjtag。 部署 v1.0.0
重新构建工程 任务首页中再次点击 Build with Parameters 构建项目发现增加了 hjtag 选项。这里选择 V1.0.0 进行构建 构建结果
Harbor中新增了 v1.0.0 的镜像。 在目标服务器上新增了 v1.0.0 的镜像且该容器也运行了起来。 浏览器访问 部署 v2.0.0
重新构建工程 任务首页中再次点击 Build with Parameters 构建项目发现增加了 hjtag 选项。这里选择V2.0.0进行构建修改端口号 访问 部署v3.0.0 13、流水线任务的Helloworld 流水线是 Jenkins 对项目构建过程的一种管理方式。其将项目的构建过程按照构建阶段进行非常清晰的划分显示。用户可以通过可视化操作方式来轻松查看、管理构建过程中的各个阶段。
Hello World
新建流水线任务 点击立即构建后就会看到“阶段视图”。 修改项目脚本 为了更好的理解脚本这里对 hello workd 项目的脚本进行修改。 SCM 方式维护脚本 SCMSoftware Configuration Management是指软件配置管理用于管理和协调软件开发过程中的代码、文档和其他相关元素
代码中追加 Jenkinsfile 每个要构建的项目采用 piple 方式进行构建管理要求必须要有一个构建脚本而采用 SCM 脚本维护方式时默认该脚本文件名为 Jenkinsfile。 在 Idea 中的项目根目录下追加一个名为 Jenkinsfile 的文件。然后再将原来的脚本内容复制到该文件中。为了显示区别这里对脚本内容进行了简单修改。
pipeline {agent anystages {stage(阶段one) {steps {echo 阶段one构建成功 --- SUCCESS}}stage(阶段two) {steps {echo 阶段two构建成功 --- SUCCESS}}stage(阶段three) {steps {echo 阶段three构建成功 --- SUCCESS}}}
}提交修改到 GitLab 然后在 GitLab 的项目首页中就可看到多了一个 Jenkinsfile 文件。然后再复制该项目的 http 地址。
Jenkins 配置 在 Jenkins 中流水线任务的“配置”中流水线选择 SCM 方式SCM 选择 Git然后再 将刚才复制的 GitLab 仓库地址粘贴到这里 重新构建 重新立即构建后会发现除了这些阶段名称更新为了修改过的外还新增了一个新的阶段 Checkout SCM,即从 SCM 中检出脚本。 14、流水线管理 hellojenkins 现要将之前的 hellojks 项目通过流水线方式进行构建管理。所以首先需要修改 Idea 中 的 Jenkinsfile 文件内容然后再提交到 GitLab。
pipeline {agent anystages {stage(从Gitlab拉取代码) {steps {echo 从Gitlab拉取代码 --- SUCCESS}}stage(将项目打为jar包) {steps {echo 将项目打为jar包 --- SUCCESS}}stage(代码质量检测) {steps {echo 代码质量检测 --- SUCCESS}}stage(构建并推送镜像到Harbor) {steps {echo 构建并推送镜像到Harbor --- SUCCESS}}stage(通知目标服务器) {steps {echo 通知目标服务器 --- SUCCESS}}}
}重新构建 在 Jenkins 中对 hello_pipeline 任务重新构建。 从GitLab拉取代码 定义Git参数在 Jenkins 中的 pipeline 任务中定义一个 Git 参数该参数仍为发布的 tag。 流水线语法 在 pipeline 脚本文件中如何定义具体的命令语句来实现“从 GitLab 位取代码”“将项目 打为 jar 包”等任务 pipeline 脚本文件是具有其特殊的语法的。不过通过当前 pipeline 任 务中的流水线语法可自动生成符合 pipeline 脚本语法的脚本语句。 生成脚本命令
下面要通过流水线语法生成“从 GitLab 拉取代码”的语句。
首先从 GitLab 的项目中复制项目地址。 然后在 Jenkins 的流水线语法中选择“checkout:Check out from version control”并将复 制来的 GitLab 的项目地址粘贴到Repository URL中。 点击“生成流水线脚本”便可以下面的文本框中自动生成相应脚本语句。 更新 Jenkinsfile 复制生成的流水线脚本并将其写入到 Idea 中的 Jenkinsfile 的相应 stage{}中并提交到 GitLab。 重新构建
对任务进行重新构建发现可以对构建的版本进行选择了。 拉取代码”阶段中点击 Logs便可看到拉取的日志。 将项目打为 jar 包
生成脚本命令 在 Jenkins 中通过流水线脚本语法生成“将项目打为 jar 包”的脚本语句 更新 Jenkinsfile 复制生成的流水线脚本并将其写入到 Idea 的 Jenkinsfile 的相应 stage{}中提交。 重新构建 对任务进行重新构建然后便可在最上层的“将项目打为 jar 包”阶段中点击Logs便 可看到 maven 构建的日志。
代码质量检测
生成脚本命令 在 Jenkins 中通过流水线脚本语法生成“代码质量检测”的脚本语句。 更新 Jenkinsfile 复制生成的流水线脚本并将其写入到 Idea 的 Jenkinsfile 的相应 stage{}中提交。
重新构建 对任务进行重新立构建然后便可在最上层的“通过 SonarQube 进行代码检测”阶段中 点击 Logs便可看到 SonarQube 代码检测的日志。 然后在 SonarQube 管理页面中就可看到新增加了一个 hello_pipeline 的项目了。 构建镜像并推送到 Harbor
Jenkinsfile 中定义环境变量 在Idea中的Jenkinsfile文件中添加环境变量这些变量将在后面生成的脚本命令中使用。 environment {harbor_useradminharbor_passwordHarbor12345harbor_host192.168.40.138:8888harbor_repojks}生成脚本命令 在 Jenkins 中通过流水线脚本语法生成“推送镜像到 Harbor”的脚本语句。脚本语句中使用的是 Jenkinsfile 中定义的环境变量。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DzTj8Hmi-1691236468832)
注意这里是target目录下的jar包没有重新截图了
mv target/*.jar docker/
cd docker
docker build -t ${JOB_NAME}:${ptag} .
docker login -u ${harbor_user} -p ${harbor_password} ${harbor_host}
docker tag ${JOB_NAME}:${ptag} ${harbor_host}/${harbor_repo}/${JOB_NAME}:${ptag}
docker image prune -f
docker push ${harbor_host}/${harbor_repo}/${JOB_NAME}:${ptag}更新 Jenkinsfile 复制生成的流水线脚本并将其写入到 Idea 的 Jenkinsfile 的相应 stage{}中提交。
重新构建 对任务进行重新立构建然后便可在最上层的“构建镜像并推送到 Harbor”阶段中点 击 Logs便可看到推送镜像到 Harbor 的日志。
此时在 Jenkins主机中就可看到出现了 hello_pipeline 的镜像。 此时查看 harbor 的管理页面可以看到在 jks 项目中新增加了 hello_pipeline 的仓库 且仓库中具有 v1.0.0 的镜像。 通知目标服务器
添加端口号参数 为了使用户可以随时指定容器对外暴露的参数这里在 Jenkins 当前任务下的“配置” 中“参数化构建过程”中添加一个字符参数。 生成脚本命令 在 Jenkins 中通过流水线脚本语法生成“通知目标服务器执行 deploy 脚本”的脚本语句。 选择 sshPublisher:Send build artifacts over SSH并从中找到目标服务器。 然后在下面的Exec command中键入要执行的命令生成流水线脚本。 deploy.sh $harbor_host $harbor_repo $JOB_NAME $ptag 8080 $export_port更新 Jenkinsfile 复制生成的流水线脚本并将其写入到 Idea 的 Jenkinsfile 的相应 stage{}中提交到GitLab。 重新构建 对任务进行重新构建然后便可在最上层的“通知目标服务器”阶段中点击 Logs便可看到推送镜像到 Harbor 的日志。 查看目标服务器中的镜像发现相应镜像没有从 harbor 上拉取下来。 其实是双引号变量引起的 再次重新构建拉取成功 浏览器访问成功