v / .github / workflows / vup_works.yml
87 lines · 79 sloc · 2.89 KB · 93162641ddda0809e8e8c2da69af8b13982567ee
Raw
1name: Upgrading from a previous release with v up works
2
3on:
4 push:
5 branches:
6 - master
7 paths-ignore:
8 - '**.md'
9 - '**.yml'
10 - '**.vv'
11 - '**.out'
12 - '!**/vup_works.yml'
13 - '!cmd/tools/vup.v'
14 - 'cmd/tools/vrepl.v'
15 pull_request:
16 paths-ignore:
17 - '**.md'
18 - '**.yml'
19 - '**.vv'
20 - '**.out'
21 - '!**/vup_works.yml'
22 - '!cmd/tools/vup.v'
23 - 'cmd/tools/vrepl.v'
24
25concurrency:
26 group: vup-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
27 cancel-in-progress: true
28
29jobs:
30 v-up-works-nix:
31 strategy:
32 fail-fast: false
33 matrix:
34 include:
35 - os: ubuntu-latest
36 zip: v_linux.zip
37 - os: macos-15-intel
38 zip: v_macos_x86_64.zip
39 - os: macos-latest
40 zip: v_macos_arm64.zip
41 runs-on: ${{ matrix.os }}
42 timeout-minutes: 20
43 env:
44 VDIR: /tmp/v_from_release_zip
45 steps:
46 - uses: actions/checkout@v6
47 - name: Build v
48 run: make && ./v symlink && ./v version
49
50 - name: Download latest release ZIP
51 run: ./v retry -- ./v download --sha256 https://github.com/vlang/v/releases/latest/download/${{ matrix.zip }}
52
53 - name: Extract ZIP 1, no changes
54 run: |
55 rm -rf "$VDIR" && unzip -q -d v_from_release/ ${{ matrix.zip }} && mv v_from_release "$VDIR"
56 cd "$VDIR/v"
57 ./v version
58 ./v up
59 echo "Updated ./v version: $(./v version) | Current v version: $(v version)"
60
61 - name: Extract ZIP 2, with local changes
62 run: |
63 rm -rf "$VDIR" && unzip -q -d v_from_release/ ${{ matrix.zip }} && mv v_from_release "$VDIR"
64 touch "$VDIR/v/vlib/v/pref/local_file_not_present_in_master.c.v" && rm "$VDIR/v/examples/hello_world.v"
65 cd "$VDIR/v"
66 ./v version
67 ./v up
68 echo "Updated ./v version: $(./v version) | Current v version: $(v version)"
69
70 - name: Extract ZIP 3, with current vup.v in the extract
71 run: |
72 rm -rf "$VDIR" && unzip -q -d v_from_release/ ${{ matrix.zip }} && mv v_from_release "$VDIR"
73 rm -rf "$VDIR/v/cmd/tools/vup" && cp cmd/tools/vup.v "$VDIR/v/cmd/tools/vup.v"
74 cd "$VDIR/v"
75 ./v version
76 ./v up
77 echo "Updated ./v version: $(./v version) | Current v version: $(v version)"
78
79 - name: Extract ZIP 4, with local changes, and with current vup.v
80 run: |
81 rm -rf "$VDIR" && unzip -q -d v_from_release/ ${{ matrix.zip }} && mv v_from_release "$VDIR"
82 rm -rf "$VDIR/v/cmd/tools/vup" && cp cmd/tools/vup.v "$VDIR/v/cmd/tools/vup.v"
83 touch "$VDIR/v/vlib/v/pref/local_file_not_present_in_master.c.v" && rm "$VDIR/v/examples/hello_world.v"
84 cd "$VDIR/v"
85 ./v version
86 ./v up
87 echo "Updated ./v version: $(./v version) | Current v version: $(v version)"
88