From f14c1171b762540e0bdb61fdc243185f67f94c44 Mon Sep 17 00:00:00 2001 From: KeyffMS <124252104+KeyffMS@users.noreply.github.com> Date: Mon, 31 Aug 2026 15:01:50 +0200 Subject: [PATCH] Add controlled Codex qualification workflow --- .../plananvil-codex-qualification.yml | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/workflows/plananvil-codex-qualification.yml diff --git a/.github/workflows/plananvil-codex-qualification.yml b/.github/workflows/plananvil-codex-qualification.yml new file mode 100644 index 0000000..e6deb16 --- /dev/null +++ b/.github/workflows/plananvil-codex-qualification.yml @@ -0,0 +1,50 @@ +name: PlanAnvil Codex qualification + +on: + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: plananvil-codex-qualification + cancel-in-progress: false + +jobs: + smoke: + name: codex smoke test + if: github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/main' + environment: plananvil-codex + runs-on: + - self-hosted + - linux + - x64 + - plananvil + - codex + timeout-minutes: 10 + steps: + - name: Validate controlled runner + shell: bash + run: | + set -euo pipefail + test "${GITHUB_REF}" = "refs/heads/main" + command -v plananvil-qualification-workspace + command -v codex + codex --version + + - name: Run Codex smoke test + shell: bash + run: | + set -euo pipefail + workspace="$(plananvil-qualification-workspace)" + test -n "${workspace}" + test -d "${workspace}" + cd "${workspace}" + git rev-parse --is-inside-work-tree + + before="$(git status --porcelain=v1 --untracked-files=all)" + output="$(codex exec --ephemeral 'Do not modify any files. Reply with exactly PLANANVIL_CODEX_SMOKE_OK.')" + printf '%s\n' "${output}" + printf '%s\n' "${output}" | grep -Fq 'PLANANVIL_CODEX_SMOKE_OK' + after="$(git status --porcelain=v1 --untracked-files=all)" + test "${before}" = "${after}"