Skip to content

fix: remove win file extension and use platform identifier in build w… #106

fix: remove win file extension and use platform identifier in build w…

fix: remove win file extension and use platform identifier in build w… #106

Workflow file for this run

name: Owlplug Scanner
on:
push:
branches:
- '**'
jobs:
build-win:
strategy:
matrix:
platform: [win-x64]
include:
- platform: win-x64
arch: x64
os: windows-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
submodules: recursive
token: ${{ secrets.REPO_ACCESS_TOKEN }}
- name: "Download Projucer"
run: ./build/download-projucer.sh
shell: bash
env:
OS: windows
- name: Get Scanner Version
run: echo "version=$((Select-Xml -Path owlplug-scanner.jucer -XPath '//JUCERPROJECT/@version').Node.Value)" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
id: get-version
- name: "Build Scanner"
run: ./build/build-win.sh
shell: bash
- name: Add architecture to filename
run: mv ./Builds/VisualStudio2022/${{ matrix.arch }}/Release/ConsoleApp/owlplug-scanner-${{ env.version }}-win.exe ./Builds/VisualStudio2022/${{ matrix.arch }}/Release/ConsoleApp/owlplug-scanner-${{ env.version }}-${{ matrix.platform }}
- name: Upload Artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: owlplug-scanner-${{ matrix.platform }}
path: ./Builds/VisualStudio2022/${{ matrix.arch }}/Release/ConsoleApp/owlplug-scanner-${{ env.version }}-${{ matrix.platform }}
build-osx:
strategy:
matrix:
platform: [osx-x64, osx-arm64]
include:
- platform: osx-x64
arch: x64
os: macos-15-intel
- platform: osx-arm64
arch: arm64
os: macos-15
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
submodules: recursive
token: ${{ secrets.REPO_ACCESS_TOKEN }}
- name: "Download Projucer"
run: ./build/download-projucer.sh
shell: bash
env:
OS: osx
- name: Install XmlStarlet
run: brew install xmlstarlet
- name: Get Scanner Version
run: echo "version=$(xmlstarlet sel -t -v 'string(//JUCERPROJECT/@version)' owlplug-scanner.jucer)" >> $GITHUB_ENV
id: get-version
- name: "Build OSX"
run: ./build/build-osx.sh
shell: bash
- name: Add architecture to filename
run: mv ./Builds/MacOSX/build/Release/owlplug-scanner-${{ env.version }}-osx ./Builds/MacOSX/build/Release/owlplug-scanner-${{ env.version }}-${{ matrix.platform }}
- name: Upload Artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: owlplug-scanner-${{ matrix.platform }}
path: ./Builds/MacOSX/build/Release/owlplug-scanner-${{ env.version }}-osx-${{ matrix.platform }}
build-linux:
strategy:
matrix:
platform: [linux-x64]
include:
- platform: linux-x64
arch: x64
os: ubuntu-24.04
# Projucer is only distributed for x64/amd64 linux.
# The projucer is required to generate the Makefile, but the build can be run for arm64 after that.
# A solution to support arm64 OwlPlug scanner would be to download projucer and render the Makefile
# prior to the build matrix in a prepare job.
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
submodules: recursive
token: ${{ secrets.REPO_ACCESS_TOKEN }}
- name: "Download Projucer"
run: ./build/download-projucer.sh
shell: bash
env:
OS: linux
- name : Update packages
run: sudo apt update
- name : Install Juce dev dependencies
run: sudo apt install libasound2-dev libcurl4-openssl-dev libx11-dev libxcomposite-dev libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libxrender-dev libfreetype-dev libfreetype6-dev libfontconfig1-dev
- name: Install XmlStarlet
run: sudo apt install xmlstarlet
- name: Get Scanner Version
run: echo "version=$(xmlstarlet sel -t -v 'string(//JUCERPROJECT/@version)' owlplug-scanner.jucer)" >> $GITHUB_ENV
id: get-version
- name: "Build Linux"
run: ./build/build-linux.sh
shell: bash
- name: Add version and architecture to filename
run: mv ./Builds/LinuxMakefile/build/owlplug-scanner-linux ./Builds/LinuxMakefile/build/owlplug-scanner-${{ env.version }}-${{ matrix.platform }}
- name: Upload Artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: owlplug-scanner-${{ matrix.platform }}
path: ./Builds/LinuxMakefile/build/owlplug-scanner-${{ env.version }}-${{ matrix.platform }}
release:
name: "Release"
needs: [build-win, build-osx, build-linux]
# if: github.ref == 'refs/heads/master'
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Retrieve artifacts
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
path: ./build/artifacts
- uses: softprops/action-gh-release@72f2c25fcb47643c292f7107632f7a47c1df5cd8 # v2.3.2
with:
draft: true
tag_name: latest
name: OwlPlug Scanner Latest
files: |
build/artifacts/**/owlplug-scanner-*