77
88jobs :
99 build-win :
10- runs-on : windows-latest
10+ strategy :
11+ matrix :
12+ arch : [x64]
13+ include :
14+ - arch : x64
15+ os : windows-latest
16+ runs-on : ${{ matrix.os }}
1117 steps :
1218 - uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
1319 with :
@@ -25,13 +31,23 @@ jobs:
2531 - name : " Build Scanner"
2632 run : ./build/build-win.sh
2733 shell : bash
34+ - name : Add architecture to filename
35+ run : mv ./Builds/VisualStudio2022/${{ matrix.arch }}/Release/ConsoleApp/owlplug-scanner-${{ env.version }}-win.exe ./Builds/VisualStudio2022/${{ matrix.arch }}/Release/ConsoleApp/owlplug-scanner-${{ env.version }}-win-${{ matrix.arch }}.exe
2836 - name : Upload Artifact
2937 uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
3038 with :
31- name : owlplug-scanner-win
32- path : ./Builds/VisualStudio2019/x64 /Release/ConsoleApp/owlplug-scanner-${{ env.version }}-win.exe
39+ name : owlplug-scanner-win-${{ matrix.arch }}
40+ path : ./Builds/VisualStudio2022/${{ matrix.arch }} /Release/ConsoleApp/owlplug-scanner-${{ env.version }}-win-${{ matrix.arch }} .exe
3341 build-osx :
34- runs-on : macos-13
42+ strategy :
43+ matrix :
44+ arch : [x64, arm64]
45+ include :
46+ - arch : x64
47+ os : macos-15-intel
48+ - arch : arm64
49+ os : macos-15
50+ runs-on : ${{ matrix.os }}
3551 steps :
3652 - uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
3753 with :
@@ -51,13 +67,25 @@ jobs:
5167 - name : " Build OSX"
5268 run : ./build/build-osx.sh
5369 shell : bash
70+ - name : Add architecture to filename
71+ run : mv ./Builds/MacOSX/build/Release/owlplug-scanner-${{ env.version }}-osx ./Builds/MacOSX/build/Release/owlplug-scanner-${{ env.version }}-osx-${{matrix.arch}}
5472 - name : Upload Artifact
5573 uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
5674 with :
57- name : owlplug-scanner-osx
58- path : ./Builds/MacOSX/build/Release/owlplug-scanner-${{ env.version }}-osx
75+ name : owlplug-scanner-osx-${{ matrix.arch }}
76+ path : ./Builds/MacOSX/build/Release/owlplug-scanner-${{ env.version }}-osx-${{ matrix.arch }}
5977 build-linux :
60- runs-on : ubuntu-24.04
78+ strategy :
79+ matrix :
80+ arch : [x64]
81+ include :
82+ - arch : x64
83+ os : ubuntu-24.04
84+ # Projucer is only distributed for x64/amd64 linux.
85+ # The projucer is required to generate the Makefile, but the build can be run for arm64 after that.
86+ # A solution to support arm64 OwlPlug scanner would be to download projucer and render the Makefile
87+ # prior to the build matrix in a prepare job.
88+ runs-on : ${{ matrix.os }}
6189 steps :
6290 - uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
6391 with :
@@ -81,13 +109,13 @@ jobs:
81109 - name : " Build Linux"
82110 run : ./build/build-linux.sh
83111 shell : bash
84- - name : Add version in binary name
85- run : mv ./Builds/LinuxMakefile/build/owlplug-scanner-linux ./Builds/LinuxMakefile/build/owlplug-scanner-${{ env.version }}-linux
112+ - name : Add version and architecture to filename
113+ run : mv ./Builds/LinuxMakefile/build/owlplug-scanner-linux ./Builds/LinuxMakefile/build/owlplug-scanner-${{ env.version }}-linux-${{matrix.arch}}
86114 - name : Upload Artifact
87115 uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
88116 with :
89- name : owlplug-scanner-linux
90- path : ./Builds/LinuxMakefile/build/owlplug-scanner-${{ env.version }}-linux
117+ name : owlplug-scanner-linux-${{ matrix.arch }}
118+ path : ./Builds/LinuxMakefile/build/owlplug-scanner-${{ env.version }}-linux-${{ matrix.arch }}
91119 release :
92120 name : " Release"
93121 needs : [build-win, build-osx, build-linux]
@@ -98,13 +126,11 @@ jobs:
98126 - name : Retrieve artifacts
99127 uses : actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
100128 with :
101- path : ./build
129+ path : ./build/artifacts
102130 - uses : softprops/action-gh-release@72f2c25fcb47643c292f7107632f7a47c1df5cd8 # v2.3.2
103131 with :
104132 draft : true
105133 tag_name : latest
106134 name : OwlPlug Scanner Latest
107135 files : |
108- build/owlplug-scanner-osx/*
109- build/owlplug-scanner-win/*
110- build/owlplug-scanner-linux/*
136+ build/artifacts/**/owlplug-scanner-*
0 commit comments