mirror of
https://github.com/go-gitea/gitea.git
synced 2026-05-23 05:42:33 +09:00
## Fixes #36983 ## Summary 1. Add transitional `Cancelling` status (between `Running` and `Cancelled`); cancel flow marks active tasks `Cancelling`, runner finalizes to `Cancelled` on terminal result. 2. Taskless jobs cancel directly (no runner to finalize). 3. Runner-protocol responses map `Cancelling` → `RESULT_CANCELLED`. 4. Run/job aggregation treats `Cancelling` as active. 5. Status mapping/aggregation tests + en-US locale added. **Problem** When a workflow was cancelled from the UI, jobs were marked cancelled immediately, which could skip post-run cleanup behavior. ## Solution Use a transitional status path: Running → Cancelling → Cancelled This allows runner finalization and cleanup path execution before final terminal state. **Testing** > 1. go test -tags "sqlite sqlite_unlock_notify" ./models/actions -run "TestAggregateJobStatus|TestStatusAsResult|TestStatusFromResult" > 2. go run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.11.4 run ./models/actions/... ./routers/api/actions/runner/... ## Related - act_runner: https://gitea.com/gitea/act_runner/pulls/825 — independent; this PR's capability gate keeps legacy runners on the immediate-cancel path. The new flow activates only for runners that advertise the `cancelling` capability. Co-authored-by: Nicolas <bircni@icloud.com> Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: Claude (Opus 4.7) <noreply@anthropic.com> Co-authored-by: Zettat123 <zettat123@gmail.com> Co-authored-by: Giteabot <teabot@gitea.io>
43 lines
2.6 KiB
Handlebars
43 lines
2.6 KiB
Handlebars
<div id="repo-action-view"
|
|
data-job-id="{{.JobID}}"
|
|
data-actions-view-url="{{.ActionsViewURL}}"
|
|
|
|
data-locale-approve="{{ctx.Locale.Tr "repo.diff.review.approve"}}"
|
|
data-locale-cancel="{{ctx.Locale.Tr "actions.runs.cancel"}}"
|
|
data-locale-rerun="{{ctx.Locale.Tr "rerun"}}"
|
|
data-locale-rerun-all="{{ctx.Locale.Tr "rerun_all"}}"
|
|
data-locale-rerun-failed="{{ctx.Locale.Tr "rerun_failed"}}"
|
|
data-locale-latest="{{ctx.Locale.Tr "actions.runs.latest"}}"
|
|
data-locale-latest-attempt="{{ctx.Locale.Tr "actions.runs.latest_attempt"}}"
|
|
data-locale-attempt="{{ctx.Locale.Tr "actions.runs.attempt"}}"
|
|
data-locale-runs-scheduled="{{ctx.Locale.Tr "actions.runs.scheduled"}}"
|
|
data-locale-runs-commit="{{ctx.Locale.Tr "actions.runs.commit"}}"
|
|
data-locale-runs-pushed-by="{{ctx.Locale.Tr "actions.runs.pushed_by"}}"
|
|
data-locale-summary="{{ctx.Locale.Tr "actions.runs.summary"}}"
|
|
data-locale-all-jobs="{{ctx.Locale.Tr "actions.runs.all_jobs"}}"
|
|
data-locale-triggered-via="{{ctx.Locale.Tr "actions.runs.triggered_via"}}"
|
|
data-locale-total-duration="{{ctx.Locale.Tr "actions.runs.total_duration"}}"
|
|
data-locale-run-details="{{ctx.Locale.Tr "actions.runs.run_details"}}"
|
|
data-locale-workflow-file="{{ctx.Locale.Tr "actions.runs.workflow_file"}}"
|
|
data-locale-status-unknown="{{ctx.Locale.Tr "actions.status.unknown"}}"
|
|
data-locale-status-waiting="{{ctx.Locale.Tr "actions.status.waiting"}}"
|
|
data-locale-status-running="{{ctx.Locale.Tr "actions.status.running"}}"
|
|
data-locale-status-cancelling="{{ctx.Locale.Tr "actions.status.cancelling"}}"
|
|
data-locale-status-success="{{ctx.Locale.Tr "actions.status.success"}}"
|
|
data-locale-status-failure="{{ctx.Locale.Tr "actions.status.failure"}}"
|
|
data-locale-status-cancelled="{{ctx.Locale.Tr "actions.status.cancelled"}}"
|
|
data-locale-status-skipped="{{ctx.Locale.Tr "actions.status.skipped"}}"
|
|
data-locale-status-blocked="{{ctx.Locale.Tr "actions.status.blocked"}}"
|
|
data-locale-artifacts-title="{{ctx.Locale.Tr "artifacts"}}"
|
|
data-locale-artifact-expired="{{ctx.Locale.Tr "expired"}}"
|
|
data-locale-artifact-expires-at="{{ctx.Locale.Tr "artifact_expires_at"}}"
|
|
data-locale-confirm-delete-artifact="{{ctx.Locale.Tr "confirm_delete_artifact"}}"
|
|
data-locale-show-timestamps="{{ctx.Locale.Tr "show_timestamps"}}"
|
|
data-locale-show-log-seconds="{{ctx.Locale.Tr "show_log_seconds"}}"
|
|
data-locale-show-full-screen="{{ctx.Locale.Tr "show_full_screen"}}"
|
|
data-locale-download-logs="{{ctx.Locale.Tr "download_logs"}}"
|
|
data-locale-logs-always-auto-scroll="{{ctx.Locale.Tr "actions.logs.always_auto_scroll"}}"
|
|
data-locale-logs-always-expand-running="{{ctx.Locale.Tr "actions.logs.always_expand_running"}}"
|
|
>
|
|
</div>
|