-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
133 lines (129 loc) · 4.39 KB
/
Copy pathvsl_and_vtl_compile_ci.yml
File metadata and controls
133 lines (129 loc) · 4.39 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
name: VSL and VTL
on:
push:
branches:
- master
paths-ignore:
- 'vlib/v3/**'
- '**.md'
- '**.yml'
- '!**/vsl_and_vtl_compile_ci.yml'
- 'examples/**'
- 'cmd/tools/vrepl.v'
pull_request:
paths-ignore:
- 'vlib/v3/**'
- '**.md'
- '**.yml'
- '!**/vsl_and_vtl_compile_ci.yml'
- 'examples/**'
- 'cmd/tools/vrepl.v'
concurrency:
group: vsl-vtl-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
cancel-in-progress: true
jobs:
vsl-compiles:
strategy:
matrix:
os: [ubuntu-24.04, macos-14]
fail-fast: false
runs-on: ${{ matrix.os }}
timeout-minutes: 30
env:
VFLAGS: -no-parallel
steps:
- uses: actions/checkout@v7.0.1
- name: Cache apt packages
if: runner.os == 'Linux'
uses: ./.github/actions/cache-apt-packages-action
- name: Cache Homebrew downloads
if: runner.os == 'macOS'
uses: actions/cache@v6
with:
path: ~/Library/Caches/Homebrew
key: brew-${{ matrix.os }}-vsl-${{ hashFiles('.github/workflows/vsl_and_vtl_compile_ci.yml') }}
restore-keys: |
brew-${{ matrix.os }}-vsl-
brew-${{ matrix.os }}-
- name: Build V
id: build
run: make && sudo ./v symlink
- name: Install dependencies
run: |
if [ "$RUNNER_OS" == 'Linux' ]; then
.github/workflows/disable_azure_mirror.sh
v retry -- sudo apt -qq update
v retry -- sudo apt -qq install \
libgc-dev libgl1-mesa-dev mesa-common-dev liblapacke-dev libopenblas-dev libopenmpi-dev \
opencl-headers libvulkan-dev libxcursor-dev libxi-dev libxrandr-dev \
libhdf5-cpp-103-1t64 libhdf5-dev libhdf5-mpi-dev hdf5-tools
else
v retry brew install coreutils hdf5 open-mpi openblas lapack opencl-headers
fi
- name: Install vsl
run: v retry -- v install vsl
- name: Skip optional Vulkan examples on macOS
if: runner.os == 'macOS'
run: |
for file in "$HOME"/.vmodules/vsl/examples/*vulkan*/*.v; do
[ -e "$file" ] || continue
mv "$file" "${file%.v}_not_ci.v"
done
- name: Test with Pure V Backend
run: ~/.vmodules/vsl/bin/test
- name: Test with Pure V Backend and Pure V Math
run: ~/.vmodules/vsl/bin/test --use-cblas --skip-examples
vtl-compiles:
strategy:
matrix:
os: [ubuntu-24.04, macos-14]
fail-fast: false
runs-on: ${{ matrix.os }}
timeout-minutes: 25
env:
VFLAGS: -no-parallel
VJOBS: 1
# Fixes complaints about $TERM not being set when running the vtl test script
# (a warning on Linux, but an error on macOS).
TERM: xterm
steps:
- uses: actions/checkout@v7.0.1
- name: Cache apt packages
if: runner.os == 'Linux'
uses: ./.github/actions/cache-apt-packages-action
- name: Cache Homebrew downloads
if: runner.os == 'macOS'
uses: actions/cache@v6
with:
path: ~/Library/Caches/Homebrew
key: brew-${{ matrix.os }}-vtl-${{ hashFiles('.github/workflows/vsl_and_vtl_compile_ci.yml') }}
restore-keys: |
brew-${{ matrix.os }}-vtl-
brew-${{ matrix.os }}-
- name: Build V
id: build
run: make && sudo ./v symlink
- name: Install dependencies
run: |
if [ "$RUNNER_OS" == 'Linux' ]; then
.github/workflows/disable_azure_mirror.sh
v retry -- sudo apt -qq update
v retry -- sudo apt -qq install \
libgc-dev libgl1-mesa-dev mesa-common-dev liblapacke-dev libopenblas-dev libopenmpi-dev
else
v retry brew install coreutils hdf5 open-mpi openblas lapack opencl-headers
fi
v retry v install vsl
- name: Install vtl
run: v retry v install vtl
- name: Skip optional Vulkan examples on macOS
if: runner.os == 'macOS'
run: |
for file in "$HOME"/.vmodules/vtl/examples/*vulkan*/*.v; do
[ -e "$file" ] || continue
mv "$file" "${file%.v}_not_ci.v"
done
- name: Test with Pure V Backend
run: ~/.vmodules/vtl/bin/test
- name: Test with Pure V Backend and Pure V Math
run: ~/.vmodules/vtl/bin/test --use-cblas