Jak mogę sprawić, aby praca w github przeprowadzono losowo od 1 do 50 razy dziennie?

0

Pytanie

jak mogę sprawić, aby praca w github przeprowadzono losowo od 1 do 50 razy dziennie?

Oto moja praca w cron.

czk: '0 0 * * *'

To będzie wykonywana raz dziennie.

Ale to, co chcę, tak, to biegać losowo 1-50 razy dziennie.

Jak zmusić go do pracy losowo od 1 do 50?

poniżej znajduje się plik konfiguracyjny yml mojego działania git w postaci procesów roboczych

#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 }}

Zadania Cron i losowy czas, w ciągu określonych godzin Metoda przez ten post nie działa.

enter image description here

Pozdrawiam!

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

Najlepsza odpowiedź

1

Można to zrobić zmieniając swój skrypt Bash w taki sposób, aby był on powtarzany losową liczbę razy. Na przykład, ten skrypt Bash powtarza się od 1 do 50 razy.

#!/usr/bin/env bash
loops=$(( ( RANDOM % 50 )  + 1 ))
echo "$loops"
for i in $(seq 1 $loops); do
    echo foo
done

Jedną z wad tego podejścia jest to, że trzeba wykonać czynności wykonywane w kroku "Blokada plików", i połączyć je w scenariusz na punkcie "Wykonywanie poleceń", inaczej nie będą się powtarzać.

2021-11-20 06:06:40

W środowisku działania git nie można uruchomić środowisko yml wewnątrz instrukcji for.
emarwa.mouma.35t

To prawda, ale wszystko, co robisz w kroku "Pliki zatwierdzenia", można zrobić w Bash. Konfiguracja Git? Można to zrobić w Bash. Blokada plików? Można to zrobić w Bash. Назначаешь randkę? Można to zrobić w Bash.
Nick ODell

wynik tego rozwiązania : ./task.sh: 4: i: not found
emarwa.mouma.35t

@emarwa.mouma.35t Jeśli ci naprawdę zależy na interwały, to podejście najlepiej nadaje się IMO. Raz dziennie skrypt/kod wykonuje się od 1 do 50 razy z rzędu. Można zrealizować go w postaci skryptu - shell, który powoduje ./task.sh (zamiast echo foo), lub dodać cykl w task.sh. Ja bym użył for ((i=1; i<=loops; i++)) zamiast seqale to nie ma znaczenia.
dan

@emarwa.mouma.35t jak i błąd w twoim poprzednim pytaniu, i moja odpowiedź, trzeba określić bash. Odbywa się while (( i <= loops )) (lub podobny) w sh prowadzi do tego błędu.
dan

W innych językach

Ta strona jest w innych językach

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