График рабочего процесса действий GitHub не работает в ветке, отличной от стандартной

Я пытаюсь настроить рабочий процесс в ветке workflow-test. Он должен работать по расписанию и запускаться каждые 24 часа. Этот рабочий процесс должен запускать скрипт python и фиксировать и отправлять изменения, сделанные скриптом python. Я заставил его работать с толчками, но, похоже, он не работает по расписанию. Я просмотрел все вопросы по этой теме и попробовал все решения, но безрезультатно.

Это мой код:

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

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Git checkout
        uses: actions/[email protected]
        with:
          ref: workflow-test

      - name: Setup python
        uses: actions/[email protected]
        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 "[email protected]"
          git config --local user.name "GitHub Action"
          git add -A
          git commit -m "update data" -a
      - name: Push changes
        uses: ad-m/[email protected]
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          branch: workflow-test

Вот что я пробовал:

  • Запустите расписание в главной ветке, которое должно запустить расписание для работы в другой ветке в соответствии с ответом о переполнении стека;
  • Добавьте with: ref: branch-часть.

Я также попытался запустить этот рабочий процесс нажатием кнопки, и это сработало. Все работало и работало. Это было без with: ref: branch-части. Но насколько я понимаю, это необходимо при работе с расписанием, потому что расписание проверяется до последней фиксации ветки по умолчанию, поэтому его нужно изменить на ветку, над которой вы работаете.

Кажется, он даже не пытается запустить этот рабочий процесс. Он не дает записи о попытках запустить этот рабочий процесс на вкладке действий. Таким образом, я считаю, что проблема заключается в части schedule, поскольку она работает по нажатию и даже не запускается при работе по расписанию.

См. также:  Обновите документ Firestore из облачной функции

Я также попытался добавить простой рабочий процесс по расписанию в свою ветку master, которая работает. Но когда я добавляю этот простой рабочий процесс по расписанию в свою ветку workflow-test, он больше не запускается.

Я больше не могу найти исправлений переполнения стека, документации или где-либо еще. Таким образом, я решил открыть свой вопрос. Я надеюсь, что кто-то может мне помочь. Заранее спасибо :).

Изменить: этот рабочий процесс обновляет данные, используемые веб-сайтом.

Сохранен ли файл рабочего процесса в главной ветке?   —  person Cristian Perez    schedule 16.08.2020

У меня это тоже не работает в ветке не по умолчанию. Похоже, что документации по этому поводу не хватает.   —  person Cristian Perez    schedule 16.08.2020

Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. Cristian Perez

    Запланированные действия GitHub выполняются в стандартной или базовой ветке, как указано в документация:

    Запланированные рабочие процессы выполняются на последней фиксации в стандартной или базовой ветке.

    Это означает, что ваш файл рабочего процесса должен быть привязан к ветке master. Затем он может извлекать код из других веток, но сам файл рабочего процесса должен находиться в master.

    Вот самый минимальный пример, демонстрирующий, как это работает.

    name: Experiment
    on: 
      schedule:
      - cron: '*/5 * * * *'
    
    jobs:
      job1:
        name: Debug
        runs-on: ubuntu-latest
    
        steps:
        - name: Git checkout
          uses: actions/[email protected]
          with: { ref: debug }
        - name: List files
          run: ls
    

    Это действие выполняется каждые 5 минут (*/5) и перечисляет файлы в ветке debug.

    Да, это сработало! Большое спасибо за ваше решение. Однако тогда документации, похоже, совсем не хватает. В документации нет четкого указания, что запланированные рабочие процессы должны находиться в ветке master. Также никакие другие решения (из того, что я мог найти) не упоминали об этом решении. person Cristian Perez; 16.08.2020

    да. GitHub иногда называет ветвь master веткой по умолчанию, поскольку для некоторых людей это может быть что-то иное, чем master. person Cristian Perez; 16.08.2020

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: