mirror of
https://github.com/go-gitea/gitea.git
synced 2026-07-17 20:05:19 +02:00
Backport #38476 by @bircni When an Actions job is blocked or waiting, the job view only shows the generic **Blocked** / **Waiting** label. Users have no way to tell *why* a job is stuck — whether it's waiting on dependencies, waiting for a runner that doesn't exist, waiting for a runner whose labels don't match, or simply queued behind busy runners. ## Change The current-job detail line now surfaces the actual cause: - **Blocked** → lists the dependency jobs (`needs`) that haven't finished yet, e.g. *"Waiting for the following jobs to complete: build."* - **Waiting**, no online runner → *"No runner is online to pick up this job."* - **Waiting**, online runners but none match `runs-on` → *"No matching online runner with label: X"* (reuses the existing string) - **Waiting**, a matching runner exists but hasn't claimed the job → *"Waiting for a matching runner to become available."* The runner lookup reuses the same available-online-runner query the run list already performs, and only runs while a selected job is actually pending. Dependency resolution is scoped to the same parent job and treats matrix expansions of a `need` as pending until all of them complete. Co-authored-by: bircni <bircni@icloud.com>