Почему второй рабочий процесс Github Action (вызванный через «workflow_call») дает сбой?

У меня есть main.yml, который вызывает другие рабочие процессы через workflow_call. Имена вызываемых рабочих процессов — workflow1 и workflow2.

Если workflow2 вызывается после workflow1, то workflow2 завершается ошибкой. Если я поменяю их местами, то workflow1 даст сбой.

Оба рабочих процесса работают нормально при вызове через workflow_dispatch.

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

code, который я использую для этого, идентичен в обоих рабочих процессах:

Второй рабочий процесс даст сбой с:

Насколько я понимаю, если у меня есть основной рабочий процесс, который вызывает два других рабочих процесса, все они запускаются на отдельном "бегуне", поэтому после выполнения workflow1 и получения workflow2 собственного бегуна, проверка репозитория должна сработать?

Я попробовал различные предложения, сделанные ИИ:

1: Запустите это в начале части git (я не понимаю, почему это поможет, но я пробовал):

2: Запустите это в начале части git (я не понимаю, почему это поможет help, но я пробовал):

Я также пробовал засыпать на несколько секунд между workflow1 и workflow2, но это не помогло.

Что я упускаю? Я потратил на это несколько часов, но так и не продвинулся.

- name: Commit and push the changes
  run: |
    echo "Initial status:"
    git status

    git config --local user.email "[email protected]"
    git config --local user.name "GitHub Action"

    git add -A

    echo "Status after git add:"
    git status

    git diff --cached --exit-code && exit 0  # Exit if no changes in the staging area

    echo "Committing changes:"
    git commit -m "chore: fetch content from various external sources"

    echo "Pushing changes:"
    git push

    echo "Final status:"
    git status
Run echo "Initial status:"
Initial status:
On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   xxx.md
    modified:   yyy.md
    modified:   zzz.md

no changes added to commit (use "git add" and/or "git commit -a")
Status after git add:
On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    modified:   xxx.md
    modified:   yyy.md
    modified:   zzz.md

diff --git a/xxx.md b/xxx.md etc etc
git fetch origin main
git reset --hard origin/main
git pull origin main
Никон
Вопрос задан13 июня 2024 г.

1 Ответ

2
Кондратий
Ответ получен7 сентября 2024 г.

Ваш ответ

Загрузить файл.