Jak mohu dělat práci v github akci spustit náhodně mezi 1 a 50 krát za den?

0

Otázka

jak mohu dělat práci v github akci spustit náhodně mezi 1 a 50 krát za den?

Tady je můj cronu.

cron: '0 0 * * *'

To bude probíhat jednou denně.

Ale to, co chci je spustit náhodně 1-50 krát denně.

Jak mohu, aby to fungovalo náhodně od 1 až 50?

níže je můj git akce je yml nastavení souboru jako workflow

#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 pracovních míst a náhodných časech, v daném hodin způsob prostřednictvím tohoto příspěvku nefunguje.

enter image description here

Nejlépe Jde!

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

Nejlepší odpověď

1

Můžete to udělat tím, že mění svůj Bash skript smyčka náhodný počet krát. Například, to Bash skript, smyčky mezi 1 a 50-krát.

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

Nevýhoda tohoto přístupu je, že budete muset podniknout kroky provádí v 'Commit soubory' krok a sloučit je do scénáře v 'Spouštět příkazy' krok, nebo se to nebude opakovat.

2021-11-20 06:06:40

V git akční prostředí, nelze spustit yml prostředí uvnitř pro prohlášení.
emarwa.mouma.35t

Pravda, ale všechny věci, které děláte uvnitř "odevzdat soubory" krok jsou věci, které můžete udělat v Bashi. Konfigurace Git? Můžete to udělat v Bashi. Spáchání soubory? Můžete to udělat v Bashi. Dostat data? Můžete to udělat v Bashi.
Nick ODell

výsledkem tohoto řešení : ./task.sh: 4: i: not found
emarwa.mouma.35t

@emarwa.mouma.35t, Pokud jste opravdu nezajímá intervalech, tento přístup je IMO nejlepší. Jednou za den, skript/kód běží mezi 1 a 50-krát v řadě. Můžete implementovat to jako wrapper skriptu, který volá ./task.sh (místo echo foo), nebo, přidejte smyčky task.sh. Chtěl bych použít for ((i=1; i<=loops; i++)) místo seq, ale na tom nezáleží.
dan

@emarwa.mouma.35t, jako chyba v předchozí otázce, a moje odpověď je, budete muset zadat bash. Běží while (( i <= loops )) (nebo podobné) v sh bude vyrábět to chyba.
dan

V jiných jazycích

Tato stránka je v jiných jazycích

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