-
Notifications
You must be signed in to change notification settings - Fork 17
/
.gitlab-ci.yml
92 lines (85 loc) · 2.68 KB
/
.gitlab-ci.yml
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
variables:
CLICOLOR_FORCE: "1"
TERM: xterm
CPM_SOURCE_CACHE: ${CI_PROJECT_DIR}/.cache/cpm
cache:
key: cpm
paths: [.cache/cpm]
image: registry.fedoraproject.org/fedora-minimal:40
linux:
stage: build
script:
- microdnf install -y cmake ninja-build gcc-c++ fontconfig-devel freetype-devel libvorbis-devel libwebp-devel SDL2-devel libtheora-devel clang util-linux >/dev/null
- CXXFLAGS=-fdiagnostics-color cmake -Bbuild -GNinja
- cd build
- ninja
- microdnf install -y mesa-dri-drivers xorg-x11-drivers >/dev/null
- Xorg -config ../data/xorg.conf &>/dev/null &
- sleep 1 # wait for Xorg to boot up
- DISPLAY=:0 ./jngl-unittest
- cd ..
- CC=clang CXX=clang++ CXXFLAGS=-fdiagnostics-color cmake -Bbuild-clang -GNinja -DCMAKE_EXPORT_COMPILE_COMMANDS=1
- cd build-clang
- ninja
- microdnf install -y clang-tools-extra python3-PyYAML >/dev/null
- script -qfec "../data/run-clang-tidy.py"
mingw:
stage: build
script:
- microdnf install -y cmake ninja-build mingw64-pkg-config mingw64-libvorbis mingw64-SDL2 mingw64-fontconfig mingw64-libwebp mingw64-dlfcn mingw64-gcc-c++ > /dev/null
- mingw64-cmake -GNinja -Bbuild-debug -DCMAKE_BUILD_TYPE=Debug
- ninja -C build-debug
- mingw64-cmake -GNinja -Bbuild-release -DCMAKE_BUILD_TYPE=Release
- ninja -C build-release
android:
image: registry.gitlab.com/jhasse/android-ndk-docker:r27b
stage: build
script:
- make -C android
steamos:
image: registry.gitlab.steamos.cloud/steamrt/sniper/sdk
stage: build
script:
- cd /usr/local/include
- curl --silent -O -L https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.bz2
- tar -xf *.tar.bz2 --strip-components=1 boost_1_80_0/boost
- cd -
- cmake -Bbuild-steamos -GNinja -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=0
- cmake --build build-steamos
- cmake -Bbuild-steamos-release -GNinja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=0 -DJNGL_VIDEO=0 -DJNGL_BUILD_WEBP_FROM_SOURCE=1 -DBUILD_SHARED_LIBS=0
- cmake --build build-steamos-release
web:
image: emscripten/emsdk:3.1.61
stage: build
script:
- emcmake cmake -Bbuild-web
- cp -r data build-web/
- cd build-web
- make -j$(nproc)
- mkdir -p ../public/demo
- mv jngl-test.html ../public/demo
- mv jngl-test.wasm ../public/demo
- mv jngl-test.js ../public/demo
- mv jngl-test.data ../public/demo
artifacts:
paths:
- public/demo
pages:
stage: deploy
dependencies:
- web
script:
- microdnf install -y doxygen cmake make tar xz git >/dev/null
- cd doc
- cmake .
- make
- doxygen
- mv ../public __tmp
- mv html ../public
- mv __tmp/demo ../public
- rm -r __tmp
artifacts:
paths:
- public
only:
- master