当前位置: 首页 > news >正文

北京 网站 优化我要安装百度

北京 网站 优化,我要安装百度,长沙手机网站建设,扫码支付 wordpressJenkins 第三章 Jenkins Git Maven 自动化部署配置 十、几种构建方式 快照依赖构建/Build whenever a SNAPSHOT dependency is built 当依赖的快照被构建时执行本job 触发远程构建 (例如,使用脚本) 远程调用本job的restapi时执行本job job依赖构建/Build after other proj…

Jenkins

第三章 Jenkins + Git + Maven 自动化部署配置

十、几种构建方式

  • 快照依赖构建/Build whenever a SNAPSHOT dependency is built
    • 当依赖的快照被构建时执行本job
  • 触发远程构建 (例如,使用脚本)
    • 远程调用本job的restapi时执行本job
  • job依赖构建/Build after other projects are built
    • 当依赖的job被构建时执行本job
  • 定时构建/Build periodically
    • 使用cron表达式定时构建本job
  • 向GitHub提交代码时触发Jenkins自动构建/GitHub hook trigger for GITScm polling
    • Github-WebHook出发时构建本job
  • 定期检查代码变更/Poll SCM
    • 使用cron表达式定时检查代码变更,变更后构建本job

1. 触发远程构建/gitlab上改动自动构建

代码改动自动可以使用gitlab的webhook回调钩子调起Jenkins的启动任务接口

在构建触发器中配置接口和token

在这里插入图片描述

2. 定时构建

Jenkins cron表达式

标准cron

https://crontab.guru

Jenkins cron不是标准的cron表达式

第一个 * 表示每个小时的第几分钟,取值0~59H * * * *
H:每小时执行一次第二颗 * 表示小时,取值0~23* 15 * * * 表示每天下午3点
* 1 * * *  表示每天凌晨1点第三颗 * 表示一个月的第几天,取值1~31
* 1 5 * *  表示每月5日凌晨1点第四颗 * 表示第几月,取值1~12
* 15 5 1 *  表示每年几月执行第五颗 * 表示一周中的第几天,取值0~7,其中0和7代表的都是周日

“/”

表示每隔多长时间,比如 */10 * * * * 表示 每隔10分钟

“H”

hash散列值,以job名取值,获取到以job名为入参的唯一值,相同名称值也相同,这个偏移量会和实际时间相加,获得一个真实的运行时间

意义在于:不同的项目在不同的时间运行,即使配置的值是一样的,比如 都是15 * * * * ,表示每个小时的第15分钟开始执行任务,那么会造成同一时间内在Jenkins中启动很多job,换成H/15 * * * *,那么在首次启动任务时,会有随机值参与进来,有的会在17分钟启动 有的会在19分钟启动,随后的启动时间也是这个值。这样就能错开相同cron值的任务执行了。

H的值也可以设置范围

H * * * *表示一小时内的任意时间

*/10 * * * *每10分钟

H/10 * * * *每10分钟,可能是7,17,27,起始时间hash,步长不变

45 3 * * 1-6 每个周一至周六,凌晨3点45 执行1次

45 3-5 * * 1-6 每个周一至周六,凌晨3点45 ,凌晨4点45,凌晨5点45 各执行1次

H(40-48) 3-5 * * 1-6 在40~48之间取值 其他同上

45 3-5/2 * * 1-6 每个周一至周六,凌晨3点45 ,凌晨5点45 各执行1次

45 0-6/2 * * 1-6 * * 1-6 0点开始,每间隔2小时执行一次 0:45、2:45、4:45

3. 源码变更构建

使用Poll SCM 方式与Build periodically一样

会主动定期检查代码托管服务器上是否有变化,一旦发生变化执行job构建

4. 测试报告邮件通知

十一、自动化部署到docker容器中

1. docker外挂目录

docker run -d -p 8080:8080 --name demo-out -v /root/jarfile/demo-1-0.0.1-SNAPSHOT.jar:/app.jar openjdk:11 java -jar app.jar

2. 打包到容器内

2.1 准备一台测试服务器 docker环境
2.2 准备支持jdk的镜像
FROM openjdk:11
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
RUN javac Main.java
CMD ["java", "Main"]
2.3 把jar包打包到容器内

dockerfile

FROM openjdk:11
EXPOSE 8080WORKDIR /rootADD jarfile/demo*.jar /root/app.jar
ENTRYPOINT ["java","-jar","/root/app.jar"]

打包镜像

docker build -t demo .

配置国内镜像

修改/etc/docker/daemon.json文件,没有的话创建一个

写入

{"registry-mirrors": ["https://ustc-edu-cn.mirror.aliyuncs.com","http://hub-mirror.c.163.com","https://registry.aliyuncs.com"]
}

重启服务

systemctl daemon-reload
systemctl restart docker

十二、Jenkins集群/并发构建

集群化构建可以有效提升构建效率,尤其是团队项目比较多或是子项目比较多的时候,可以并发在多台机器上执行构建。

  • 勾选 在必要的时候并发构建

第四章 流水线 pipeline

流水线既能作为任务的本身,也能作为Jenkinsfile

使用流水线可以让我们的任务从ui手动操作,转换为代码化,像docker的dockerfile一样,从shell命令到配置文件,更适合大型项目,可以让团队其他开发者同时参与进来,同时也可以编辑开发Jenkins web ui不能完成的更复杂的构建逻辑,作为开发者可读性也更好。

一、完整语法

5个必备的组成部分

pipeline:整条流水线
agent:指定执行器
stages:所有阶段
stage:某一阶段,可有多个
steps:阶段内的每一步,可执行命令

二、测试脚本

1. 基础框架

pipeline {agent anystages {stage('拉取代码') {steps {echo '拉取代码完成'}}stage('执行构建') {steps {echo '执行构建完成'}}}post {always {echo "完成"}failure {echo "失败"}}
}

2. 阶段视图 Stage View

2.1 blue ocean可视化界面

全新的流水线控制ui,可重复执行某阶段代码

插件中心搜索blue ocean安装即可

2.2 post

流水线完成后可执行的任务

  • always 无论流水线或者阶段的完成状态。
  • changed 只有当流水线或者阶段完成状态与之前不同时。
  • failure 只有当流水线或者阶段状态为"failure"运行。
  • success 只有当流水线或者阶段状态为"success"运行。
  • unstable 只有当流水线或者阶段状态为"unstable"运行。例如:测试失败。
  • aborted 只有当流水线或者阶段状态为"aborted "运行。例如:手动取消。
2.3 agent

可以指定执行节点

label 指定运行job的节点标签

any 不指定,由Jenkins分配

pipeline {agent {node {label "jenkins-02"}}stages {stage('拉取代码') {steps {sh """sleep 10"""echo '拉取代码完成'}}stage('执行构建') {steps {echo '执行构建完成'}}}post {always {echo "完成"}failure {echo "失败"}}
}

3. pipeline中执行自动化构建

pipeline {agent anytools {maven "maven3"}stages {stage("拉取代码") {steps {git branch: 'main', credentialsId: 'gitlab', url: 'http://192.168.44.103/root/java-project.git'echo '拉取成功'}}stage("执行构建") {steps {//    sh "mvn --version"sh """ cd demo-1mvn clean package"""echo '构建完成'}}stage("clean test server"){steps{sshPublisher(publishers: [sshPublisherDesc(configName: 'testserver', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''rm -rf *docker stop demo
docker rm demo
docker rmi demo
''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '/root')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])}}stage("发送jar包到测试服务器") {steps {sshPublisher(publishers: [sshPublisherDesc(configName: 'testserver', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/jarfile', remoteDirectorySDF: false, removePrefix: 'demo-1/target', sourceFiles: '**/demo*.jar'), sshTransfer(cleanRemote: false, excludes: '', execCommand: '''docker build -t demo .
docker run -d -p 8080:8080 --name demo demo''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/', remoteDirectorySDF: false, removePrefix: 'demo-1/docker', sourceFiles: 'demo-1/docker/dockerfile')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])echo 'jar send over!'}}}
}

三、声明式流水线

好处

  • 更像是在Jenkins web ui中的操作
  • 可读性比较高
  • 可以使用blue ocean自动生成
  • 支持语法检查

坏处

  • 代码逻辑能力比脚本式弱,不能完成特别复杂的任务

四、脚本式流水线

好处

  • 更少的代码和弱规范要求
  • 更灵活的自定义代码操作
  • 不受约束,可以构建特别复杂的工作流和流水线

坏处

  • 读写对编程要求比较高
  • 比声明式流水线代码更复杂
http://www.15wanjia.com/news/20988.html

相关文章:

  • 浙江平安建设网站搜索引擎优化的主题
  • 江阴网站建设推广网站制作的流程是什么
  • 苏州艺术家网站建设第三方关键词优化排名
  • 无锡专业网站建设百度学术论文查重入口
  • 做外贸网站维护费是多少网站建设详细方案模板
  • 南宁外贸网站建设业务推广公司
  • 南阳公司做网站线上营销推广方案有哪些
  • 网站排名优化服务公司如何建立网页
  • 哪个网站做分享赚佣金正能量网站地址链接免费
  • 建设网站小常识亚马逊关键词搜索工具
  • 做抖音的网站网站建设软件
  • 好的网站制作平台枣庄网站建设制作
  • 临沂科技学校网站建设跟我学seo
  • 三网获客大数据获客营销软件福州seo排名优化公司
  • 网站备案表格网络营销公司是做什么的
  • 四川省住房和城乡建设厅新网站红河网站建设
  • 福建漳州东山建设局网站百度推广登陆平台登录
  • 中国空间站天和核心舱百度云官网登录首页
  • 个人和做网站方签合同模板售卖链接
  • 网站域名注册信息查询优化最狠的手机优化软件
  • 公司网站的seo怎么做网络服务电话
  • 长春网络传媒做网站骗钱线上营销模式有哪些
  • 哪个公司网络最好seo关键词优化软件
  • icp备案网站用不了北京优化seo排名优化
  • 谁有网站备案号seo网站优化培训要多少钱
  • 公司网站代码模板下载站长工具浪潮
  • 北京网站建设公司空间续费北京优化网站服务
  • 永康网站定制搜索指数查询
  • 互联网金融网站设计百度seo服务
  • 做旅游网站毕设任务书南京网站推广公司