@@ -2,6 +2,34 @@ name: Release
22on :
33 workflow_dispatch :
44jobs :
5+ source_release :
6+ runs-on : ubuntu-latest
7+
8+ steps :
9+ - uses : actions/checkout@v4
10+ with :
11+ fetch-depth : 0
12+
13+ - name : Source release
14+ shell : bash
15+ working-directory : ../
16+ run : |
17+ cmake -P bmx/release/source_release.cmake
18+
19+ # actions/upload-artifact doesn't allow . and .. in paths
20+ - name : Move source artefacts into working directory
21+ shell : bash
22+ run : |
23+ mv ../source_release .
24+
25+ - name : Upload source release
26+ uses : actions/upload-artifact@v4
27+ with :
28+ name : source-release
29+ path : |
30+ source_release/*.zip
31+ source_release/*.tar.gz
32+
533 binary_release :
634 strategy :
735 fail-fast : false
@@ -11,66 +39,77 @@ jobs:
1139 os : windows-2019
1240 - name : macos-xcode-universal
1341 os : macos-13
42+ - name : ubuntu
43+ os : ubuntu-latest
1444
1545 runs-on : ${{ matrix.os }}
46+ needs : source_release
1647
1748 steps :
49+ - name : Install dependencies (ubuntu)
50+ if : ${{ contains(matrix.os, 'ubuntu') }}
51+ shell : bash
52+ run : |
53+ sudo apt-get -y update
54+ sudo apt-get -y install \
55+ git \
56+ pkg-config \
57+ g++ \
58+ gcc \
59+ cmake \
60+ uuid-dev \
61+ libcurl4-openssl-dev
62+
1863 - uses : maxim-lobanov/setup-xcode@v1
1964 if : ${{ contains(matrix.name, 'xcode') }}
2065 with :
2166 xcode-version : latest-stable
2267
23- - uses : actions/checkout @v4
68+ - uses : actions/download-artifact @v4
2469 with :
25- fetch-depth : 0
26-
27- - name : Source release
28- shell : bash
29- working-directory : ../
30- run : |
31- cmake -P bmx/release/source_release.cmake
70+ name : source-release
3271
3372 - name : Win64 binary release
3473 if : ${{ contains(matrix.name, 'windows') }}
3574 shell : bash
36- working-directory : ../
3775 run : |
3876 mkdir binary_release
3977 cd binary_release
40- unzip -q ../source_release/ bmx-*.zip
78+ unzip -q ../bmx-*.zip
4179 cd bmx-*
4280 cmake -P release/win64_binary_release.cmake
4381
4482 - name : MacOS Universal binary release
4583 if : ${{ contains(matrix.os, 'macos') }}
4684 shell : bash
47- working-directory : ../
4885 run : |
4986 mkdir binary_release
5087 cd binary_release
51- unzip -q ../source_release/ bmx-*.zip
88+ unzip -q ../bmx-*.zip
5289 cd bmx-*
5390 cmake -P release/macos_universal_binary_release.cmake
5491
55- # actions/upload-artifact doesn't allow . and .. in paths
56- - name : Move artefacts into working directory
92+ - name : Ubuntu binary build (build only, no artefacts)
93+ if : ${{ contains(matrix.os, 'ubuntu') }}
5794 shell : bash
5895 run : |
59- mv ../source_release .
60- mv ../binary_release/bmx-*/out/package ./binary_release
96+ mkdir binary_release
97+ cd binary_release
98+ tar -xzf ../bmx-*.tar.gz
99+ cd bmx-*
100+ cmake -P release/ubuntu_binary_release_build_only.cmake
61101
62- - name : Upload source release
63- if : ${{ contains(matrix.name, 'windows') }}
64- uses : actions/upload-artifact@v4
65- with :
66- name : source-release
67- path : |
68- source_release/*.zip
69- source_release/*.tar.gz
102+ # actions/upload-artifact doesn't allow . and .. in paths
103+ - name : Move binary artefacts into binary_release directory
104+ if : ${{ !contains(matrix.os, 'ubuntu') }}
105+ shell : bash
106+ run : |
107+ mv binary_release/bmx-*/out/package/bmx-*.zip ./binary_release
70108
71109 - name : Upload binary release
110+ if : ${{ !contains(matrix.os, 'ubuntu') }}
72111 uses : actions/upload-artifact@v4
73112 with :
74113 name : binary-release-${{ matrix.name }}
75114 path : |
76- binary_release/*.zip
115+ binary_release/bmx- *.zip
0 commit comments