diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index 6cb77c3c0b5..a19363a9c3a 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -1245,7 +1245,7 @@ jobs: id: check_stop_time uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 env: - GH_AW_STOP_TIME: 2026-03-03 16:27:58 + GH_AW_STOP_TIME: "2026-03-03 16:27:58" GH_AW_WORKFLOW_NAME: "CI Failure Doctor" with: script: | diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml index f7b9c7ba080..05af7a6e46c 100644 --- a/.github/workflows/daily-team-status.lock.yml +++ b/.github/workflows/daily-team-status.lock.yml @@ -1014,7 +1014,7 @@ jobs: id: check_stop_time uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 env: - GH_AW_STOP_TIME: 2026-02-09 04:24:39 + GH_AW_STOP_TIME: "2026-02-09 04:24:39" GH_AW_WORKFLOW_NAME: "Daily Team Status" with: script: | diff --git a/pkg/workflow/compiler_pre_activation_job.go b/pkg/workflow/compiler_pre_activation_job.go index a049bd25927..b226daaefae 100644 --- a/pkg/workflow/compiler_pre_activation_job.go +++ b/pkg/workflow/compiler_pre_activation_job.go @@ -90,7 +90,7 @@ func (c *Compiler) buildPreActivationJob(data *WorkflowData, needsPermissionChec steps = append(steps, " env:\n") // Strip ANSI escape codes from stop-time value cleanStopTime := stringutil.StripANSI(data.StopTime) - steps = append(steps, fmt.Sprintf(" GH_AW_STOP_TIME: %s\n", cleanStopTime)) + steps = append(steps, fmt.Sprintf(" GH_AW_STOP_TIME: %q\n", cleanStopTime)) steps = append(steps, fmt.Sprintf(" GH_AW_WORKFLOW_NAME: %q\n", workflowName)) steps = append(steps, " with:\n") steps = append(steps, " script: |\n") diff --git a/pkg/workflow/stop_after.go b/pkg/workflow/stop_after.go index 7353297aa7e..618dc106e02 100644 --- a/pkg/workflow/stop_after.go +++ b/pkg/workflow/stop_after.go @@ -181,7 +181,10 @@ func ExtractStopTimeFromLockFile(lockFilePath string) string { if strings.Contains(line, "GH_AW_STOP_TIME:") { prefix := "GH_AW_STOP_TIME:" if _, after, ok := strings.Cut(line, prefix); ok { - return strings.TrimSpace(after) + extracted := strings.TrimSpace(after) + // Strip surrounding quotes added by newer compiler versions + extracted = strings.Trim(extracted, "\"") + return extracted } } } diff --git a/pkg/workflow/stop_after_test.go b/pkg/workflow/stop_after_test.go index 6aa669e87e5..a785a2f8923 100644 --- a/pkg/workflow/stop_after_test.go +++ b/pkg/workflow/stop_after_test.go @@ -61,6 +61,21 @@ jobs: GH_AW_WORKFLOW_NAME: "Test Workflow"`, expectedTime: "2025-06-01 12:00:00", }, + { + name: "GH_AW_STOP_TIME quoted (new format)", + lockContent: `name: Test Workflow +on: + workflow_dispatch: +jobs: + stop_time_check: + runs-on: ubuntu-latest + steps: + - uses: actions/github-script@v8 + env: + GH_AW_STOP_TIME: "2025-12-31 23:59:59" + GH_AW_WORKFLOW_NAME: "Test Workflow"`, + expectedTime: "2025-12-31 23:59:59", + }, } for _, tt := range tests {