es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo hacer que un trabajo en GitHub Action se ejecute aleatoriamente entre 1 y 50 veces al día?

¿Cómo puedo hacer que un trabajo en Github Action se ejecute al azar entre 1 y 50 veces al día?

Aquí está mi trabajo cron.

cron: ‘0 0 * * *’

Esto se ejecutará una vez al día.

Pero lo que quiero es que se ejecute al azar de 1 a 50 veces al día.

¿Cómo hago para que funcione al azar de 1 a 50?

A continuación se muestra el archivo de configuración yml de mi acción git como flujos de trabajo.

1. Repositorio Fork

2. Modificar los archivos A y B según el procedimiento

3. Después de hacer las modificaciones, ¡push y disfruta!

name: planting-grass

A. Comentar líneas 8-11

on:
  push:
    branches:
      - unknown

B. Descomentar líneas 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 }}

https://stackoverflow.com/questions/9049460/cron-jobs-and-random-times-within-given-hours El método a través de esta publicación no funciona.

Mejores saludos!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para hacer que un trabajo de acción de GitHub se ejecute aleatoriamente entre 1 y 50 veces al día, se debe modificar el trabajo cron en el archivo YAML de acciones de GitHub. En lugar de usar un trabajo cron específico (por ejemplo, '0 0 * * *'), se puede generar un trabajo cron aleatorio usando el comando bash shuf con el indicador -i (que especifica un rango de números) y el indicador --random-source (que especifica una fuente de datos aleatorios). Así es como se puede modificar el archivo YAML para lograr esto:

    on:
      schedule:
        - cron: "$(shuf -i 0-23 --random-source=/dev/urandom) $(shuf -i 0-59 --random-source=/dev/urandom) * * *"
    

    El fragmento de código anterior especifica que el trabajo debe ejecutarse aleatoriamente entre 0 y 23 veces al día (usando el comando shuf para generar una hora aleatoria) y en un minuto aleatorio de cada hora (usando shuf nuevamente para generar un minuto aleatorio). El indicador --random-source especifica que la fuente de datos aleatorios para shuf debe ser /dev/urandom, que es una buena fuente de datos aleatorios para fines criptográficos.

    Tenga en cuenta que la modificación anterior asume un formato de tiempo de 24 horas. Si está utilizando un formato de tiempo de 12 horas, puede modificar el código YAML en consecuencia.

Comments are closed.