fix: remove win file extension and use platform identifier in build w… #106
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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-* |