Files
punktfunk/.gitea/workflows
enricobuehlerandClaude Opus 5 2f39e15e88
ci / rust (push) Failing after 5m29s
arch / build-publish (push) Failing after 6m45s
ci / web (push) Successful in 1m50s
ci / docs-site (push) Successful in 2m38s
android / android (push) Successful in 12m23s
decky / build-publish (push) Successful in 18s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 10s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 11s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 9s
ci / rust-arm64 (push) Successful in 9m36s
ci / bench (push) Successful in 6m51s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 10s
deb / build-publish-client-arm64 (push) Successful in 9m47s
docker / build-push (ci, ci/rust-ci-noble.Dockerfile, punktfunk-rust-ci-noble) (push) Successful in 7m44s
deb / build-publish (push) Successful in 12m27s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 8m8s
docker / deploy-docs (push) Successful in 13s
deb / build-publish-host (push) Successful in 13m1s
apple / swift (push) Successful in 5m40s
docker / build-push-arm64cross (push) Successful in 3m53s
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Successful in 18m54s
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Successful in 16m31s
apple / screenshots (push) Successful in 24m33s
fix(ci): the shader drift gate never ran — dash has no process substitution
`diff <(spirv-dis …) <(spirv-dis …)` is bash syntax, and Gitea's runner executes
a step's `run:` under `sh -e`. dash rejected the script at PARSE time, so the
gate compared nothing — and, being step 2 of the `rust` job, it took Format,
Clippy, Build, Test, the feature-gated encode backends, the C ABI harness and
the committed-header check down with it. Every one of those has been skipped on
the 35 commits between the gate landing (143a707f) and this one.

A gate that cannot run looks exactly like a gate that passes, which is the
precise failure mode it was written to prevent.

Disassemble to files instead. That is dash-clean without depending on whether
act_runner honours a `shell: bash` override, which is the other way to fix it
and the more fragile one.

Verified in CI's own container (ubuntu:resolute, glslang 16.2.0, spirv-tools
2026.1) by running the step body extracted from this YAML under `sh -e`: it
passes on the current tree, and — the half worth checking — it still FAILS on a
deliberately corrupted blob, so it is not passing vacuously.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 18:28:29 +02:00
..