mirror of
https://github.com/go-gitea/gitea.git
synced 2026-10-09 04:30:16 +09:00
c7bd37e901
Backport #39589 by @bircni When the job emitter itself finishes the last jobs of a called workflow (e.g. skipped by `if:`), `UpdateRunJob` cascades the caller to done in the database only. The pass kept the caller unfinished in memory and nothing re-emitted the run, so jobs that `needs:` the caller stayed `Pending` and the caller's commit status stayed "In progress". The pass now reloads such callers so their commit statuses close, and re-emits the run so their dependents are resolved in the next pass. They are not resolved in the same pass because their `if:` and `concurrency:` read the caller from the database, where it is not finished until the pass writes the children. * Fixes https://github.com/go-gitea/gitea/issues/39587 * Fixes https://github.com/go-gitea/gitea/issues/39586 Co-authored-by: bircni <bircni@icloud.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>