Repository navigation
64 lines (57 loc) · 2.61 KB
/
Copy pathci-upgrade.yml
File metadata and controls
64 lines (57 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
name: ci-upgrade
# A home the previous release made keeps working under this commit's mcpp
# (design .agents/docs/2026-10-17-upgrade-continuity-design.md, D9).
#
# Every other lane starts from an empty MCPP_HOME, so the packaging revision a
# payload records always equals the index's, and an upgrade is never executed.
# 2026.10.16.3 replaced every payload of an older revision inside the user's
# next `mcpp run`, and on a home with one dangling record failed every run;
# nothing in CI could see it. Here the PREVIOUS RELEASE (the newest published
# one that is not this commit's version, read from GitHub at run time, so the
# lane moves forward with every release) builds the home, and this commit's
# binary, laid out as a release with the xlings it pins, runs in it.
# .github/tools/upgrade_lane.sh holds the steps and the assertions.
#
# Called by ci.yml after each host's build, with the binary build.yml produced
# (use-built-mcpp, rule R1 of the 2026-10-02 CI record).
on:
workflow_call:
jobs:
upgrade:
name: upgrade from the previous release (${{ matrix.host }}, ${{ matrix.variant }})
strategy:
fail-fast: false
matrix:
include:
- { host: linux-x86_64, runs-on: ubuntu-24.04, variant: plain }
- { host: linux-x86_64, runs-on: ubuntu-24.04, variant: snapshot }
- { host: linux-x86_64, runs-on: ubuntu-24.04, variant: orphan }
- { host: linux-aarch64, runs-on: ubuntu-24.04-arm, variant: plain }
- { host: macos-arm64, runs-on: macos-15, variant: plain }
- { host: windows-x86_64, runs-on: windows-latest, variant: plain }
runs-on: ${{ matrix.runs-on }}
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- if: ${{ matrix.host != 'macos-arm64' }}
uses: ./.github/actions/bootstrap-mcpp
- if: ${{ matrix.host == 'macos-arm64' }}
uses: ./.github/actions/setup-macos-llvm
with:
image: macos-15
- uses: ./.github/actions/use-built-mcpp
with:
host: ${{ matrix.host }}
- name: The previous release's home runs this commit's mcpp without downloading or failing (${{ matrix.variant }})
shell: bash
env:
GH_TOKEN: ${{ github.token }}
run: |
test -x "$MCPP_VENDORED_XLINGS"
bash .github/tools/upgrade_lane.sh "${{ matrix.variant }}" "$MCPP_FRESH" "$MCPP_VENDORED_XLINGS"
- uses: actions/upload-artifact@v4
if: always()
with:
name: upgrade-lane-${{ matrix.host }}-${{ matrix.variant }}
path: upgrade-lane-logs/
if-no-files-found: ignore