У меня есть 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