首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何让github action中的作业每天随机运行1到50次?

要让GitHub Actions中的作业每天随机运行1到50次,你可以使用GitHub Actions的矩阵策略结合环境变量来实现。以下是一个示例工作流配置:

代码语言:txt
复制
name: Random Run

on:
  schedule:
    - cron: '0 0 * * *' # 每天午夜触发

jobs:
  random-run:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        run-count: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50]

    steps:
    - name: Checkout repository
      uses: actions/checkout@v2

    - name: Set up random seed
      run: echo "RANDOM_SEED=$(shuf -i 1-50 -n 1)" >> $GITHUB_ENV

    - name: Check if this job should run
      run: |
        if [ $RANDOM_SEED -eq ${{ matrix.run-count }} ]; then
          echo "Running job with seed $RANDOM_SEED"
          # 这里可以添加你的作业步骤
        else
          echo "Skipping job with seed $RANDOM_SEED"
          exit 0
        fi

解释

  1. 触发器:使用cron表达式'0 0 * * *'来设置每天午夜触发工作流。
  2. 矩阵策略:定义一个矩阵策略,run-count变量包含从1到50的所有整数。
  3. 随机种子:在作业开始时,使用shuf命令生成一个1到50之间的随机数,并将其存储在环境变量RANDOM_SEED中。
  4. 条件执行:在每个矩阵作业中,检查RANDOM_SEED是否等于当前矩阵变量的值。如果是,则执行作业步骤;否则,跳过该作业。

优势

  • 随机性:通过随机选择运行次数,确保每天的运行次数在1到50之间随机分布。
  • 灵活性:使用矩阵策略可以轻松扩展或调整运行次数的范围。

应用场景

这种配置适用于需要每天随机执行一定次数任务的场景,例如:

  • 负载测试
  • 数据抓取
  • 随机抽样测试

参考链接

通过这种方式,你可以实现每天随机运行1到50次的GitHub Actions作业。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

基于Spark用户行为分析系统

二、模块简介   1、用户访问session分析:该模块主要是对用户访问session进行统计分析,包括session聚合指标计算、按时间比例随机抽取session、获取每天点击、下单和购买排名前10...,任务对应就是一次Spark作业运行,这里就标识了,Spark作业是新建,还没运行,还是正在运行,还是已经运行完毕 task_param:最最重要,用来使用JSON格式,来封装用户提交任务对应特殊筛选参数...3、Spark作业获取使用者指定筛选参数,然后运行复杂作业逻辑,进行该模块统计和分析。   ...那么可以告诉大家,这个user_visit_action表,每天数据量大概在至少5亿以上,在10亿左右。   ...仅仅是业务功能开发,可以掌握技术点:   1、通过底层数据聚合,来减少spark作业处理数据量,从而提升spark作业性能(从根本上提升spark性能技巧)   2、自定义Accumulator

2.5K30

React 应用架构实战 0x8:配置 CICD 进行测试和部署

然后,我们将学习如何创建一个 CI/CD 流水线,将自动验证并将应用程序部署 Vercel。...CI/CD 通常应包括以下几个部分: 持续集成是验证代码已经构建、测试并合并到仓库自动化过程 持续交付是将更改交付到仓库过程 持续部署是将更改发布生产服务器,使更改可供用户使用过程 现在,让我们考虑如何为应用程序实现...当在较大团队工作时,每天都会引入许多更改,因此这尤其有用。 为了运行 CI/CD 流水线,我们需要适当基础设施。...# Action Action 是在 GitHub Actions 上运行应用程序,用于执行重复任务。...runs-on:设置将运行作业运行程序 # 配置测试流水线 我们测试流水线将包含两个 job,应该完成以下操作: 运行所有代码检查,如 linting,类型检查,单元测试和集成测试等 构建应用程序并运行端测试

66920
  • 5 分钟教你快速掌握 GitHub Actions 自动发布 Npm 包和网站

    在本文中,我想向你展示我如何使用 GitHub Actions 发布我在开源项目中维护 npm 包。...GitHub Actions 原生可用并集成 GitHub 存储库,并具有来自社区贡献者许多可重用工作流,例如发布 npm 包、发布 docker 图像、运行安全测试等等。...Github Action 本质就是 Github 推出持续集成工具, 每次提交代码 Github 仓库后,Github 都会自动创建一个虚拟机(例如 Mac / Windows / Linux)...GitHub 工作流是一组基于触发器或基于 cron 计划运行 job 作业作业由组成自动化工作流程一个或多个步骤组成。我们通过创建 YAML 文件来创建 Workflow 配置。...获取 Npm Access Token 要想 Github Action 能有权利发布指定 npm 包, 需要获取 npm 通行证.

    1.5K30

    如何使用Github Action优雅同步国外镜像DockerHub或私有仓库

    工作流包含一个或多个作业,这些作业可以按顺序或并行运行,每个作业都将在其自己虚拟机运行程序或在容器运行,并有一个或多个步骤,这些步骤可以运行您定义脚本或运行操作,这是一个可重复使用扩展,可以简化您工作流程...GitHub Actions 由如下组件构成: Workflows : 工作流是一个可配置自动化流程,它将运行一个或多个作业,工作流是由检入存储库YAML文件定义,当由存储库事件触发时,工作流将运行...Github Action 如何使用?...0x01 奇技淫巧 1.使用Github Action优雅同步国外镜像个人DockerHub 描述: 由于国内上网环境原因,在部署某些云原生应用时,通常会遇到镜像无法直接拉取,例如 k8s.io...至此,使用Github Action + Skopeo 工具优雅同步镜像dockerHub完毕!

    1.4K30

    【机器学习实战】第15章 大数据与MapReduce

    第15章 大数据与MapReduce 大数据 概述 大数据: 收集数据已经远远超出了我们处理能力。...接下来:我们讲讲 MapRedece 如何来解决这样问题 MapRedece Hadoop 概述 Hadoop 是 MapRedece 框架一个免费开源实现。...Pegasos 算法 Pegasos是指原始估计梯度求解器(Peimal Estimated sub-GrAdient Solver) Pegasos 工作原理 从训练集中随机挑选一些样本点添加到带处理列表...使用算法:本例不会展示一个完整应用,但会展示如何在大数据集上训练SVM。该算法其中一个应用场景就是本文分类,通常在文本分类里可能有大量文档和成千上万特征。...:].A # 累积变化 # w通过不断随机梯度方式来优化 w = (1.0 - 1/t)*w + (eta/k)*wDelta # 在每个

    1.2K50

    用户画像 | 开发性能调优

    这里可以将原本相同key通过添加随机前缀方式变成多个 key ,这样将原本被一个 task 处理 key 分散多个 task 上先做一次聚合,然后去掉前缀再进行一次聚合得到最终结果。...当持久化一个RDD时,每个节点其他分区都可以使用RDD在内存中进行计算,在该数据上其他action操作将直接使用内存数据,这样会使其操作计算速度加快。...四、开发中间表 在用户画像迭代开发过程,初期开发完标签后,通过对标签加工作业血缘图整理,可以找到使用相同数据源标签,对这部分标签,可以通过加工中间表缩减每日画像调度作业时间。...本章小结 之前在笔者项目开发过程,ETL调度时间过长是一个较难解决“瓶颈”,每天调度在跑完计算标签、标签校验预警、计算人群、人群校验预警、同步服务层等环节后往往需要几个小时,最后提供服务层数据时也比较晚了...在经过多次迭代后也取得了不错效果,将整体调度时间压缩了1/3,可以满足每天及时将画像数据输出到服务层需要。 本期介绍了画像系统在数据开发可能遇到需要调优场景。

    50120

    如何使用Oozie API接口向Kerberos集群提交Java程序

    Faysongithub:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在CDH集群外节点向集群提交MapReduce...作业方式有多种,前面Fayson介绍了《如何跨平台在本地开发环境提交MapReduce作业CDH集群》和《如何使用Oozie API接口向非Kerberos环境CDH集群提交Java作业》,本篇文章主要介绍如何在...内容概述 1.环境准备 2.示例代码编写及测试 3.总结 测试环境 1.CM和CDH版本为5.13.1 前置条件 1.集群已启用Kerberos 2.环境准备及描述 ---- 1.我们将作业运行jar...8088 Web界面查看 [i24cs5guyg.jpeg] 可以看到作业运行成功,到此已完成了通过OozieAPI接口创建workflow并运行示例演示。...前面的文章《如何启用OozieHA》 GitHub地址: https://github.com/fayson/cdhproject/blob/master/ooziedemo/conf/workflow-java-template.xml

    2.6K70

    如何使用Oozie API接口向Kerberos环境CDH集群提交Spark2作业

    Faysongithub:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 前面Fayson介绍了多种方式在CDH...集群外节点向集群提交Spark作业,文章均采用Spark1来做为示例,本篇文章主要介绍如何是用Oozie API向Kerberos环境CDH集群提交Spark2作业。...: CM和CDH版本为5.13.1 前置条件: 集群已启用Kerberos 2.环境准备及描述 1.我们将作业运行jar包上传到HDFS目录 [root@ip-172-31-16-68 ~]# kinit...Kerberos环境CDH集群提交Java作业》 《如何使用Oozie API接口向非Kerberos环境CDH集群提交Spark作业》 《如何使用Oozie API接口向Kerberos集群提交Java...程序》 Livy相关文章: 《如何编译Livy并在非Kerberos环境CDH集群安装》 《如何通过LivyRESTful API接口向非Kerberos环境CDH集群提交作业》 《如何在Kerberos

    3.3K40

    如何使用Oozie API接口向Kerberos环境CDH集群提交Shell作业

    Faysongithub:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 前面Fayson介绍了使用Oozie...API向Kerberos和非Kerberos集群提交Spark和Java作业,本篇文章主要介绍如何使用Oozie Client API向Kerberos环境CDH集群提交Shell Action工作流.../bin/bash name=$1 echo "hello $name" >> /tmp/oozieshell.log (可左右滑动) [fw9kfp3k14.png] 2.我们将作业运行ooziejob.sh...服务“应用程序”菜单查看 [1cjgw2o4fe.jpeg] 3.打开Yarn8088 Web界面查看 [h1qjp5ikbq.jpeg] 点击执行成功Map查看作业是在那个节点运行 [1m83ojy6aa.jpeg...环境CDH集群提交Spark作业》 《如何使用Oozie API接口向Kerberos环境CDH集群提交Spark2作业》 《如何使用Oozie API接口向Kerberos集群提交Java程序》

    1.7K60

    如何使用Oozie API接口向非Kerberos环境CDH集群提交Spark作业

    作业方式有多种,前面Fayson介绍了Livy相关文章主要描述如何在集群外节点通过RESTful API接口向CDH集群提交Spark作业,本篇文章我们借助于oozie-clientAPI接口向非...Livy相关文章: 《Livy,基于Apache Spark开源REST服务,加入Cloudera Labs》 《如何编译Livy并在非Kerberos环境CDH集群安装》 《如何通过LivyRESTful...API接口向非Kerberos环境CDH集群提交作业》 《如何在Kerberos环境CDH集群部署Livy》 《如何通过LivyRESTful API接口向Kerberos环境CDH集群提交作业...》 内容概述 1.环境准备 2.示例代码编写及测试 3.总结 测试环境 1.CM和CDH版本为5.13.1 前置条件 1.集群未启用Kerberos 2.环境准备及描述 ---- 1.我们将作业运行jar...在指定HDFS上运行jar或workflow路径时需要带上HDFS路径,否则默认会找到本地目录 GitHub地址: https://github.com/fayson/cdhproject/blob

    1.4K70

    如何使用Oozie API接口向Kerberos环境CDH集群提交Spark作业

    作业方式有多种,前面Fayson介绍了Livy相关文章主要描述如何在集群外节点通过RESTful API接口向CDH集群提交Spark作业以及《如何使用Oozie API接口向非Kerberos环境...Livy相关文章: 《Livy,基于Apache Spark开源REST服务,加入Cloudera Labs》 《如何编译Livy并在非Kerberos环境CDH集群安装》 《如何通过LivyRESTful...API接口向非Kerberos环境CDH集群提交作业》 《如何在Kerberos环境CDH集群部署Livy》 《如何通过LivyRESTful API接口向Kerberos环境CDH集群提交作业...》 内容概述 1.环境准备 2.示例代码编写及测试 3.总结 测试环境 1.CM和CDH版本为5.13.1 前置条件 1.集群已启用Kerberos 2.环境准备及描述 ---- 1.我们将作业运行jar...] 3.打开Yarn8088 Web界面查看 [vmql1ct622.jpeg] 可以看到作业运行成功,到此已完成了通过OozieAPI接口创建workflow并运行示例演示。

    2K70

    如何使用Oozie API接口向非Kerberos环境CDH集群提交Shell工作流

    Faysongithub:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 前面Fayson介绍了《如何使用Oozie...API接口向非Kerberos环境CDH集群提交Spark作业》和《如何使用Oozie API接口向非Kerberos环境CDH集群提交Java作业》,本篇文章主要介绍如何使用Oozie Client.../bin/bash name=$1 echo "hello $name" >> /tmp/oozieshell.log (可左右滑动) [v9bekmbkdr.png] 2.我们将作业运行jar包上传到...] 3.打开Yarn8088 Web界面查看 [oe66w1tir7.jpeg] 4.Shell脚本执行结果 [ni1dlr1ofl.jpeg] 可以看到作业运行成功,到此已完成了通过OozieAPI...在指定HDFS上运行jar或workflow路径时需要带上HDFS路径,否则默认会找到本地目录 GitHub地址: https://github.com/fayson/cdhproject/blob

    1.1K70

    SmartNews基于Flink加速Hive日表生产实践

    这个作业需要运行 3 个小时,进而拉高了许多下游表延迟 (Latency),明显影响数据科学家、产品经理等用户使用体验。因此我们需要对这些作业进行提速,各个表能更早可用。...公司业务基本上都在 AWS 上,服务器原始日志以文件形式上传至 S3,按日分区;目前作业用 Airflow 调度 EMR 上运行,生成 Hive 日表,数据存储在 S3。...因此输出格式如下所示: S3://hivebucket/actions/dt=2021-05-29/action=refresh/file1.rc  用户 对这个表使用是广泛,多途径。...Partition 可感知性和完整性 如何下游作业能感知当天这个 partition 已经 ready?...因此我们挑选几个有代表问题留给读者思考: 为了验证新作业产出结果与原来 Hive 产出一致,我们需要对比两者输出。那么,如何才能高效比较两个 Hive 表一致性呢?

    92820

    Github Action进行侦察

    可以通过Github Action执行可以在VM上运行东西(甚至可以在常规设置下运行)。...这将基本上所有复制您GitHub虚拟机文件,这意味着如果你有称为文件scope.txt存储库的话反而会使得一个文件名为scope.txt在/home/虚拟机目录(其中一个将运行我们工作)...要了解如何生成和添加令牌,请阅读此内容。 ---- 这是如何使用Github操作运行简单命令基础。现在,在讨论如何做复杂事情之前,我想谈谈此设置局限性。...局限性 由于Github Action并非用于Bug搜寻或任何大型任务,因此它有其自身局限性。非常重要是: 工作流程每个作业最多可以运行6个小时执行时间。...请参阅Github文档,了解如何安排活动 不要运行像masscan / nmap或ffuf这样大型列表 不必steps为每个命令添加一个小bash脚本,而是在设置步骤之后运行它们。

    52920

    如何使用Oozie API接口向非Kerberos环境CDH集群提交Java作业

    Faysongithub:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 前面Fayson介绍了《如何使用Oozie...API接口向非Kerberos环境CDH集群提交Spark作业》,本篇文章主要介绍如何使用Oozie Client API向非Kerberos环境CDH集群提交Java作业。...内容概述 1.环境准备及描述 2.示例代码编写及测试 3.总结 测试环境 1.CM和CDH版本为5.13.1 前置条件 1.集群未启用Kerberos 2.环境准备及描述 ---- 1.我们将作业运行...---- 1.运行JavaWorkflowDemo代码,向CDH集群提交Java作业 [5kgk5bxszw.jpeg] 2.登录CM进入Yarn服务“应用程序”菜单查看 [j38l4av0yi.jpeg...在指定HDFS上运行jar或workflow路径时需要带上HDFS路径,否则默认会找到本地目录 GitHub地址: https://github.com/fayson/cdhproject/blob

    1.1K70

    【翻译】.NET 💜 GitHub Actions: .NET GitHub Actions 简介

    工作流:工作流是一个可配置自动化过程,将运行一个或多个作业。 事件:事件是存储库触发工作流运行特定活动。 作业作业是工作流在同一运行器上执行一组步骤。...actionactionGitHub Actions 平台自定义应用程序,它执行复杂但经常重复任务。 runner:runner是一个服务器,当它们被触发时运行工作流。...您可能已经注意定义了 GitHub Actions 或简单命令steps各种用法。runGitHub Action 和消费 GitHub 工作流之间关系是工作流消费动作。...GitHub Action 仅与消费工作流一样强大。工作流可以定义任何东西,从简单任务复杂组合以及介于两者之间一切。...在以后文章,我将展示如何使用 .NET 创建 GitHub Actions。

    85920
    领券