Cum pot face un loc de muncă în github acțiune rula aleator între 1 și de 50 de ori pe zi?

0

Problema

cum pot face un loc de muncă în github acțiune rula aleator între 1 și de 50 de ori pe zi?

Aici este meu loc de muncă cron.

cron: '0 0 * * *'

Aceasta va rula o dată pe zi.

Dar ceea ce vreau este de a rula în mod aleatoriu 1-50 ori pe zi.

Cum pot face să funcționeze în mod aleatoriu de la 1 la 50?

mai jos este meu git acțiune yml setare fișier ca fluxuri de lucru

#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 de locuri de muncă și momente aleatorii, între anumite ore metoda prin acest post nu funcționează.

enter image description here

Salutari!

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

Cel mai bun răspuns

1

Puteți face acest lucru prin modificarea script Bash la bucla un numar oarecare de ori. De exemplu, acest script Bash bucle între 1 și de 50 de ori.

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

Un dezavantaj al acestei abordări este că aveți nevoie să ia măsuri fiind făcut în anii 'Comite fișiere pentru a pas și a le îmbina în script-ul în anii 'Executa comenzi pas, sau nu vor fi repetate.

2021-11-20 06:06:40

În git de acțiune de mediu, nu poate rula yml mediu în interiorul pentru declarație.
emarwa.mouma.35t

Adevărat, dar toate lucrurile pe care le faci în interiorul a "Comis-files" pas sunt lucruri pe care le puteți face în Bash. Configurarea Git? Poți face asta în Bash. Comiterea de fișiere? Poți face asta în Bash. Obtinerea data? Poți face asta în Bash.
Nick ODell

rezultatul din această soluție : ./task.sh: 4: i: not found
emarwa.mouma.35t

@emarwa.mouma.35t Dacă aveți cu adevărat nu-mi pasă de intervale de timp, această abordare este cel mai bine IMO. O dată pe zi, script-ul/codul se desfășoară între 1 și de 50 de ori într-un rând. Puteți pune în aplicare ca un script înveliș care solicită ./task.sh (în loc de echo foo), sau, se adaugă o buclă pentru task.sh. Mi-ar folosi for ((i=1; i<=loops; i++)) în loc de seq, dar nu contează.
dan

@emarwa.mouma.35t ca eroare în întrebarea anterioară, și răspunsul meu, trebuie să specificați bash. De funcționare while (( i <= loops )) (sau similare), în sh va produce acea eroare.
dan

În alte limbi

Această pagină este în alte limbi

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