如何让 github 操作中的工作每天随机运行 1 到 50 次?
Posted
技术标签:
【中文标题】如何让 github 操作中的工作每天随机运行 1 到 50 次?【英文标题】:how can I make a job in github action run randomly between 1 and 50 times a day? 【发布时间】:2021-12-30 17:44:33 【问题描述】:如何让 github action 中的作业每天随机运行 1 到 50 次?
这是我的 cron 工作。
cron: '0 0 * * *'
这将每天运行一次。
但我想要的是每天随机运行 1-50 次。
如何让它从 1 到 50 随机工作?
下面是我的 git action 的 yml 设置文件作为工作流
#1. Repository Fork
# 2. Modify the files A and B according to the procedure
# 3. After committing the modifications, push & Enjoy!
name: planting-grass
# A. Comment lines 8-11
# on:
# push:
# branches:
# - unknown
# B. Uncomment lines 14-16
on:
schedule:
- cron: '0 0 * * *'
jobs:
task:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- name: Execute commands
run: bash ./task.sh $ steps.date.outputs.date
- name: Commit files
run: |
git config --global user.name "$(git --no-pager log --format=format:'%an' -n 1)"
git config --global user.email "$(git --no-pager log --format=format:'%ae' -n 1)"
git add date.txt
git commit -m $ steps.date.outputs.date
- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: $ secrets.GITHUB_TOKEN
branch: $ github.ref
Cron jobs and random times, within given hours通过本帖的方法无效。
最好的问候!
【问题讨论】:
您只关心它运行的次数,还是希望它以随机间隔运行? @NickODell 只关心次数但应该是随机的1到50 【参考方案1】:您可以通过修改 Bash 脚本以随机循环次数来做到这一点。例如,这个 Bash 脚本循环 1 到 50 次。
#!/usr/bin/env bash
loops=$(( ( RANDOM % 50 ) + 1 ))
echo "$loops"
for i in $(seq 1 $loops); do
echo foo
done
这种方法的一个缺点是您需要执行“提交文件”步骤中正在执行的步骤,并在“执行命令”步骤中将它们合并到脚本中,否则它们将不会重复。
【讨论】:
在git action环境下,无法运行for语句里面的yml环境。 没错,但是您在“提交文件”步骤中所做的所有事情都是您可以在 Bash 中做的事情。配置 Git?你可以在 Bash 中做到这一点。提交文件?你可以在 Bash 中做到这一点。得到日期?你可以在 Bash 中做到这一点。 此解决方案的结果:./task.sh: 4: i: not found
@emarwa.mouma.35t 如果您真的不关心间隔,那么这种方法是最好的 IMO。每天一次,脚本/代码连续运行 1 到 50 次。您可以将其实现为调用./task.sh
(而不是echo foo
)的包装脚本,或者将循环添加到task.sh
。我会使用for ((i=1; i<=loops; i++))
而不是seq
,但这没关系。
@emarwa.mouma.35t 喜欢您previous question 中的错误,而我的回答是,您需要指定 bash。在sh
中运行while (( i <= loops ))
(或类似的)将产生该错误。以上是关于如何让 github 操作中的工作每天随机运行 1 到 50 次?的主要内容,如果未能解决你的问题,请参考以下文章