v2 / .github / workflows / sdl_ci.yml
74 lines · 64 sloc · 1.94 KB · a51ed8416224e15d17196584165f9fae71ec613f
Raw
1name: sdl CI
2
3on:
4 workflow_dispatch:
5 push:
6 paths:
7 - 'vlib/**'
8 - 'thirdparty/**'
9 - 'cmd/tools/builders/**.v'
10 - 'cmd/tools/vshader.v'
11 - '**/sdl_ci.yml'
12 - '!**.md'
13 pull_request:
14 paths:
15 - 'vlib/**'
16 - 'thirdparty/**'
17 - 'cmd/tools/builders/**.v'
18 - 'cmd/tools/vshader.v'
19 - '**/sdl_ci.yml'
20 - '!**.md'
21
22concurrency:
23 group: sdl-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
24 cancel-in-progress: true
25
26jobs:
27 v-compiles-sdl-examples:
28 runs-on: ubuntu-24.04
29 timeout-minutes: 20
30 env:
31 VFLAGS: -cc tcc
32 steps:
33 - uses: actions/checkout@v6
34 - uses: ./.github/actions/cache-apt-packages-action
35 - name: Build V
36 run: make && sudo ./v symlink
37
38 - name: Install dependencies
39 run: |
40 .github/workflows/disable_azure_mirror.sh
41 v retry 'sudo apt update'
42 v retry 'sudo apt install -y libsdl2-dev libsdl2-ttf-dev'
43 v retry 'sudo apt install -y libsdl2-mixer-dev libsdl2-image-dev'
44
45 - name: Clone sdl into .vmodules
46 run: |
47 v retry 'git clone --filter=blob:none https://github.com/vlang/sdl'
48 cd sdl
49 mkdir -p ~/.vmodules
50 ln -s "$(pwd)" ~/.vmodules/sdl
51
52 - name: Ensure SDL setup works
53 run: ./v ~/.vmodules/sdl/setup.vsh
54
55 - name: Run tests
56 run: ./v test sdl
57
58 - name: Build sdl shared
59 run: ./v -shared -g sdl
60
61 - name: Build sdl examples
62 run: |
63 v shader sdl/examples/sdl_opengl_and_sokol
64 v should-compile-all sdl/examples/
65 ~/.vmodules/sdl/examples/versions/main
66
67 - name: Check SDL works, when installed through vpm
68 run: |
69 rm -rf sdl/
70 rm -rf ~/.vmodules/sdl
71 v retry 'v install sdl'
72 ls -la ~/.vmodules/sdl/
73 v ~/.vmodules/sdl/setup.vsh
74 v run ~/.vmodules/sdl/examples/versions
75