Repository navigation
CI: weekly check for newer Joomla releases (PR for patch releases, issue for new lines) - #243
Conversation
…sue for new lines) Dependabot can't follow the Joomla versions of the CI matrix. The new workflow joomla-versions.yml looks at the releases of joomla/joomla-cms every week: - a newer patch release of a version in the matrix: a pull request (branch joomla-versions) that raises the matrix and adds the package's SHA-256 to tests/ci/joomla-checksums.sha256; the hash of the download must equal the digest GitHub lists for the asset - a newer minor/major line: an issue The planning and the edits are in tests/ci/joomla-updates.php, covered by tests/Unit/JoomlaUpdatesTest.php. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LhhhdjhErC9ZiaS4HyRjsh
|
The failing integration jobs (Joomla 5.4.8 on postgres:12 and mariadb:10.11; I'm checking the other jobs as they finish) all fail on one test, The test came in with #240 (merged a few minutes ago). It needs the component side of that change, codeling/com_bfstop#21, which is not merged yet. The CI jobs install com_bfstop from its I can't merge com_bfstop#21 myself. No code change is needed here, so I'm not pushing anything. I'll re-run the failed jobs once it has merged. Generated by Claude Code |
Why
Dependabot can't follow the Joomla versions of the CI matrix (
ci.yml) and their checksums (tests/ci/joomla-checksums.sha256, added in #242). Without something watching, the matrix silently falls behind Joomla's security releases.Change
New workflow
.github/workflows/joomla-versions.yml, weekly (Tuesday) and on demand. It reads the releases ofjoomla/joomla-cmsand:joomla-versionsthat raises the matrix and adds the package's SHA-256. The download's hash must equal the digest GitHub lists for the release asset; if it doesn't, the job fails and changes nothing. If GitHub lists no digest, the PR says so.Only stable releases with a full package count (no drafts, pre-releases,
-eltstags).tests/ci/joomla-updates.phpholds the logic (plan/apply), covered bytests/Unit/JoomlaUpdatesTest.php(15 tests: release filtering, bump vs. new line, the edits, and refusals for other lines, older versions, malformed versions/hashes, duplicates). Documented intests/README.md.Things to know
GITHUB_TOKENdoesn't startpull_requestworkflows, so the job startsci.ymlon the branch withworkflow_dispatch(henceactions: write). The runs show on the branch's commit and thus in the PR. A PAT or app token would make this unnecessary, but needs a secret.gh pr create.Tested
runblocks were executed locally against a throwaway git remote with a fakeghandcurl: first run (branch pushed, PR + issue + CI dispatch requested, files as expected,check-joomla-checksums.phppasses on the result); second run with the same plan (does nothing: no push, no PR, no dispatch); digest mismatch (fails with an error, nothing committed); API without digest (PR text says so).Generated by Claude Code