Skip to content

CI: switch the install script to git clone#496

Merged
malberts merged 2 commits into
5.xfrom
ci/install-modernize
Jun 13, 2026
Merged

CI: switch the install script to git clone#496
malberts merged 2 commits into
5.xfrom
ci/install-modernize

Conversation

@malberts

@malberts malberts commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

Fixes latent install-script bitrot affecting REL1_39, REL1_41, and REL1_42, and drops the now-redundant wget for phpunit.xml.template.

Switch the install script to git clone

Wikimedia recently converted older MediaWiki release refs (REL1_39 through REL1_42, plus older extension/skin branches) from branches to tags. The original branch refs still exist for now, so the same names resolve as both a branch AND a tag. GitHub's archive endpoint can no longer disambiguate the bare archive/<name>.tar.gz URL form in that state, and returns an HTTP 300 Multiple Choices with a 105-byte body:

the given path has multiple possibilities: #Git::Ref:..., #Git::Ref:...

The matrix's REL1_39, REL1_41, and REL1_42 rows are currently passing only because the install step is gated on a cache hit, and the cached MediaWiki trees were populated from the pre-conversion wget era. Cache eviction (7-day inactivity on a given key, or the cache-key bump in this PR) would tip them red. Switching installWiki.sh to git clone --depth 1 --branch <name> resolves whichever ref form exists and is robust to whatever Wikimedia does with the refs next.

Drop the redundant wget for phpunit.xml.template

The new-runner code path (1.46+) was fetching phpunit.xml.template from raw.githubusercontent.com because MediaWiki marks the file export-ignore in .gitattributes, which excludes it from git archive output (and therefore from GitHub's archive/<ref>.tar.gz tarball endpoint). git clone does not honour export-ignore; the file is in the working tree after a normal checkout. With installWiki.sh now using git clone, the separate wget becomes dead code.

Bump the cache key

Existing wget-era cache entries (-v20) lack phpunit.xml.template because they were populated from the archive tarball. Without a key bump, on every cache hit after merge the file would be absent and composer phpunit:config would fail. Bump to -v21 so the next run on each cache key produces a fresh entry from the git clone path, with the file included.

malberts and others added 2 commits June 13, 2026 12:47
GitHub recently converted older MediaWiki release refs (REL1_39 through
REL1_42, plus all old extension/skin branches down to REL1_20) from
branches to tags, leaving both refs in place under the same name. The
bare `archive/<name>.tar.gz` URL form now returns HTTP 300 Multiple
Choices for those names instead of a tarball:

  the given path has multiple possibilities:
    #<Git::Ref:...>, #<Git::Ref:...>

The 5.x matrix includes REL1_39, REL1_41, REL1_42, currently passing
only because the install step is gated on a cache hit and the cache
entries pre-date the conversion. Cache eviction would tip those rows
red. Switching to `git clone --depth 1 --branch <name>` resolves
either ref form transparently and is robust to whatever Wikimedia does
with the refs next.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
MediaWiki marks phpunit.xml.template with `export-ignore` in
`.gitattributes`, which excludes it from `git archive` output (and
therefore from GitHub's `archive/<ref>.tar.gz` tarball endpoint).
That's why the new-runner code path had to fetch it separately.

`git clone` does not honour `export-ignore`; the file is in the
working tree after a normal checkout. With installWiki.sh now using
`git clone`, the separate wget for the template becomes dead code.
Drop it.

Bump the cache key from -v20 to -v21 so existing wget-era cache
entries (which lack `phpunit.xml.template` because they were
populated from the archive tarball) do not satisfy the new code path.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@malberts malberts force-pushed the ci/install-modernize branch from 82712f4 to 3bab406 Compare June 13, 2026 11:02
@malberts malberts marked this pull request as ready for review June 13, 2026 11:04
@malberts malberts merged commit 6caa7dc into 5.x Jun 13, 2026
8 checks passed
@malberts malberts deleted the ci/install-modernize branch June 13, 2026 11:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant