ci: Enable nc-34#1106
Conversation
|
Claude finished @cbcoutinho's task in 1m 53s —— View job Review:
|
Uncommenting only the `include:` entry that supplies `nextcloud_image` for NC 34 did not add any NC-34 coverage: GitHub Actions merges an `include` entry into existing combinations only when its keys match one, and "34" was still absent from the base `nextcloud_version` list. Instead it created a standalone job with no `mode`/`profile`/`markers`, which failed running `docker compose --profile ` with an empty profile. Adding "34" to the base axis crosses it with the six `mode` lanes as intended. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
Round-1 findings addressed in
Other observations:
|
The first NC-34 matrix run showed four of six nc34 lanes failing at
container start, all on the same cause:
Error: App "Astrolabe" cannot be installed because it is not
compatible with this version of the server.
Astrolabe's appinfo declared max-version="33", and the app store has no
NC-34 release (GET /api/v1/platform/34.0.0/apps.json omits astrolabe),
so the app-install hook aborts. This is the blocker the removed
"Disabled until all upstream apps support NC 34" comment referred to.
Point the submodule at cbcoutinho/astrolabe#242 (max-version="34") and
enable the dev mount so CI exercises that build instead of the published
app. PHP/Node/build are ungated from `mode != single-user` because the
mount applies to every mode and vendor/ + js/ are not committed.
All three changes are TEMPORARY and must be reverted once astrolabe
publishes an NC-34 release; the PR stays in draft until then.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Root cause of the nc34 failures: Astrolabe declares
|
Enabling the mount in docker-compose.yml applied it to every job that brings up the stack, not just the integration matrix. Two jobs that never build the submodule broke on it: `integration (docling)` and the pact `Provider verification (astrolabe -> mcp)`. Both failed in `docker compose up` — an unbuilt checkout has no vendor/ or js/, so the hook symlinks it into custom_apps and `occ app:enable` aborts. Move the mount into docker-compose.astrolabe-dev.yml and apply it as an override via a per-version `compose-files` matrix property, so only the nc34 lanes overlay the submodule. Also addresses the reviewer's blast-radius finding: NC 32/33 go back to testing the published app-store Astrolabe, which is their real production configuration, instead of the unpublished fork. PHP/Node/build are re-gated to `mode != 'single-user' || version == '34'` — needed only where the override is actually applied. Verified with `docker compose config`: the astrolabe bind mount is present with the override and absent without it. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
Round-3 findings addressed in All six nc34 lanes passed on 🟡 Blast radius — fixed rather than accepted. You were right that the mount wasn't scoped to Fix: moved the mount to PHP/Node/build re-gated to 🟢 Revert checklist — tracked, and now smaller: delete 🟢 Force-push/GC risk on the SHA pin — acknowledged, accepted for the draft window. Worth stating plainly: green nc34 lanes prove the version gate was the only blocker — not that Astrolabe is broadly sound on NC 34. That distinction is on the card too. |
The push of 51ca8a3 created no GitHub Actions runs at all — not queued, not failed, absent for all three workflows (Tests, Pact, Claude review), while SonarCloud analyzed the commit normally. Actions is enabled, all three workflows are active, none filter drafts, the repo is public (so no minutes limit), and githubstatus reported no incident. Most likely a dropped pull_request event. Empty commit to emit a fresh synchronize. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Pushes made while the PR was a draft produced no Actions runs at all, though Actions was healthy repo-wide. Marking the PR ready does not by itself trigger these workflows — ready_for_review is not among their event types (opened, synchronize, reopened) — so this empty commit emits a synchronize while the PR is non-draft. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
# Conflicts: # .github/workflows/test.yml
|
Round-4: no blocking findings, and CI is green — 29/29 checks ( The two jobs the previous push broke both recovered, which was the open question:
All 18 integration lanes pass, including all six nc34, now also against master's refreshed nc32 digest. Note on the CI blackout between Minor observations, both left as-is:
Still deliberately not mergeable, independent of the green run. Pending: astrolabe#242 merged and released, then revert the temporary scaffolding (delete To restate one thing plainly: green nc34 lanes prove the |
cbcoutinho/astrolabe#242 (max-version="34") is merged, but merging is not releasing — the app store still returns no astrolabe entry for NC 34: curl -sL https://apps.nextcloud.com/api/v1/platform/34.0.0/apps.json \ | jq '[.[] | select(.id=="astrolabe")] | length' # => 0 Remove the temporary scaffolding that let CI test NC 34 against the unpublished submodule build: delete docker-compose.astrolabe-dev.yml, drop the `compose-files` matrix property, restore the plain compose file and the `mode != 'single-user'` gating, and repoint the submodule at the pin master already carries. The nc34 lanes are now EXPECTED TO FAIL on the app-install hook until the release is live. That is the intent: the matrix should reflect real published-app compatibility rather than a local build, so nothing merges on the strength of a fork that users cannot install. The diff against master is now purely the matrix axis change plus a note recording how to check app-store availability. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Temporary scaffolding reverted — nc34 lanes now expected to FAILcbcoutinho/astrolabe#242 is merged ( So
The diff against master is now purely the matrix axis change, plus a comment recording the blocker and the one-liner to check app-store availability. The six ⏳ Check back when the Astrolabe release is liveRe-check with: curl -sL https://apps.nextcloud.com/api/v1/platform/34.0.0/apps.json \
| jq '[.[] | select(.id=="astrolabe")] | length'Non-zero ⇒ the release is published. Then:
Tracked on Deck card #684. For the record: green nc34 lanes on the fork build proved the |
|



No description provided.