Jenkinsfile_配置定时任务
triggers
在jenkinsfile来定义流水线时,常规情况下,项目都是基于手动点击部署,这种策略尤其适用于线上环境,但在测试环境,乃至于预发环境,应该对自动构建有更高的集成度,使开发者只关注于开发,而不必过多纠结构建的过程。这里使用triggers
来定义流水线触发的机制和条件。
目前流水线支持的触发器有三种:crob、pollSCM和upstream。
cron
这里采用和Linux系统一样的定时任务管理方案,加入一些简单的参数项,以应对某些需要定期执行的场景。pipeline {
agent any
triggers {
cron('* * * * *')
}
stages {
stage('cron job') {
steps {
echo 'cron job test'
}
}
}
}
这里参数可以参考linux cron来配置。
pollSCM
这里表示定期对代码仓库进行检测,如果有变化,则自动触发构建。pipeline {
agent any
triggers {
pollSCM('* * * * *')
}
stages {
stage('cron job') {
steps {
echo '每一小时检测一次仓库的变化'
}
}
}
}
upstream
当B项目的执行依赖A项目的执行结果是,A就是B的上游项目,在Jenkins2.22以上的版本中,可以通过upstream关键字进行这种关系的表示。triggers {
// job1,job2都是任务名称
upstream(upstreamProjects: 'job1,job2', threshold: hudson.model.Result.SUCCESS)
}
hudson.model.Result
是一个枚举用于指示上游项目状态,包含以下指令:- ABORTED:任务被手动终止。
- FAILURE:构建失败。
- SUCCESS:构建成功。
- UNSTABLE:存在一些错误,但不至于构建失败。
- NOT_BUILT:再多阶段构建时,前面阶段的问题导致后面阶段无法执行。
gitlab事件触发
这个场景应用较多,大多时候,我们都默认将项目配置为,开发者提交某些分支,然后自动触发对应的构建。传统方式下,需要比较复杂的几步配置,但是在pipeline中也可以通过代码形式对这种触发器进行配置。
注意:gitlab触发Jenkins的构建需要依赖Gitlab插件,而并不需要插件当中列出来的所谓的gitlab hook。pipeline {
agent any
triggers{
gitlab( triggerOnPush: true,
triggerOnMergeRequest: true,
branchFilterType: 'All',
secretToken: "xxxxxxxx")
}
stages {
stage('build') {
steps {
echo '提交代码触发构建'
}
}
}
}
对于触发器用到的参数:
- triggerOnPush:当Gitlab触发push事件时,是否执行构建。
- triggerOnMergeRequest:当Gitlab触发mergeRequest事件时,是否执行构建。
- branchFilterType:只有符合条件的分支才会触发构建,必选,否则无法实现触发。
可选参数如下: - NameBasedFilter:基于分支名进行过滤,多个分支名使用逗号分隔。
- includeBranchesSpec:基于branchFilterType值,输入期望包括的分支的规则。
- excludeBranchesSpec:基于branchFilterType值,输入期望排除的分支的规则。
- RegexBasedFilter:基于正则表达式对分支名进行过滤。
- sourceBranchRegex:定义期望的通过正则表达式限制的分支规则。
这里举几个示例进行说明:
1.只接受固定分支的触发请求,语法如下:
- sourceBranchRegex:定义期望的通过正则表达式限制的分支规则。
triggers{
gitlab( triggerOnPush: true,
triggerOnMergeRequest: true,
branchFilterType: "NameBasedFilter",
includeBranchesSpec: "release",
secretToken: "${env.git_token}")
}
2.通过正则匹配到某些分支触发
triggers{
gitlab( triggerOnPush: true,
triggerOnMergeRequest: true,
branchFilterType: "RegexBasedFilter",
sourceBranchRegex: "test.*",
secretToken: "${env.git_token}")
}
注意:所有对于jenkinsfile的配置都需要手动执行一次,将jenkins加载配置,后面指令才会生效。
参考文档链接:http://www.eryajf.net/3298.html
Jenkinsfile_配置定时任务的更多相关文章
- 在SpringBoot中配置定时任务
前言 之前在spring中使用过定时任务,使用注解的方式配置很方便,在SpringBoot中的配置基本相同,只是原来在spring中的xml文件的一些配置需要改变,在SpringBoot中也非常简单. ...
- SpringBoot 配置定时任务
SpringBoot启用定时任务,其内部集成了成熟的框架,因此我们可以很简单的使用它. 开启定时任务 @SpringBootApplication //设置扫描的组件的包 @ComponentScan ...
- LINUX 配置定时任务,每天凌晨1点定时备份数据库
一.安装定时任务如果本地没有安装包,在能够连网的情况下可以在线安装 yum install vixie-cronyum install crontabs 查看crond服务是否运行: pgrep cr ...
- 第12章 Linux配置定时任务详解
12.1 配置定时任务 首先需弄清的概念: (1).crond是一个daemon类程序,路径为/usr/sbin/crond.默认会以后台方式启动,service或systemd方式启动crond默认 ...
- springboot整合Quartz实现动态配置定时任务
前言 在我们日常的开发中,很多时候,定时任务都不是写死的,而是写到数据库中,从而实现定时任务的动态配置,下面就通过一个简单的示例,来实现这个功能. 一.新建一个springboot工程,并添加依赖 & ...
- 基于Django+celery二次开发动态配置定时任务 ( 一 )
需求: 前端时间由于开发新上线一大批系统,上完之后没有配套的报表系统.监控,于是乎开发.测试.产品.运营.业务部.财务等等各个部门就跟那饥渴的饿狼一样需要 各种各样的系统数据满足他们.刚开始一天一个还 ...
- 基于Django+celery二次开发动态配置定时任务 ( 二)
一.需求 结合上一篇,使用djcelery模块开发定时任务时,定时任务的参数都保存在djcelery_periodictask表的args.kwargs字段里,并且是json格式.那么,当定时任务多了 ...
- Spring+Quartz配置定时任务
一.Quartz介绍 在企业应用中,我们经常会碰到时间任务调度的需求,比如每天凌晨生成前天报表,每小时生成一次汇总数据等等.Quartz是出了名的任务调度框架,它可以与J2SE和J2EE应用程序相结合 ...
- spring利用xml配置定时任务
在开发中会经常遇到做定时任务的需求,例如日志定时清理与处理,数据信息定时同步等需求. 1.在spring中利用xml配置定时任务,如下 <!-- ftpiptv信息同步接口定时任务配置--> ...
- Django + Celery 实现动态配置定时任务
哈喽,今天给大家分享一篇Django+Celery实现动态配置定时任务,因为最近也是无意间看到一位大佬关于这块的文章,然后自己觉得不错,也想学习写一下,然后最终实现功能是在前端页面统一管理计划任务,大 ...
随机推荐
- 使用ssh连接virtual Box里的虚拟机
使用ssh连接virtual Box里的虚拟机 需求:virtual Box提供的文件拖放功能在从虚拟机拖向主机时,会出现一些卡顿,因此考虑使用ssh代替其文件传输功能. 高级 -> 端口转发 ...
- study Python3【2】导入模块
import 与 from...import 在 python 用 import 或者 from...import 来导入相应的模块. 将整个模块(somemodule)导入,格式为: import ...
- Excel百万数据如何快速导入?
前言 今天要讨论一个让无数人抓狂的话题:如何高效导入百万级Excel数据. 去年有家公司找到我,他们的电商系统遇到一个致命问题:每天需要导入20万条商品数据,但一执行就卡死,最长耗时超过3小时. 更魔 ...
- TortoiseGit安装(Windows10环境)
1.前往官网下载 https://tortoisegit.org/download/ 根据自己系统位数进行选择 2.双击运行 3.默认即可,第一个是基于PuTTY的SSH客户端,与Windows兼容更 ...
- 机器人操作系统ROS2之安装(Ubuntu 24)
根据官网说明,ROS2是支持MAC的,本来打算在手头的MAC 15.3.2装一个,虽然要自己编译ROS2系统,但是想着比虚拟机性能好,就兴冲冲的开始了,也没在意官网提示尽量还是装安装版.最后折腾了几天 ...
- 我们离Agent终极形态又近了一步:全球首个支持谷歌A2A(Agent-to-Agent)协议的智能体注册网站上线Product Hunt,未来智能体协作网络
AI 的终点,不是更强大的对话,而是一个真正协作的智能体社会. 这种形态已经在悄然出现. 全球首个支持 Google A2A(Agent-to-Agent)协议 的智能体注册与协作平台同步上线Prod ...
- toRefs 与 toRef 的详解
一.引言在 Vue 3 的响应式系统里,toRefs 和 toRef 是两个实用的工具函数,它们在处理响应式数据时发挥着重要作用.合理运用这两个函数,可以让我们在操作响应式对象和数组时更加灵活,避免一 ...
- idea格式化代码快捷键
Ctrl+Alt+L Ctrl+Shift+Alt+L
- 【HUST】网安|操作系统实验|实验四 设备管理、文件管理
文章目录 任务 任务1 编写一个Linux内核模块,并完成安装/卸载等操作. 1. 提示 2. 任务代码 3. 结果及说明 任务2 编写Linux驱动程序并编程应用程序测试. 1. 提示 2. 任务代 ...
- HarmonyOS NEXT开发实战教程—淘宝搜索页
今天忙里偷闲,分享一个淘宝搜索页实现过程,先上效果图: 界面部分比较简单,大体分为导航栏.历史搜索.猜你想搜和热搜榜几个部分,历史搜索采用用户首选项进行存储数据. 导航栏部分相关代码如下: Flex( ...