El cronograma de flujo de trabajo de acción de GitHub no funciona en una rama no predeterminada

3 minutos de lectura

Avatar de usuario de Cristian Pérez
Cristian Pérez

Estoy tratando de configurar un flujo de trabajo en una rama llamada workflow-test. Tiene que ejecutarse en un horario y funcionar cada 24 horas. Este flujo de trabajo tiene que ejecutar una secuencia de comandos de python y confirmar y enviar los cambios realizados por la secuencia de comandos de python. Lo conseguí para trabajar en los empujones, pero no parece funcionar en los horarios. Revisé todas las preguntas relacionadas con este tema y probé todas las soluciones, pero fue en vano.

Este es mi código:

name: update-state
on: 
  schedule:
    - cron: '0 0 * * *'

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Git checkout
        uses: actions/checkout@v2
        with:
          ref: workflow-test

      - name: Setup python
        uses: actions/setup-python@v1
        with:
          python-version: '3.x'
      - name: Execute script
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt
          python scripts/script.py
        
      - name: Commit files
        run: |
          git config --local user.email "action@github.com"
          git config --local user.name "GitHub Action"
          git add -A
          git commit -m "update data" -a
      - name: Push changes
        uses: ad-m/github-push-action@v0.6.0
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          branch: workflow-test

Esto es lo que he probado:

  • Ejecute un programa en la rama maestra, lo que debería activar el programa para que funcione en la otra rama, de acuerdo con una respuesta de desbordamiento de pila;
  • Añade el with: ref: branch-parte.

También intenté simplemente activar este flujo de trabajo en un empujón, lo que funcionó. Todo funcionó y funcionó. Esto fue sin el with: ref: branch-parte. Pero por lo que entiendo, eso es necesario cuando se trabaja con un cronograma porque el cronograma se verifica hasta la última confirmación de la rama predeterminada, por lo que debe cambiarse a la rama en la que está trabajando.

Ni siquiera parece intentar ejecutar este flujo de trabajo. No da ningún registro de intentar ejecutar este flujo de trabajo en la pestaña “acciones”. Por lo tanto, creo que el problema radica en el schedule en parte, ya que funciona en push y ni siquiera se ejecuta cuando se trabaja en un horario.

También intenté agregar un flujo de trabajo simple a tiempo a mi master rama, que se ejecuta. Pero cuando agrego este flujo de trabajo simple a tiempo a mi workflow-test rama, ya no funciona.

No puedo encontrar más correcciones en el desbordamiento de pila, documentación o en cualquier otro lugar. Así que decidí abrir mi propia pregunta. Espero que alguien pueda ayudarme. Gracias de antemano :).

Editar: este flujo de trabajo actualiza los datos utilizados por un sitio web.

  • ¿El archivo de flujo de trabajo está comprometido con la rama maestra?

    – DannyB

    16 de agosto de 2020 a las 12:23

  • Tampoco funciona en una rama no predeterminada para mí. Parece que falta documentación al respecto.

    – riQQ

    16 de agosto de 2020 a las 12:29

  • ¡Sí, esto funcionó! Muchas gracias por tu solución. Sin embargo, la documentación parece ser bastante deficiente entonces. En ninguna parte de la documentación se establece claramente que los flujos de trabajo programados deben residir en el master rama. Además, ninguna otra solución (de lo que pude encontrar) mencionó esta solución.

    –Cristian Pérez

    16 de agosto de 2020 a las 12:49

  • Sí. GitHub a veces se refiere a la master rama como la “rama predeterminada”, ya que puede ser algo diferente a master para algunas personas.

    – DannyB

    16 de agosto de 2020 a las 12:54

¿Ha sido útil esta solución?