v / .github / workflows / symlink_ci.yml
79 lines · 75 sloc · 1.93 KB · 93162641ddda0809e8e8c2da69af8b13982567ee
Raw
1name: Symlink CI
2
3on:
4 workflow_dispatch:
5 push:
6 branches:
7 - master
8 paths:
9 - 'cmd/tools/vsymlink/**.v'
10 - '.github/workflows/symlink_ci.yml'
11 pull_request:
12 paths:
13 - 'cmd/tools/vsymlink/**.v'
14 - '.github/workflows/symlink_ci.yml'
15
16concurrency:
17 group: symlink-${{ github.workflow }}-${{ github.ref_name == 'master' && github.sha || github.ref_name }}
18 cancel-in-progress: true
19
20jobs:
21 symlink-unix:
22 runs-on: ${{ matrix.os }}
23 strategy:
24 matrix:
25 os: [ubuntu-latest, macos-latest]
26 fail-fast: false
27 steps:
28 - uses: actions/checkout@v6
29 - name: Build V
30 run: make -j4
31 - name: Symlink
32 run: |
33 ./v symlink
34 cd /tmp/ && v version
35 cd ~ && v version
36 echo 'println(123)' > hi.v
37 v run hi.v
38 - name: Unlink
39 run: |
40 rm "$(which v)"
41 v --version && exit 1 || exit 0
42 - name: Symlink (sudo)
43 run: |
44 sudo ./v symlink
45 cd /tmp/ && v version
46 cd ~ && v version
47 echo 'println(123)' > hi.v
48 v run hi.v
49 - name: Unlink
50 run: |
51 rm "$(which v)"
52 v --version && exit 1 || exit 0
53 - name: Symlink (-githubci)
54 run: ./v symlink -githubci
55 - name: Test after symlink with -githubci (in a separate script)
56 run: |
57 cd /tmp/ && v version
58 cd ~ && v version
59 echo 'println(123)' > hi.v
60 v run hi.v
61
62 symlink-windows:
63 runs-on: windows-2025
64 strategy:
65 matrix:
66 flags: ['', '-githubci']
67 fail-fast: false
68 steps:
69 - uses: actions/checkout@v6
70 - name: Build V
71 run: ./makev.bat
72 - name: Symlink
73 run: ./v symlink ${{ matrix.flags }}
74 - name: Check if V is usable
75 run: |
76 cd $RUNNER_TEMP && pwd && v version
77 cd ~ && pwd && v version
78 echo 'println(123)' > hi.v
79 v run hi.v
80