Как я могу сделать так, чтобы работа в github выполнялась случайным образом от 1 до 50 раз в день?

0

Вопрос

как я могу сделать так, чтобы работа в github выполнялась случайным образом от 1 до 50 раз в день?

Вот моя работа в cron.

крон: '0 0 * * *'

Это будет выполняться один раз в день.

Но что я хочу, так это бегать случайным образом 1-50 раз в день.

Как заставить его работать случайным образом от 1 до 50?

ниже приведен файл настроек yml моего действия git в виде рабочих процессов

#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 и случайное время, в течение заданных часов Метод через этот пост не работает.

enter image description here

С наилучшими пожеланиями!

bash cron github-actions sh
2021-11-20 05:36:39
1

Лучший ответ

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

Одним из недостатков этого подхода является то, что вам нужно выполнить действия, выполняемые на шаге "Фиксация файлов", и объединить их в сценарий на шаге "Выполнение команд", иначе они не будут повторяться.

2021-11-20 06:06:40

В среде действий git невозможно запустить среду yml внутри инструкции for.
emarwa.mouma.35t

Верно, но все, что вы делаете на шаге "Файлы фиксации", вы можете делать в Bash. Настройка Git? Вы можете сделать это в Bash. Фиксация файлов? Вы можете сделать это в Bash. Назначаешь свидание? Вы можете сделать это в Bash.
Nick ODell

результат этого решения : ./task.sh: 4: i: not found
emarwa.mouma.35t

@emarwa.mouma.35t Если вам действительно наплевать на интервалы, этот подход лучше всего подходит ИМО. Один раз в день скрипт/код выполняется от 1 до 50 раз подряд. Вы можете реализовать его в виде сценария - оболочки, который вызывает ./task.sh (вместо echo foo), или добавьте цикл в task.sh. Я бы использовал for ((i=1; i<=loops; i++)) вместо seq, но это не имеет значения.
dan

@emarwa.mouma.35t как и ошибка в вашем предыдущем вопросе, и мой ответ, вам нужно указать bash. Выполняется while (( i <= loops )) (или аналогичное) в sh приведет к этой ошибке.
dan

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................