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+ tar --exclude="*test*" -czvf opensemba-tessellator-${{matrix.preset.filename}}.tar.gz ./build/bin/*
79+
80+ - name : Create windows .tar file
81+ if : matrix.preset.name=='msbuild'
82+ run : |
83+ tar --exclude="*test*" -czvf opensemba-tessellator-${{matrix.preset.filename}}.tar.gz ./build/bin/${{matrix.build-type}}/*
84+
85+ - name : Generating release
86+ if : matrix.preset.name=='gnu'
87+ uses : " marvinpinto/action-automatic-releases@latest"
88+ with :
89+ repo_token : " ${{ secrets.GITHUB_TOKEN }}"
90+ automatic_release_tag : " ${{ steps.date.outputs.date }}-${{matrix.preset.filename}}-opensemba-tessellator"
91+ prerelease : True
92+ title : " ${{ steps.date.outputs.date }} ${{matrix.preset.filename}} OpenSemba Tessellator release"
93+ files : |
94+ opensemba-tessellator-${{matrix.preset.filename}}.tar.gz
0 commit comments