1+ name : Handle Release
2+
13on :
24 release :
35 types : [created]
4- name : Handle Release
6+ workflow_dispatch :
7+
58jobs :
6- Publish-Release-Binaries :
7- runs-on : ubuntu-latest
9+ Build-Release-Binaries :
10+ runs-on : ${{ matrix.os }}
11+ strategy :
12+ matrix :
13+ include :
14+ - os : ubuntu-24.04
15+ label : linux.x86_64
16+ simd : true
17+ ext : " "
18+ - os : macos-13
19+ label : darwin.x86_64
20+ simd : true
21+ ext : " "
22+ - os : macos-14
23+ label : darwin.aarch64
24+ simd : false
25+ ext : " "
26+ - os : windows-2022
27+ label : windows.x86_64
28+ simd : true
29+ ext : " .exe"
830
931 steps :
1032 - name : Checkout the repository
@@ -13,50 +35,82 @@ jobs:
1335 fetch-depth : 1
1436 submodules : recursive
1537
16- - name : Set reusable strings
38+ - name : Set reusable paths
1739 id : strings
1840 shell : bash
1941 run : |
2042 echo "build-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"
2143 echo "bin-dir=${{ github.workspace }}/bin" >> "$GITHUB_OUTPUT"
44+ echo "release-dir=${{ github.workspace }}/bin/release" >> "$GITHUB_OUTPUT"
45+
46+ - name : Create release directory
47+ run : mkdir -p ${{ steps.strings.outputs.release-dir }}
2248
23- - name : Configure CMake (w/ vector support)
49+ - name : Configure CMake (SIMD)
50+ if : matrix.simd == true
2451 run : >
2552 cmake -B ${{ steps.strings.outputs.build-dir }}
2653 -DQUICKED_NONATIVE=ON
54+ ${{ matrix.os == 'macos-14' && '-DCMAKE_APPLE_SILICON_PROCESSOR=arm64' || '' }}
2755 -S ${{ github.workspace }}
2856
29- - name : Build (w/ vector support)
30- run : cmake --build ${{ steps.strings.outputs.build-dir }} --config Release --parallel 2
57+ - name : Build (SIMD)
58+ if : matrix.simd == true
59+ run : cmake --build ${{ steps.strings.outputs.build-dir }} --config Release --parallel 4
3160
32- - name : Move the target artifacts (w/ vector support)
61+ - name : Move artifacts (SIMD)
62+ if : matrix.simd == true
63+ shell : bash
3364 run : |
34- mkdir -p ${{ steps.strings.outputs.bin-dir }}/release
35- mv ${{ steps.strings.outputs.bin-dir }}/align_benchmark ${{ steps.strings.outputs.bin-dir }}/release/align_benchmark-x86_64-SIMD
36- mv ${{ steps.strings.outputs.bin-dir }}/generate_dataset ${{ steps.strings.outputs.bin-dir }}/release/generate_dataset-x86_64-SIMD
65+ mv "${{ steps.strings.outputs.bin-dir }}/align_benchmark${{ matrix.ext }}" \
66+ "${{ steps.strings.outputs.release-dir }}/align_benchmark-${{ matrix.label }}-SIMD${{ matrix.ext }}"
67+ mv "${{ steps.strings.outputs.bin-dir }}/generate_dataset${{ matrix.ext }}" \
68+ "${{ steps.strings.outputs.release-dir }}/generate_dataset-${{ matrix.label }}-SIMD${{ matrix.ext }}"
3769
3870 - name : Clean
71+ if : matrix.simd == true
3972 run : cmake --build ${{ steps.strings.outputs.build-dir }} --target clean
4073
41- - name : Configure CMake (w/o vector support )
74+ - name : Configure CMake (Scalar )
4275 run : >
4376 cmake -B ${{ steps.strings.outputs.build-dir }}
4477 -DQUICKED_NONATIVE=ON
4578 -DQUICKED_FORCESCALAR=ON
79+ ${{ matrix.os == 'macos-14' && '-DCMAKE_APPLE_SILICON_PROCESSOR=arm64' || '' }}
4680 -S ${{ github.workspace }}
4781
48- - name : Build (w/o vector support )
49- run : cmake --build ${{ steps.strings.outputs.build-dir }} --config Release --parallel 2
82+ - name : Build (Scalar )
83+ run : cmake --build ${{ steps.strings.outputs.build-dir }} --config Release --parallel 4
5084
51- - name : Move the target artifacts (w/o vector support)
85+ - name : Move artifacts (Scalar)
86+ shell : bash
5287 run : |
53- mkdir -p ${{ steps.strings.outputs.bin-dir }}/release
54- mv ${{ steps.strings.outputs.bin-dir }}/align_benchmark ${{ steps.strings.outputs.bin-dir }}/release/align_benchmark-x86_64
55- mv ${{ steps.strings.outputs.bin-dir }}/generate_dataset ${{ steps.strings.outputs.bin-dir }}/release/generate_dataset-x86_64
88+ mv "${{ steps.strings.outputs.bin-dir }}/align_benchmark${{ matrix.ext }}" \
89+ "${{ steps.strings.outputs.release-dir }}/align_benchmark-${{ matrix.label }}${{ matrix.ext }}"
90+ mv "${{ steps.strings.outputs.bin-dir }}/generate_dataset${{ matrix.ext }}" \
91+ "${{ steps.strings.outputs.release-dir }}/generate_dataset-${{ matrix.label }}${{ matrix.ext }}"
92+
93+ - name : Upload per-platform artifacts
94+ uses : actions/upload-artifact@v4
95+ with :
96+ name : release-${{ matrix.label }}
97+ path : ${{ steps.strings.outputs.release-dir }}/*
98+
99+ Upload-Release-Binaries :
100+ runs-on : ubuntu-latest
101+ needs : Build-Release-Binaries
102+
103+ steps :
104+ - name : Download all release artifacts
105+ uses : actions/download-artifact@v4
106+ with :
107+ pattern : release-*
108+ merge-multiple : true
109+ path : ./all_binaries
56110
57- - name : Upload the artifacts
111+ - name : Upload the artifacts to the release
58112 uses : skx/github-action-publish-binaries@master
59113 env :
60114 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
61115 with :
62- args : ' ${{ steps.strings.outputs.bin-dir }}/release /*'
116+ args : ' ./all_binaries /*'
0 commit comments