Ako môžem získať prácu v github akcii beh náhodne medzi 1 až 50-krát za deň?

0

Otázka

ako môžem získať prácu v github akcii beh náhodne medzi 1 až 50-krát za deň?

Tu je môj cronu.

cron: '0 0 * * *'

To bude spustiť raz denne.

Ale to, čo chcem, je spustiť náhodne 1-50 krát denne.

Ako môžem, aby to fungovalo náhodne od 1 do 50?

nižšie je moja git akcie je yml nastavenie súbor pracovných postupov

#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 a náhodných časoch, v rámci danej hodiny metóda cez tento príspevok nefunguje.

enter image description here

S Pozdravom!

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

Najlepšiu odpoveď

1

Môžete to urobiť zmenou vášho Bash skript slučky náhodný počet krát. Napríklad, tento Bash skript slučky medzi 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

Jednou nevýhodou tohto prístupu je, že musíte prijať kroky, ktoré sa deje v "Spáchať súborov" krok a zlúčiť ich do skriptu v "Vykonať príkazy" krok, alebo sa nebude opakovať.

2021-11-20 06:06:40

V git akcie prostredie, nemôže spustiť yml prostredie vo vnútri pre ziskov a strát.
emarwa.mouma.35t

Pravda, ale všetky veci, ktoré robíte vo vnútri "Odovzdať súbory" krok sú veci, ktoré môžete urobiť v Bash. Konfigurácia Git? Môžete tak urobiť v Bash. Spáchanie súbory? Môžete tak urobiť v Bash. Stále aktuálna? Môžete tak urobiť v Bash.
Nick ODell

výsledkom tohto riešenia : ./task.sh: 4: i: not found
emarwa.mouma.35t

@emarwa.mouma.35t Ak si naozaj nezaujíma intervaloch, tento prístup je najlepší IMO. Raz za deň, skript/kód spustí medzi 1 a 50-krát v rade. Môžete implementovať ho ako wrapper skript, ktorý volá ./task.sh (namiesto echo foo), alebo pridajte do slučky task.sh. Ja by som použiť for ((i=1; i<=loops; i++)) namiesto seq,, ale to nevadí.
dan

@emarwa.mouma.35t ako chyba v predchádzajúcej otázke, a moja odpoveď, musíte určiť bash. Beh while (( i <= loops )) (alebo podobný) v sh bude vyrábať, že chyba.
dan

V iných jazykoch

Táto stránka je v iných jazykoch

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