Skip to content

Create Release Build #118

Create Release Build

Create Release Build #118

Workflow file for this run

name: Create Release Build
on: [ workflow_dispatch, workflow_call ]
jobs:
get_version:
name: "Version"
uses: ./.github/workflows/get-version.yml
build_windows:
name: "Create Windows Build"
runs-on: windows-latest
needs: [ get_version ]
steps:
# Firstly Checkout our Repository..
- name: "Check out GoXLR Utility"
uses: actions/checkout@v4
with:
path: goxlr-utility
# Now Checkout the App Wrappers repository..
# - name: "Check out GoXLR Utility UI"
# uses: actions/checkout@v4
# with:
# repository: frostycoolslug/goxlr-utility-ui
# path: goxlr-utility-ui
- name: "Install Rust"
uses: dtolnay/rust-toolchain@stable
- name: "Loading Cache"
uses: actions/cache@v4
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
goxlr-utility/target
key: ${{ runner.os }}-cargo-release-${{ hashFiles('goxlr-utility/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-release-
- name: "Build Utility"
run: "cargo build --manifest-path=goxlr-utility/Cargo.toml --release --all-features"
# Build the UI into the same target directory..
# - name: "Build UI"
# run: "cargo build --manifest-path=goxlr-utility-ui/src-tauri/Cargo.toml --target-dir=goxlr-utility/target --release"
- name: "Downloading UI 0.0.4"
uses: suisei-cn/[email protected]
with:
url: https://github.com/FrostyCoolSlug/goxlr-utility-ui/releases/download/v0.0.4/goxlr-utility-ui-0.0.4.exe
target: goxlr-utility/target/release/
filename: goxlr-utility-ui.exe
# Prepare NSIS
- name: "Preparing NSIS"
run: mkdir -p ${{ github.workspace }}/NSIS_Plugins/x86-unicode/
- name: "Downloading Tauri Utility Plugin"
uses: suisei-cn/[email protected]
with:
url: https://github.com/tauri-apps/nsis-tauri-utils/releases/download/nsis_tauri_utils-v0.1.1/nsis_tauri_utils.dll
target: ${{ github.workspace }}/NSIS_Plugins/x86-unicode/
- name: "Downloading WebView2 Bootstrapper"
uses: suisei-cn/[email protected]
with:
url: https://go.microsoft.com/fwlink/p/?LinkId=2124703
filename: MicrosoftEdgeWebview2Setup.exe
target: goxlr-utility/ci/nsis/
- name: "Downloading VC Runtime"
uses: suisei-cn/[email protected]
with:
url: https://aka.ms/vs/17/release/vc_redist.x64.exe
filename: vc_redist.x64.exe
target: goxlr-utility/ci/nsis/
- name: "Build NSIS Packages"
uses: joncloud/makensis-action@publish
with:
additional-plugin-paths: ${{ github.workspace }}/NSIS_Plugins
script-file: goxlr-utility/ci/nsis/goxlr-utility.nsi
arguments: "/DPRODUCT_VERSION=${{ needs.get_version.outputs.version }}"
- name: "Upload Installer"
uses: actions/upload-artifact@v4
with:
name: windows-artifact
path: ./goxlr-utility/ci/Output/*.exe
build_linux:
name: "Create Linux Builds"
runs-on: ubuntu-22.04
needs: [ get_version ]
steps:
- name: "Check out Repository"
uses: actions/checkout@v4
- name: "Install Rust"
uses: dtolnay/rust-toolchain@stable
- name: "Install Required Libraries"
run: |
sudo apt-get update
sudo apt-get install libpulse0 libdbus-1-dev pkg-config libspeechd-dev
- name: "Loading Cache"
uses: actions/cache@v4
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-release-${{ hashFiles('goxlr-utility/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-release-
- name: Install cargo-deb and cargo-generate-rpm
run: cargo install --force cargo-deb cargo-generate-rpm
- name: "Build Packages"
run: ./ci/build-packages
shell: bash
- name: "Upload DEB Artifact"
uses: actions/upload-artifact@v4
with:
name: debian-artifact
path: ./target/debian/*.deb
- name: "Upload RPM Artifact"
uses: actions/upload-artifact@v4
with:
name: rpm-artifact
path: ./target/generate-rpm/*.rpm
build_macos:
name: "Create MacOS Builds"
strategy:
matrix:
targets: [ x86_64-apple-darwin, aarch64-apple-darwin ]
runs-on: macos-12
needs: [ get_version ]
steps:
- name: "Checkout Repository"
uses: actions/checkout@v4
with:
path: goxlr-utility
# Now Checkout the App Wrappers repository..
- name: "Check out GoXLR Utility UI"
uses: actions/checkout@v4
with:
repository: frostycoolslug/goxlr-utility-ui
path: goxlr-utility-ui
- name: "Install Rust"
uses: dtolnay/rust-toolchain@stable
- name: "Loading Cache"
uses: actions/cache@v4
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
goxlr-utility/target
key: ${{ runner.os }}-${{ matrix.targets }}-cargo-release-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-${{ matrix.targets }}-cargo-release-
- name: "Add rust target support"
run: rustup target add ${{ matrix.targets }}
- name: "Build Package"
run: ./goxlr-utility/ci/build-macos '${{ matrix.targets }}' '${{ needs.get_version.outputs.version }}'
shell: bash
- name: "Upload MacOS zip Artifact"
uses: actions/upload-artifact@v4
with:
name: macos-artifact-${{ matrix.targets }}
path: ./macos_binaries_*.tgz
package_macos:
name: "Package MacOS Binaries"
runs-on: macos-12
needs: [ get_version, build_macos ]
steps:
- name: "Checkout Repository"
uses: actions/checkout@v4
- name: "Download x86_64 Artifact"
uses: actions/download-artifact@v4
with:
name: "macos-artifact-x86_64-apple-darwin"
- name: "Download aarch64 Artifact"
uses: actions/download-artifact@v4
with:
name: "macos-artifact-aarch64-apple-darwin"
- name: "Install Packages App.."
run: |
wget http://s.sudre.free.fr/Software/files/Packages.dmg
hdiutil attach Packages.dmg
sudo installer -pkg /Volumes/Packages\ 1.2.10/Install\ Packages.pkg -target /
- name: "Build LIPO Binaries"
run: ./ci/build-macos-package '${{ needs.get_version.outputs.version }}'
shell: bash
- name: "Upload MacOS final Artifact"
uses: actions/upload-artifact@v4
with:
name: macos-artifact
path: ./goxlr-utility-macos-*.pkg
- name: "Remove x64 artifact"
uses: geekyeggo/delete-artifact@v4
with:
name: macos-artifact-x86_64-apple-darwin
- name: "Remove aarch artifact"
uses: geekyeggo/delete-artifact@v4
with:
name: macos-artifact-aarch64-apple-darwin