-
Notifications
You must be signed in to change notification settings - Fork 0
124 lines (103 loc) · 4.33 KB
/
Copy pathbuild.yml
File metadata and controls
124 lines (103 loc) · 4.33 KB
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
on:
workflow_call:
inputs:
platform:
required: true
type: string
architecture:
required: true
type: string
build_number:
required: false
type: string
default: local
jobs:
build:
runs-on: ${{
(inputs.platform == 'osx' && 'macos-latest') ||
(inputs.platform == 'linux' && 'ubuntu-latest') ||
(inputs.platform == 'win' && 'windows-latest')
}}
steps:
- uses: actions/checkout@v7
with:
submodules: recursive
- name: Apply build version
shell: pwsh
run: ./.github/scripts/apply-version.ps1 -BuildNumber "${{ inputs.build_number }}"
- name: Setup Dependencies (Windows)
if: inputs.platform == 'win'
uses: TheMrMilchmann/setup-msvc-dev@v4
with:
arch: ${{ inputs.architecture }}
- name: Setup Dependencies (Linux)
if: inputs.platform == 'linux'
run: |
sudo apt-get update
sudo apt-get install -y libwayland-dev wayland-protocols libudev-dev libdecor-0-dev
- name: Setup Ninja
uses: seanmiddleditch/gha-setup-ninja@v6
- name: Configure Build
run: cmake --preset release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build
run: cmake --build --preset release
- name: Install
run: cmake --install ./build-release --prefix ./install-release
- name: Archive Elemental (Windows)
if: inputs.platform == 'win'
working-directory: ./install-release
run: 7z a ./elemental.${{ inputs.platform }}-${{ inputs.architecture }}.zip ./Elemental/
- name: Archive Elemental
if: inputs.platform != 'win'
working-directory: ./install-release
run: tar -czf ./elemental.${{ inputs.platform }}-${{ inputs.architecture }}.tar ./Elemental/
- name: Upload Elemental Binaries
uses: actions/upload-artifact@v7
with:
name: elemental.${{ inputs.platform }}-${{ inputs.architecture }}
path: ./install-release/elemental.${{ inputs.platform }}-${{ inputs.architecture }}.${{ inputs.platform == 'win' && 'zip' || 'tar' }}
compression-level: 0
- name: Archive ElementalTools (Windows)
if: inputs.platform == 'win'
working-directory: ./install-release
run: 7z a ./elemental-tools.${{ inputs.platform }}-${{ inputs.architecture }}.zip ./ElementalTools/
- name: Archive Elemental Tools
if: inputs.platform != 'win'
working-directory: ./install-release
run: tar -czf ./elemental-tools.${{ inputs.platform }}-${{ inputs.architecture }}.tar ./ElementalTools/
- name: Upload Elemental Tools Binaries
uses: actions/upload-artifact@v7
with:
name: elemental-tools.${{ inputs.platform }}-${{ inputs.architecture }}
path: ./install-release/elemental-tools.${{ inputs.platform }}-${{ inputs.architecture }}.${{ inputs.platform == 'win' && 'zip' || 'tar' }}
compression-level: 0
- name: Archive Tests (Windows)
if: inputs.platform == 'win'
working-directory: ./install-release
run: 7z a ./tests.${{ inputs.platform }}-${{ inputs.architecture }}.zip ./tests/
- name: Archive Tests
if: inputs.platform != 'win'
working-directory: ./install-release
run: tar -czf ./tests.${{ inputs.platform }}-${{ inputs.architecture }}.tar ./tests/
- name: Upload Tests Binaries
uses: actions/upload-artifact@v7
with:
name: tests.${{ inputs.platform }}-${{ inputs.architecture }}
path: ./install-release/tests.${{ inputs.platform }}-${{ inputs.architecture }}.${{ inputs.platform == 'win' && 'zip' || 'tar' }}
compression-level: 0
- name: Archive Samples (Windows)
if: inputs.platform == 'win'
working-directory: ./install-release
run: 7z a ./samples.${{ inputs.platform }}-${{ inputs.architecture }}.zip ./samples/
- name: Archive Samples
if: inputs.platform != 'win'
working-directory: ./install-release
run: tar -czf ./samples.${{ inputs.platform }}-${{ inputs.architecture }}.tar ./samples/
- name: Upload Samples Binaries
uses: actions/upload-artifact@v7
with:
name: samples.${{ inputs.platform }}-${{ inputs.architecture }}
path: ./install-release/samples.${{ inputs.platform }}-${{ inputs.architecture }}.${{ inputs.platform == 'win' && 'zip' || 'tar' }}
compression-level: 0