fix(ci): gate prod image push to main/tags; close CI coverage gaps #199

Merged
David merged 2 commits from fix/pms-189-ci-release-pipeline-drift into main 2026-06-13 17:38:40 +02:00
Owner

Restrict production-image publishing to main and version tags, run the full Rust integration suite in CI, align the CI database to the dev stack, and clean up release/compose pipeline drift.

build-oci-image.yml: drop the "**" branch wildcard from the push trigger and add an if: github.ref == main || startsWith(github.ref, refs/tags/v) gate on the job, so feature-branch pushes and feature-branch workflow_dispatch runs no longer rebuild and overwrite the :latest (and version) production image.

check.yml: replace the hand-maintained --test X allowlist (which silently dropped 13 of 22 integration suites) with cargo test --tests, keeping the --test-threads=4 PoolTimedOut reliability cap. Align the CI Postgres service to postgres:18.2-alpine3.23 to match the dev stack. Remove the SQLX_OFFLINE env var and its misleading comment: the project uses only dynamic sqlx::query(...) (zero compile-time query! macros) and ships no .sqlx/ cache, so the var was a no-op.

claude-fix.yml: switch the actions/checkout and actions/setup-node refs from github.com to code.forgejo.org, matching every other workflow.

create-release.yml: use the shared ${{ vars.RUNS_ON_OPENSUSE_BASE_LATEST }} runner variable instead of a hardcoded runner label.

justfile: bump the release version with a targeted str replace on the version = "..." line instead of round-tripping the whole Cargo.toml through to toml, which stripped all comments and PMS docs on every release. Replace both save --force calls with a tempfile + external mv (Cargo.toml) and a plain save --append to the empty mktemp body file, per the repo no-force safety policy.

compose.dev.yml: pin infisical to v0.161.0 (was the only unpinned :latest image) and add profiles: ["infisical"] to valkey so it no longer starts when the infisical profile is not selected.

The three WIP "Build on every push" debug commits (82b3044, 3d2b51a, 0c9a066) are already absent from main; gating the push job removes the remaining debug build-on-every-push behavior they introduced.

#PMS-189

Restrict production-image publishing to main and version tags, run the full Rust integration suite in CI, align the CI database to the dev stack, and clean up release/compose pipeline drift. build-oci-image.yml: drop the "**" branch wildcard from the push trigger and add an `if: github.ref == main || startsWith(github.ref, refs/tags/v)` gate on the job, so feature-branch pushes and feature-branch workflow_dispatch runs no longer rebuild and overwrite the :latest (and version) production image. check.yml: replace the hand-maintained `--test X` allowlist (which silently dropped 13 of 22 integration suites) with `cargo test --tests`, keeping the `--test-threads=4` PoolTimedOut reliability cap. Align the CI Postgres service to `postgres:18.2-alpine3.23` to match the dev stack. Remove the `SQLX_OFFLINE` env var and its misleading comment: the project uses only dynamic `sqlx::query(...)` (zero compile-time `query!` macros) and ships no `.sqlx/` cache, so the var was a no-op. claude-fix.yml: switch the `actions/checkout` and `actions/setup-node` refs from github.com to `code.forgejo.org`, matching every other workflow. create-release.yml: use the shared `${{ vars.RUNS_ON_OPENSUSE_BASE_LATEST }}` runner variable instead of a hardcoded runner label. justfile: bump the release version with a targeted `str replace` on the `version = "..."` line instead of round-tripping the whole Cargo.toml through `to toml`, which stripped all comments and PMS docs on every release. Replace both `save --force` calls with a tempfile + external `mv` (Cargo.toml) and a plain `save --append` to the empty mktemp body file, per the repo no-force safety policy. compose.dev.yml: pin infisical to `v0.161.0` (was the only unpinned `:latest` image) and add `profiles: ["infisical"]` to valkey so it no longer starts when the infisical profile is not selected. The three WIP "Build on every push" debug commits (82b3044, 3d2b51a, 0c9a066) are already absent from main; gating the push job removes the remaining debug build-on-every-push behavior they introduced. #PMS-189
fix(ci): gate prod image push to main/tags; close CI coverage gaps
Some checks failed
E2E (staging) / Playwright against staging (pull_request) Failing after 15s
Check / fmt + clippy + compile + tests (pull_request) Failing after 2m35s
986a08ef6c
Restrict production-image publishing to main and version tags, run the full Rust integration suite in CI, align the CI database to the dev stack, and clean up release/compose pipeline drift.

build-oci-image.yml: drop the "**" branch wildcard from the push trigger and add an `if: github.ref == main || startsWith(github.ref, refs/tags/v)` gate on the job, so feature-branch pushes and feature-branch workflow_dispatch runs no longer rebuild and overwrite the :latest (and version) production image.

check.yml: replace the hand-maintained `--test X` allowlist (which silently dropped 13 of 22 integration suites) with `cargo test --tests`, keeping the `--test-threads=4` PoolTimedOut reliability cap. Align the CI Postgres service to `postgres:18.2-alpine3.23` to match the dev stack. Remove the `SQLX_OFFLINE` env var and its misleading comment: the project uses only dynamic `sqlx::query(...)` (zero compile-time `query!` macros) and ships no `.sqlx/` cache, so the var was a no-op.

claude-fix.yml: switch the `actions/checkout` and `actions/setup-node` refs from github.com to `code.forgejo.org`, matching every other workflow.

create-release.yml: use the shared `${{ vars.RUNS_ON_OPENSUSE_BASE_LATEST }}` runner variable instead of a hardcoded runner label.

justfile: bump the release version with a targeted `str replace` on the `version = "..."` line instead of round-tripping the whole Cargo.toml through `to toml`, which stripped all comments and PMS docs on every release. Replace both `save --force` calls with a tempfile + external `mv` (Cargo.toml) and a plain `save --append` to the empty mktemp body file, per the repo no-force safety policy.

compose.dev.yml: pin infisical to `v0.161.0` (was the only unpinned `:latest` image) and add `profiles: ["infisical"]` to valkey so it no longer starts when the infisical profile is not selected.

The three WIP "Build on every push" debug commits (82b3044, 3d2b51a, 0c9a066) are already absent from main; gating the push job removes the remaining debug build-on-every-push behavior they introduced.

#PMS-189
Merge branch 'main' into fix/pms-189-ci-release-pipeline-drift
Some checks failed
Create release / Create release from merged PR (pull_request) Has been skipped
E2E / Playwright against staging (pull_request) Has been cancelled
Check / fmt + clippy + compile + tests (pull_request) Failing after 6m50s
9c0a4005b4
David merged commit 1b55130081 into main 2026-06-13 17:38:40 +02:00
David deleted branch fix/pms-189-ci-release-pipeline-drift 2026-06-13 17:38:40 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/mokosh-server!199
No description provided.