Skip to content

Merge pull request #241 from DropSnorz/feat/explore-details-interactive #268

Merge pull request #241 from DropSnorz/feat/explore-details-interactive

Merge pull request #241 from DropSnorz/feat/explore-details-interactive #268

Workflow file for this run

# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: Owlplug Main
on:
push:
branches:
- master
- dev
- ci/*
- openjdk/*
- linux
jobs:
build-host-win:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
token: ${{ secrets.REPO_ACCESS_TOKEN }}
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 21
- name: "Download Projucer"
run: ./build/download-projucer.sh
shell: bash
env:
OS: windows
- name: Get Host Version
run: echo "version=$((Select-Xml -Path owlplug-host/src/main/juce/OwlPlugHost.jucer -XPath '//JUCERPROJECT/@version').Node.Value)" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
id: get-version
- name: "Build Host"
run: ./build/build-host-win.sh
shell: bash
- name: Upload Host Artifact
uses: actions/upload-artifact@v4
with:
name: owlplug-host-win
path: owlplug-host/src/main/juce/Builds/VisualStudio2019/x64/Release/Dynamic Library/owlplug-host-${{ env.version }}.dll
build-host-osx:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
token: ${{ secrets.REPO_ACCESS_TOKEN }}
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 21
- name: "Download Projucer"
run: ./build/download-projucer.sh
shell: bash
env:
OS: osx
- name: Install XmlStarlet
run: brew install xmlstarlet
- name: Get Host Version
run: echo "version=$(xmlstarlet sel -t -v 'string(//JUCERPROJECT/@version)' owlplug-host/src/main/juce/OwlPlugHost.jucer)" >> $GITHUB_ENV
id: get-version
- name: "Build Host"
run: ./build/build-host-osx.sh
shell: bash
- name: Upload Host Artifact
uses: actions/upload-artifact@v4
with:
name: owlplug-host-osx
path: owlplug-host/src/main/juce/Builds/MacOSX/build/Release/owlplug-host-${{ env.version }}.dylib
build-host-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
token: ${{ secrets.REPO_ACCESS_TOKEN }}
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 21
- name: "Download Projucer"
run: ./build/download-projucer.sh
shell: bash
env:
OS: linux
- name : Install Juce dev dependencies
run: sudo apt update && sudo apt install libasound2-dev libcurl4-openssl-dev libx11-dev libxcomposite-dev libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libxrender-dev
- name: Install XmlStarlet
run: sudo apt-get install xmlstarlet
- name: Get Host Version
run: echo "version=$(xmlstarlet sel -t -v 'string(//JUCERPROJECT/@version)' owlplug-host/src/main/juce/OwlPlugHost.jucer)" >> $GITHUB_ENV
id: get-version
- name: "Build Host"
run: ./build/build-host-linux.sh
shell: bash
- name: Add version in binary name
run: mv owlplug-host/src/main/juce/Builds/LinuxMakefile/build/libowlplug-host.so owlplug-host/src/main/juce/Builds/LinuxMakefile/build/owlplug-host-${{ env.version }}.so
- name: Upload Host Artifact
uses: actions/upload-artifact@v4
with:
name: owlplug-host-linux
path: owlplug-host/src/main/juce/Builds/LinuxMakefile/build/owlplug-host-${{ env.version }}.so
build-jar:
runs-on: ubuntu-latest
needs: [build-host-win, build-host-osx, build-host-linux]
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 21
- name: Get version
run: echo "version=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)" >> $GITHUB_ENV
id: get-version
- name: Install Windows native Host artifact
uses: actions/download-artifact@v4
with:
name: owlplug-host-win
path: owlplug-host/src/main/resources
- name: Install OSX native Host artifact
uses: actions/download-artifact@v4
with:
name: owlplug-host-osx
path: owlplug-host/src/main/resources
- name: Install Linux native Host artifact
uses: actions/download-artifact@v4
with:
name: owlplug-host-linux
path: owlplug-host/src/main/resources
- name: Get OwlPlug Scanner version
run: echo "scanner_version=$(cat ./owlplug-host/src/main/resources/owlplug-scanner.version)" >> $GITHUB_ENV
id: get-scanner-version
- name: Download scanner win binary
run: curl --location https://github.com/OwlPlug/owlplug-scanner/releases/download/${{ env.scanner_version }}/owlplug-scanner-${{ env.scanner_version }}-win.exe --output owlplug-host/src/main/resources/owlplug-scanner-${{ env.scanner_version }}-win.exe
- name: Download scanner osx binary
run: curl --location https://github.com/OwlPlug/owlplug-scanner/releases/download/${{ env.scanner_version }}/owlplug-scanner-${{ env.scanner_version }}-osx --output owlplug-host/src/main/resources/owlplug-scanner-${{ env.scanner_version }}-osx
- name: Download scanner linux binary
run: curl --location https://github.com/OwlPlug/owlplug-scanner/releases/download/${{ env.scanner_version }}/owlplug-scanner-${{ env.scanner_version }}-linux --output owlplug-host/src/main/resources/owlplug-scanner-${{ env.scanner_version }}-linux
- name: Build maven parent project
run: mvn -B install -DskipTests
- name: Build runnable Jar
run: cd owlplug-client && mvn -B install spring-boot:repackage -DskipTests
- name: Upload Jar Build Artifact
uses: actions/upload-artifact@v4
with:
name: owlplug-client-jar
path: owlplug-client/target/owlplug-client-${{ env.version }}.jar
package-win:
runs-on: windows-latest
needs: [build-jar]
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 21
- name: Get version
run: echo "version=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)" >> $GITHUB_ENV
shell: bash
id: get-version
- name: Install Jar artifact
uses: actions/download-artifact@v4
with:
name: owlplug-client-jar
path: owlplug-client/target
- name: Package installer
run: cd build && ./package-msi.cmd ${{ env.version }}
- name: Upload Installer Artifact
uses: actions/upload-artifact@v4
with:
name: owlplug-win-installer-msi
path: build/output/OwlPlug-${{ env.version }}.msi
package-osx:
runs-on: macos-latest
needs: [build-jar]
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 21
- name: Get version
run: echo "version=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)" >> $GITHUB_ENV
id: get-version
- name: Install Jar artifact
uses: actions/download-artifact@v4
with:
name: owlplug-client-jar
path: owlplug-client/target
- name: Package installer
run: cd build && ./package-dmg.sh ${{ env.version }}
- name: Upload Installer Artifact
uses: actions/upload-artifact@v4
with:
name: owlplug-osx-installer-dmg
path: build/output/OwlPlug-${{ env.version }}.dmg
package-linux-deb:
runs-on: ubuntu-latest
needs: [build-jar]
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 21
- name: Get version
run: echo "version=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)" >> $GITHUB_ENV
id: get-version
- name: Install Jar artifact
uses: actions/download-artifact@v4
with:
name: owlplug-client-jar
path: owlplug-client/target
- name: Package installer
run: cd build && ./package-deb.sh ${{ env.version }}
- name: Upload Installer Artifact
uses: actions/upload-artifact@v4
with:
name: owlplug-linux-installer-deb
path: build/output/OwlPlug-${{ env.version }}.deb
package-linux-appimage:
runs-on: ubuntu-latest
needs: [build-jar]
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 21
- name: Get version
run: echo "version=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)" >> $GITHUB_ENV
id: get-version
- name: Install Jar artifact
uses: actions/download-artifact@v4
with:
name: owlplug-client-jar
path: owlplug-client/target
- name: Package installer
run: cd build && ./package-appimage.sh ${{ env.version }}
- name: Download FUSE dependency
run: sudo add-apt-repository universe && sudo apt install libfuse2
- name: Download AppImage Tool
run: wget "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
- name: Allow AppImage Execution
run: chmod a+x appimagetool-x86_64.AppImage
- name: Run AppImage Tool
run: ./appimagetool-x86_64.AppImage build/OwlPlug.AppDir --verbose
- name: Rename OwlPlug AppImage
run: mv OwlPlug-x86_64.AppImage OwlPlug-${{ env.version }}-x86_64.AppImage
- name: Upload Installer Artifact
uses: actions/upload-artifact@v4
with:
name: owlplug-linux-appimage
path: OwlPlug-${{ env.version }}-x86_64.AppImage