-
Notifications
You must be signed in to change notification settings - Fork 113
142 lines (126 loc) · 3.74 KB
/
build-debian-seflhosted.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
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
134
135
136
137
138
139
140
141
142
name: Build-debian
on:
push:
pull_request:
workflow_dispatch:
env:
VULKAN_SDK_VERSION: 1.3.250.1
jobs:
debian:
runs-on: [self-hosted, linux, x64, gpu]
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get -y install \
build-essential \
cmake \
pkg-config \
libglm-dev \
libgtkmm-3.0-dev \
libsigc++-2.0-dev \
libyaml-cpp-dev \
liblxi-dev \
texlive \
texlive-fonts-extra \
texlive-extra-utils \
dvipng \
libglew-dev \
libvulkan-dev \
glslang-dev \
libglfw3-dev
- name: Clone and Build FFTS Library
run: |
git clone https://github.com/anthonix/ffts.git /tmp/ffts
pushd /tmp/ffts
mkdir build
cd build
cmake \
-DENABLE_SHARED=ON \
..
make -j
sudo make install
popd
- name: Clone and Build Catch2 Library
run: |
git clone https://github.com/catchorg/Catch2 /tmp/catch2
pushd /tmp/catch2
git checkout v2.13.5
mkdir build
cd build
cmake ..
make -j
sudo make install
popd
- name: Install Vulkan SDK
run: |
pushd ~
mkdir vulkan
cd vulkan
wget https://sdk.lunarg.com/sdk/download/${{ env.VULKAN_SDK_VERSION }}/linux/vulkansdk-linux-x86_64-${{ env.VULKAN_SDK_VERSION }}.tar.gz
tar xf vulkansdk-linux-x86_64-${{ env.VULKAN_SDK_VERSION }}.tar.gz
export VULKAN_SDK=~/vulkan/${{ env.VULKAN_SDK_VERSION }}/x86_64
sudo cp -r $VULKAN_SDK/include/vulkan/ /usr/local/include/
sudo cp -P $VULKAN_SDK/lib/libvulkan.so* /usr/local/lib/
sudo cp $VULKAN_SDK/lib/libVkLayer_*.so /usr/local/lib/
sudo mkdir -p /usr/local/share/vulkan/explicit_layer.d
sudo cp $VULKAN_SDK/etc/vulkan/explicit_layer.d/VkLayer_*.json /usr/local/share/vulkan/explicit_layer.d
sudo ldconfig
popd
- name: Build
run: |
export VULKAN_SDK=~/vulkan/${{ env.VULKAN_SDK_VERSION }}/x86_64
export PATH=$VULKAN_SDK/bin:$PATH
export LD_LIBRARY_PATH=$VULKAN_SDK/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
export VK_LAYER_PATH=$VULKAN_SDK/etc/vulkan/explicit_layer.d
mkdir build
cd build
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_DOCS=ON \
..
make -j 32
- name: Run Tests
if: ${{ true }} # Temporary re-enabled Run Tests
run: |
cd build
make test
- name: Upload Artifacts
if: ${{ always() }}
uses: actions/upload-artifact@v3
with:
name: ngscopeclient-linux
path: |
build/src/ngscopeclient/ngscopeclient
build/src/ngscopeclient/icons/*
build/src/ngscopeclient/shaders/*
build/lib/scopehal/libscopehal.so
build/lib/scopeprotocols/libscopeprotocols.so
- name: Upload Documentation
uses: actions/upload-artifact@v3
with:
name: ngscopeclient-manual
path: build/doc/ngscopeclient-manual.pdf
- name: Upload Test Log
if: ${{ always() }}
uses: actions/upload-artifact@v3
with:
name: ngscopeclient-test_log
path: build/Testing/Temporary/LastTest.log
cycle-debian-vm:
runs-on: [self-hosted, orchestrator]
needs: [debian]
if: ${{ false }}
steps:
- name: Cycle vm
shell: bash
env:
XOA_URL: ${{ secrets.XOA_URL }}
XOA_USER: ${{ secrets.XOA_USER }}
XOA_PASSWORD: ${{ secrets.XOA_PASSWORD }}
run: |
pushd ~
./cycle-debian.sh