Skip to content

Commit b46ca3f

Browse files
authored
Merge pull request #32 from OwlPlug/ci/multi-arch
Add arm github runner
2 parents 55c0a14 + f4598d7 commit b46ca3f

File tree

4 files changed

+66
-21
lines changed

4 files changed

+66
-21
lines changed

.github/workflows/main.yml

Lines changed: 41 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,13 @@ on:
77

88
jobs:
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-*

JuceLibraryCode/JuceHeader.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ namespace ProjectInfo
4040
{
4141
const char* const projectName = "owlplug-scanner";
4242
const char* const companyName = "";
43-
const char* const versionString = "0.3.0";
44-
const int versionNumber = 0x300;
43+
const char* const versionString = "0.4.0";
44+
const int versionNumber = 0x400;
4545
}
4646
#endif

build/build-win.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ VS_WHERE="C:/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe"
88
MSBUILD_EXE=$("$VS_WHERE" -latest -requires Microsoft.Component.MSBuild -find "MSBuild\**\Bin\MSBuild.exe")
99
echo $MSBUILD_EXE
1010

11-
cd "$ROOT/Builds/VisualStudio2019"
12-
"$MSBUILD_EXE" "owlplug-scanner.sln" "//p:VisualStudioVersion=19.0" "//m" "//t:Build" "//p:Configuration=Release" "//p:PlatformTarget=x64" "//p:PreferredToolArchitecture=x64"
11+
cd "$ROOT/Builds/VisualStudio2022"
12+
"$MSBUILD_EXE" "owlplug-scanner.sln" "//p:VisualStudioVersion=22.0" "//m" "//t:Build" "//p:Configuration=Release" "//p:PlatformTarget=x64" "//p:PreferredToolArchitecture=x64"

owlplug-scanner.jucer

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<JUCERPROJECT id="yoeos4" name="owlplug-scanner" projectType="consoleapp" useAppConfig="0"
44
addUsingNamespaceToJuceHeader="0" displaySplashScreen="1" jucerFormatVersion="1"
5-
version="0.3.0" cppLanguageStandard="20">
5+
version="0.4.0" cppLanguageStandard="20">
66
<MAINGROUP id="JMs2NX" name="owlplug-scanner">
77
<GROUP id="{EE1B3A07-2402-FE08-C1B3-50215E94E56A}" name="Source">
88
<FILE id="NFqrO9" name="Main.cpp" compile="1" resource="0" file="Source/Main.cpp"/>
@@ -12,7 +12,8 @@
1212
JUCE_PLUGINHOST_AU="1" JUCE_WEB_BROWSER="0" JUCE_USE_CURL="0"
1313
JUCE_PLUGINHOST_LV2="1"/>
1414
<EXPORTFORMATS>
15-
<VS2019 targetFolder="Builds/VisualStudio2019" vstLegacyFolder="./modules/vst2sdk">
15+
<VS2019 targetFolder="Builds/VisualStudio2019" vstLegacyFolder="./modules/vst2sdk"
16+
userNotes="DEPRECATED - Use VisualStudio2022 Exporter instead. Remove on next JUCE upgrade.">
1617
<CONFIGURATIONS>
1718
<CONFIGURATION isDebug="1" name="Debug" targetName="owlplug-scanner-${JUCE_APP_VERSION}-win"/>
1819
<CONFIGURATION isDebug="0" name="Release" targetName="owlplug-scanner-${JUCE_APP_VERSION}-win"/>
@@ -68,6 +69,24 @@
6869
<MODULEPATH id="juce_audio_basics" path="./JUCE/modules"/>
6970
</MODULEPATHS>
7071
</LINUX_MAKE>
72+
<VS2022 targetFolder="Builds/VisualStudio2022" vstLegacyFolder="./modules/vst2sdk">
73+
<CONFIGURATIONS>
74+
<CONFIGURATION isDebug="1" name="Debug" targetName="owlplug-scanner-${JUCE_APP_VERSION}-win"/>
75+
<CONFIGURATION isDebug="0" name="Release" targetName="owlplug-scanner-${JUCE_APP_VERSION}-win"/>
76+
</CONFIGURATIONS>
77+
<MODULEPATHS>
78+
<MODULEPATH id="juce_audio_basics" path="./JUCE/modules"/>
79+
<MODULEPATH id="juce_audio_devices" path="./JUCE/modules"/>
80+
<MODULEPATH id="juce_audio_formats" path="./JUCE/modules"/>
81+
<MODULEPATH id="juce_audio_processors" path="./JUCE/modules"/>
82+
<MODULEPATH id="juce_core" path="./JUCE/modules"/>
83+
<MODULEPATH id="juce_data_structures" path="./JUCE/modules"/>
84+
<MODULEPATH id="juce_events" path="./JUCE/modules"/>
85+
<MODULEPATH id="juce_graphics" path="./JUCE/modules"/>
86+
<MODULEPATH id="juce_gui_basics" path="./JUCE/modules"/>
87+
<MODULEPATH id="juce_gui_extra" path="./JUCE/modules"/>
88+
</MODULEPATHS>
89+
</VS2022>
7190
</EXPORTFORMATS>
7291
<MODULES>
7392
<MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0" useGlobalPath="0"/>

0 commit comments

Comments
 (0)