jojo/services/actions
Mathieu Fenniak 032b0bbeda [v14.0/forgejo] fix: empty dynamic matrix can leave action run hanging incomplete (#11072)
**Backport:** #11063

Fixes #11030.

When a `strategy.matrix` needs to be evaluated on the output of another job, it can become evaluated into an empty set of jobs.  In this case, and assuming no other jobs in the run are active, the run should reach a settled state.  The logic to check the other jobs in the run and determine if this state has been hit needs to be explicitly added to the job emitter.

To accomplish this change, this action run state logic was extracted out of `UpdateRunJobWithoutNotification` where it could be reused.

(cherry picked from commit c198082975)

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11072
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: Mathieu Fenniak <mathieu@fenniak.net>
Co-committed-by: Mathieu Fenniak <mathieu@fenniak.net>
2026-01-27 20:14:04 +01:00
..
Test_tryHandleIncompleteMatrix [v14.0/forgejo] fix: empty dynamic matrix can leave action run hanging incomplete (#11072) 2026-01-27 20:14:04 +01:00
TestActions_CancelOrApproveRun refactor: migrate from lib/pq to jackc/pgx (#10219) 2025-11-30 17:47:45 +01:00
TestActions_consistencyCheckRun feat(actions): support referencing ${{ needs... }} variables in runs-on (#10308) 2025-12-05 18:14:43 +01:00
TestActionsNotifier_IsTrusted chore(refactor): replace ifNeedApproval with trust management 2025-11-06 11:07:39 +01:00
TestActionsTrust_GetPullRequestUserIsTrustedWithActions feat: trust management for runs created from a forked pull request 2025-11-06 11:07:38 +01:00
TestCancelPreviousJobs refactor: migrate from lib/pq to jackc/pgx (#10219) 2025-11-30 17:47:45 +01:00
TestCancelPreviousWithConcurrencyGroup refactor: migrate from lib/pq to jackc/pgx (#10219) 2025-11-30 17:47:45 +01:00
TestCreateCommitStatus [v14.0/forgejo] fix: don't duplicate commit status records on workflows with empty name (#10679) 2026-01-02 22:10:33 +01:00
TestServiceActions_startTask fix: a corrupted Forgejo Actions scheduled workflow is disabled (#8942) 2025-08-18 22:45:10 +02:00
TestServicesActions_TransferLingeringLogs refactor: migrate from lib/pq to jackc/pgx (#10219) 2025-11-30 17:47:45 +01:00
auth.go chore(cleanup): replaces unnecessary calls to formatting functions by non-formatting equivalents (#7994) 2025-05-29 17:34:29 +02:00
auth_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
cleanup.go feat: auto cleanup of offline runners (#7803) 2025-06-08 00:13:37 +02:00
cleanup_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
clear_tasks.go Actions Done Notification (#7491) 2025-04-24 15:15:24 +00:00
commit_status.go [v14.0/forgejo] fix: retain Forgejo Action's commit_status entries with distinct descriptions (#10704) 2026-01-05 18:20:14 +01:00
commit_status_test.go [v14.0/forgejo] fix: retain Forgejo Action's commit_status entries with distinct descriptions (#10704) 2026-01-05 18:20:14 +01:00
context.go [v14.0/forgejo] feat: add Forgejo server version to runner context (#10643) 2025-12-31 00:32:51 +01:00
context_test.go feat(actions): make GITHUB_WORKFLOW_REF available (#10276) 2025-12-17 23:15:26 +01:00
init.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
interface.go Revert "feat: add support for ephemeral runners compatible with autoscaling tools (#9409)" (#10463) 2025-12-19 17:24:03 +01:00
job_emitter.go [v14.0/forgejo] fix: empty dynamic matrix can leave action run hanging incomplete (#11072) 2026-01-27 20:14:04 +01:00
job_emitter_test.go [v14.0/forgejo] fix: empty dynamic matrix can leave action run hanging incomplete (#11072) 2026-01-27 20:14:04 +01:00
log.go fix: garbage collect lingering actions logs (#10009) 2025-11-18 18:59:01 +01:00
log_test.go chore(lint): Add exceptions for dbfs_model and unittest (#10275) 2025-12-09 14:34:06 +01:00
main_test.go [v14.0/forgejo] chore(cleanup): move all test blank imports in a single package (#10672) 2026-01-05 12:14:11 +01:00
notifier.go feat: github compatability for removing label from issue API (#8831) 2025-08-30 03:29:23 +02:00
notifier_helper.go [v14.0/forgejo] fix: prevent intermittent test failures caused by uncancellable tasks (#10717) 2026-01-06 17:06:22 +01:00
notifier_helper_test.go feat(actions): make GITHUB_WORKFLOW_REF available (#10276) 2025-12-17 23:15:26 +01:00
rerun.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
rerun_test.go chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
run.go feat(actions): support referencing ${{ needs... }} variables in runs-on (#10308) 2025-12-05 18:14:43 +01:00
run_test.go feat(actions): support referencing ${{ needs... }} variables in runs-on (#10308) 2025-12-05 18:14:43 +01:00
schedule_tasks.go [v14.0/forgejo] fix: make concurrency group job cancellation effect runs that are failed (#10871) 2026-01-16 15:36:58 +01:00
schedule_tasks_test.go [v14.0/forgejo] fix: make concurrency group job cancellation effect runs that are failed (#10871) 2026-01-16 15:36:58 +01:00
task.go chore: use code.forgejo.org/forgejo/actions-proto (#9981) 2025-11-05 16:10:52 +01:00
trust.go feat: trust management for runs created from a forked pull request 2025-11-06 11:07:38 +01:00
trust_test.go feat: trust management for runs created from a forked pull request 2025-11-06 11:07:38 +01:00
variables.go chore(lint): Add exceptions for dbfs_model and unittest (#10275) 2025-12-09 14:34:06 +01:00
variables_test.go fix: allow Forgejo Actions environment variables starting with CI (#8850) 2025-08-10 22:56:16 +02:00
workflows.go fix(actions): replace hardcoded with dynamically determined workflow directory (#10411) 2025-12-18 18:33:23 +01:00
workflows_test.go Update module code.forgejo.org/forgejo/runner/v11 to v12 (forgejo) (#10213) 2025-11-23 15:58:57 +01:00