ci: use lockfile install instead of layered.sh, fix always-green gate

layered.sh clones a branch-matching upstream matrix-js-sdk - on this fork
that would override the deliberately pinned js-sdk from pnpm-lock.yaml
(issue #12) with upstream develop, and it also needs jq which the node:20
job container lacks (the actual CI failure). Plain frozen-lockfile install
matches the production docker build.

Also replace the contains(needs.*.result, ...) gate check with explicit
per-job checks: the object-filter syntax evaluated wrongly on Gitea/act,
letting build-complete report success while build_ew had failed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Thore Cimbal
2026-07-30 12:00:00 +00:00
co-authored by Claude Sonnet 5
parent 71ac7c4346
commit 8d46fb33d2
+16 -4
View File
@@ -59,8 +59,14 @@ jobs:
cache: "pnpm"
node-version: "lts/*"
- name: Fetch layered build
run: scripts/layered.sh
# Upstream nutzt hier scripts/layered.sh, das eine zum Branch passende
# matrix-js-sdk-Version klont - fuer diesen Fork falsch: es wuerde den
# bewusst gepinnten js-sdk-Stand aus pnpm-lock.yaml (Issue #12) mit
# Upstream-develop ueberschreiben. Der Lockfile-Stand ist hier autoritativ,
# genau wie im Produktions-Docker-Build. (Nebenbei: layered.sh braucht jq,
# das im node:20-Job-Container fehlt.)
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Copy config
working-directory: apps/web
@@ -112,5 +118,11 @@ jobs:
if: always()
runs-on: ubuntu-latest
steps:
- if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')
run: exit 1
# Explizite Einzel-Checks statt contains(needs.*.result, ...): die
# Objekt-Filter-Syntax wertete auf Gitea/act falsch aus - das Gate war
# "success", obwohl build_ew fehlgeschlagen (und der Rest geskippt) war.
- name: Check all builds succeeded
run: |
[ "${{ needs.build_ew.result }}" = "success" ] || { echo "build_ew: ${{ needs.build_ew.result }}"; exit 1; }
[ "${{ needs.prepare_ed.result }}" = "success" ] || { echo "prepare_ed: ${{ needs.prepare_ed.result }}"; exit 1; }
[ "${{ needs.build_ed_linux.result }}" = "success" ] || { echo "build_ed_linux: ${{ needs.build_ed_linux.result }}"; exit 1; }