如何在gitlab cicd中实现每月10号上午执行

在 GitLab CI/CD 中,可以通过设置定时触发器(Schedules)和脚本中的时间判断逻辑结合,确保任务只在每月 10 号的上午运行。

以下是实现的步骤:


1. 设置定时触发器

GitLab 提供了 Schedules 功能,可以指定每天定时运行某个任务。你可以设置一个定时任务,每天在上午运行一次,例如早上 8 点。

操作步骤:

  1. 进入项目的 CI/CD -> Schedules 页面。
  2. 点击 New schedule。
  3. 设置 Schedule 时间为每天上午,比如 08:00。
  4. 在 Cron 表达式中选择合适的时间间隔。
  5. 保存设置。

2. 在 .gitlab-ci.yml 文件中添加时间判断逻辑

在 GitLab CI 的脚本中,通过 date 命令检查当前是否是每月 10 号上午。如果条件不满足,直接退出任务。

以下是一个示例:

stages:- check_date- run_taskcheck_date:stage: check_datescript:- echo "Checking if it's the 10th and before noon..."# 获取当前时间信息- TODAY=$(date +%d)- HOUR=$(date +%H)# 判断是否是10号且上午- if [ "$TODAY" -eq 10 ] && [ "$HOUR" -lt 12 ]; then echo "Proceeding with the task"; else echo "Not the 10th morning, exiting..."; exit 0; firun_task:stage: run_taskscript:- echo "Running the main task..."- # 在这里放置实际任务脚本needs:- check_date

3. 解释代码逻辑

  1. date 命令:

    • date +%d 获取当前日期(例如 10)。
    • date +%H 获取当前小时(24 小时制,0-23)。
  2. 判断逻辑:

    • 如果当前日期是 10 且小时小于 12,继续执行任务。
    • 否则打印信息并退出任务(exit 0),退出不会标记任务失败。
  3. 分阶段执行:

    • check_date 阶段检查日期。
    • 如果日期条件不符合,整个管道会安全结束,不运行后续任务。

示例输出

如果是每月 10 号上午:

Checking if it's the 10th and before noon...
Proceeding with the task
Running the main task...

如果不是每月 10 号上午:

Checking if it's the 10th and before noon...
Not the 10th morning, exiting...

总结

通过结合 Schedules 和脚本中的日期判断逻辑,可以确保任务只在每月 10 号上午执行。Schedules 确保任务定时触发,而脚本中的逻辑提供额外的保障,避免错误触发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/diannao/67303.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8S 亲和性与反亲和性 深度好文

今天我们来实验 pod 亲和性。官网描述如下: 假设有如下三个节点的 K8S 集群: k8s31master 是控制节点 k8s31node1、k8s31node2 是工作节点 容器运行时是 containerd 一、镜像准备 1.1、镜像拉取 docker pull tomcat:8.5-jre8-alpine docker pull nginx…

安装指南:LLaMA Factory、AutoGPTQ 和 vllm

安装指南:LLaMA Factory、AutoGPTQ 和 vllm 在本文中,我们将详细介绍如何安装 LLaMA Factory、AutoGPTQ 和 vllm,这些工具在大型语言模型(LLMs)和视觉语言模型(VLMs)的微调和量化中非常有用。我…

Nginx三种不同类型的虚拟主机(基于域名、IP 和端口)

🏡作者主页:点击! Nginx-从零开始的服务器之旅专栏:点击! 🐧Linux高级管理防护和群集专栏:点击! ⏰️创作时间:2025年1月15日13点14分 目录 1. 基于域名的虚拟主机 …

解析OVN架构及其在OpenStack中的集成

引言 随着云计算技术的发展,虚拟化网络成为云平台不可或缺的一部分。为了更好地管理和控制虚拟网络,Open Virtual Network (OVN) 应运而生。作为Open vSwitch (OVS) 的扩展,OVN 提供了对虚拟网络抽象的支持,使得大规模部署和管理…

C#异步和多线程,Thread,Task和async/await关键字--12

目录 一.多线程和异步的区别 1.多线程 2.异步编程 多线程和异步的区别 二.Thread,Task和async/await关键字的区别 1.Thread 2.Task 3.async/await 三.Thread,Task和async/await关键字的详细对比 1.Thread和Task的详细对比 2.Task 与 async/await 的配合使用 3. asy…

doris:导入概览

Apache Doris 提供了多种导入和集成数据的方法,您可以使用合适的导入方式从各种源将数据导入到数据库中。Apache Doris 提供的数据导入方式可以分为四类: 实时写入:应用程序通过 HTTP 或者 JDBC 实时写入数据到 Doris 表中,适用于…

【Flink系列】9. Flink容错机制

9. 容错机制 在Flink中,有一套完整的容错机制来保证故障后的恢复,其中最重要的就是检查点。 9.1 检查点(Checkpoint) 9.1.1 检查点的保存 1)周期性的触发保存 “随时存档”确实恢复起来方便,可是需要我…

《Keras 3 在 TPU 上的肺炎分类》

Keras 3 在 TPU 上的肺炎分类 作者:Amy MiHyun Jang创建日期:2020/07/28最后修改时间:2024/02/12描述:TPU 上的医学图像分类。 (i) 此示例使用 Keras 3 在 Colab 中查看 GitHub 源 简介 设置 本教程将介…

Axios 封装:处理重复调用与内容覆盖问题

问题描述&背景 下拉选择框,支持搜索,搜索时携带参数调用接口并更新下拉选项下拉选择连续进行多次搜索,先请求但响应时间长的返回值会覆盖后请求但响应时间短的举例: 搜索后先清空选项,再输入内容进行搜索。清空后…

openssl s_server源码剥离

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

51单片机 DS18B20温度储传感器

DS18B20温度传感器 64-BITROM:作为器件地址,用于总线通信的寻址,是唯一的,不可更改 SCRATCHPAD(暂存器):用于总线的数据交互 EEPROM:用于保存温度触发阈值和配置参数 暂存器 单总线…

如何学习Transformer架构

Transformer架构自提出以来,在自然语言处理领域引发了革命性的变化。作为一种基于注意力机制的模型,Transformer解决了传统序列模型在并行化和长距离依赖方面的局限性。本文将探讨Transformer论文《Attention is All You Need》与Hugging Face Transform…

如何选择合适的服务器?服务器租赁市场趋势分析

服务器租赁市场概览 服务器租赁 market可以分为两种类型:按小时、按月和按年,每种模式都有其特点和适用场景,按小时租赁是最经济实惠的选择,适用于短期需求;按月租赁则适合中长期使用;而按年租赁则是最灵活…

[操作系统] 深入理解操作系统的概念及定位

概念 任何计算机系统都包含⼀个基本的程序集合,称为操作系统(OS)。 其核心功能如图片所示,包括: 内核 (Kernel): 内核是操作系统的核心部分,被认为是狭义上的操作系统,直接与硬件打交道。负责进程管理、内…

Java并发编程——线程池(基础,使用,拒绝策略,命名,提交方式,状态)

我是一个计算机专业研0的学生卡蒙Camel🐫🐫🐫(刚保研) 记录每天学习过程(主要学习Java、python、人工智能),总结知识点(内容来自:自我总结网上借鉴&#xff0…

nginx 配置代理,根据 不同的请求头进行转发至不同的代理

解决场景:下载发票的版式文件,第三方返回的是url链接地址,但是服务是部署在内网环境,无法访问互联网进行下载。此时需要进行走反向代理出去,如果按照已有套路,就是根据不同的访问前缀,跳转不同的…

设计一个流程来生成测试模型安全性的问题以及验证模型是否安全

要使用 Ollama 运行 llama3.3:70b 模型,并设计一个流程来生成测试模型安全性的问题以及验证模型是否安全,可以按照以下步骤进行设计和实现。整个过程包括环境配置、设计安全测试提示词、执行测试以及分析结果。以下是详细的步骤和指导: 1. 环…

iOS - TLS(线程本地存储)

从源码中,详细总结 TLS (Thread Local Storage) 的实现: 1. TLS 基本结构 // TLS 的基本结构 struct tls_data {pthread_key_t key; // 线程本地存储的键void (*destructor)(void *); // 清理函数 };// 自动释放池的 TLS class Autorelease…

docker在不删除容器的情况下修改端口映射

注意:必须先停止docker服务!!!! 1) 停止容器 2) 停止docker服务(systemctl stop docker) 3) 修改这个容器的hostconfig.json和config.v2.json文件中的端口 先查看容器id docker inspect jenkins 进入该目录 hostcon…

【js进阶】设计模式之单例模式的几种声明方式

单例模式&#xff0c;简言之就是一个类无论实例化多少次&#xff0c;最终都是同一个对象 原生js的几个辅助方式的实现 手写forEch,map,filter Array.prototype.MyForEach function (callback) {for (let i 0; i < this.length; i) {callback(this[i], i, this);} };con…