Create Release Build #85
Workflow file for this run
This file contains 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: 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('**/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" | |
# Prepare NSIS | |
- name: "Preparing NSIS" | |
run: mkdir -p ${{ github.workspace }}/NSIS_Plugins/x86-unicode/ | |
- name: "Downloading Tauri Utility Plugin" | |
uses: suisei-cn/actions-download-file@v1.6.0 | |
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/actions-download-file@v1.6.0 | |
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/actions-download-file@v1.6.0 | |
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('**/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: "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: "Build LIPO Binaries" | |
run: ./ci/build-macos-package '${{ needs.get_version.outputs.version }}' | |
shell: bash | |
- name: "Upload MacOS zip Artifact" | |
uses: actions/upload-artifact@v4 | |
with: | |
name: macos-artifact | |
path: ./macos_binaries_*.tgz | |