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