Skip to content

Commit d771780

Browse files
committed
ci: the clone's workspace pin does not decide which mcpp builds it
`.xlings.json` at mcpp's root pins the mcpp that compiles mcpp, and that pin does not move when mcpp is released — a build inside the checkout obeys it and installs a version the index may no longer carry. What this step wants is the source compiled by the mcpp installed a moment earlier.
1 parent 9fb6b3d commit d771780

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,18 @@ jobs:
103103
[ -d "$src" ] || git clone --quiet --depth 1 \
104104
--branch "$MCPP_SOURCE_REF" \
105105
https://github.com/mcpp-community/mcpp.git "$src"
106+
# ⚠️ THE CLONE'S OWN WORKSPACE PIN MUST NOT DECIDE WHICH mcpp
107+
# BUILDS IT. `.xlings.json` at mcpp's root pins the mcpp that
108+
# compiles mcpp, and that pin does not move when mcpp is released —
109+
# so a build inside the checkout obeys it and tries to install a
110+
# version the index may no longer carry:
111+
#
112+
# [error] xlings: version '2026.8.17.1' not found for 'mcpp'
113+
# available: 2026.8.25.1
114+
#
115+
# What is wanted here is the source compiled by the mcpp installed
116+
# above, which is exactly what removing the file leaves.
117+
rm -f "$src/.xlings.json"
106118
( cd "$src" && mcpp build --release )
107119
built=$(find "$src/target" -type f -name mcpp -perm -u+x | head -1)
108120
[ -n "$built" ] || { echo "::error::mcpp did not build from $MCPP_SOURCE_REF"; exit 1; }
@@ -207,6 +219,18 @@ jobs:
207219
[ -d "$src" ] || git clone --quiet --depth 1 \
208220
--branch "$MCPP_SOURCE_REF" \
209221
https://github.com/mcpp-community/mcpp.git "$src"
222+
# ⚠️ THE CLONE'S OWN WORKSPACE PIN MUST NOT DECIDE WHICH mcpp
223+
# BUILDS IT. `.xlings.json` at mcpp's root pins the mcpp that
224+
# compiles mcpp, and that pin does not move when mcpp is released —
225+
# so a build inside the checkout obeys it and tries to install a
226+
# version the index may no longer carry:
227+
#
228+
# [error] xlings: version '2026.8.17.1' not found for 'mcpp'
229+
# available: 2026.8.25.1
230+
#
231+
# What is wanted here is the source compiled by the mcpp installed
232+
# above, which is exactly what removing the file leaves.
233+
rm -f "$src/.xlings.json"
210234
( cd "$src" && mcpp build --release )
211235
built=$(find "$src/target" -type f -name mcpp -perm -u+x | head -1)
212236
[ -n "$built" ] || { echo "::error::mcpp did not build from $MCPP_SOURCE_REF"; exit 1; }

0 commit comments

Comments
 (0)