1+ name : " Build and test"
2+
3+ on :
4+ push :
5+ branches :
6+ - main
7+ - release-process
8+
9+ concurrency :
10+ group : ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
11+ cancel-in-progress : true
12+
13+ jobs :
14+ builds-and-tests :
15+ strategy :
16+ matrix :
17+ preset : [
18+ {"os": windows-latest, "name": "msbuild", "filename": "windows-x64"},
19+ {"os": ubuntu-latest, "name": "gnu", "filename": "linux"}
20+ ]
21+ build-type : ["Release"]
22+
23+ fail-fast : false
24+
25+ name : ${{ matrix.preset.os }} / ${{matrix.preset.name}} / ${{matrix.build-type}}
26+ runs-on : ${{ matrix.preset.os }}
27+
28+ steps :
29+ - name : checkout repository
30+ uses : actions/checkout@v3
31+
32+ - name : setup ninja
33+ uses : seanmiddleditch/gha-setup-ninja@master
34+
35+ - name : getcmake
36+ uses : lukka/get-cmake@latest
37+
38+ # - name: Setup upterm session
39+ # uses: lhotari/action-upterm@v1
40+
41+ # I am having issues installing vcpkg in ubuntu.
42+ - name : Setup vtk in ubuntu
43+ if : matrix.preset.os=='ubuntu-latest'
44+ run : |
45+ sudo apt-get update
46+ sudo apt-get install -y libvtk9-dev
47+
48+ - name : Setup vcpkg
49+ uses : lukka/run-vcpkg@v11
50+
51+ - name : Windows configure and build
52+ if : matrix.preset.name=='msbuild'
53+ run : |
54+ cmake --preset ${{matrix.preset.name}} -S . -B build
55+ cmake --build build --config ${{matrix.build-type}} -j
56+
57+ - name : Windows Run tests
58+ if : matrix.preset.name=='msbuild'
59+ run : build/bin/${{matrix.build-type}}/tessellator_tests.exe
60+
61+ - name : Ubuntu configure and build
62+ if : matrix.preset.name=='gnu'
63+ run : |
64+ cmake --preset ${{matrix.preset.name}} -S . -B build
65+ cmake --build build -j
66+
67+ - name : Ubuntu Run tests
68+ if : matrix.preset.name=='gnu'
69+ run : build/bin/tessellator_tests
70+
71+ - name : Get current date
72+ id : date
73+ run : echo "::set-output name=date::$(date +'%Y-%m-%d')"
74+
75+ - name : Create linux .tar file
76+ if : matrix.preset.name=='gnu'
77+ run : |
78+ cd build/bin && |
79+ tar --exclude="*test*" -czvf opensemba-tessellator-${{matrix.preset.filename}}.tar.gz *
80+
81+ - name : Create windows .tar file
82+ if : matrix.preset.name=='msbuild'
83+ run : |
84+ cd build/bin/${{matrix.build-type}} && |
85+ tar --exclude="*test*" -czvf opensemba-tessellator-${{matrix.preset.filename}}.tar.gz *
86+
87+ - name : Generating linux release
88+ if : matrix.preset.name=='gnu'
89+ uses : " marvinpinto/action-automatic-releases@latest"
90+ with :
91+ repo_token : " ${{ secrets.GITHUB_TOKEN }}"
92+ automatic_release_tag : " ${{ steps.date.outputs.date }}-${{matrix.preset.filename}}-opensemba-tessellator"
93+ prerelease : True
94+ title : " ${{ steps.date.outputs.date }} ${{matrix.preset.filename}} OpenSemba Tessellator release"
95+ files : |
96+ opensemba-tessellator-${{matrix.preset.filename}}.tar.gz
97+
98+ - name : Generating windows release
99+ if : matrix.preset.name=='msbuild'
100+ uses : " marvinpinto/action-automatic-releases@latest"
101+ with :
102+ repo_token : " ${{ secrets.GITHUB_TOKEN }}"
103+ automatic_release_tag : " ${{ steps.date.outputs.date }}-${{matrix.preset.filename}}-opensemba-tessellator"
104+ prerelease : True
105+ title : " ${{ steps.date.outputs.date }} ${{matrix.preset.filename}} OpenSemba Tessellator release"
106+ files : |
107+ opensemba-tessellator-${{matrix.preset.filename}}.tar.gz
0 commit comments