Create Release Build #57
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@v3 | |
with: | |
path: goxlr-utility | |
# Now Checkout the App Wrappers repository.. | |
- name: "Check out GoXLR Utility UI" | |
uses: actions/checkout@v3 | |
with: | |
repository: frostycoolslug/goxlr-utility-ui | |
path: goxlr-utility-ui | |
# For the use of CI, we need the UI to use the 'local' version of the `goxlr-ipc` crate, rather than the latest | |
# release version, this is to allow test builds to work correctly in the event of a Status Structure change that | |
# hasn't yet been released. | |
- name: "Update Utility UI IPC Location" | |
uses: Nambers/ReplaceStringInFile@v1.3 | |
with: | |
path: "goxlr-utility-ui/src-tauri/Cargo.toml" | |
regexOptions: 'gm' | |
oldString: "^goxlr-ipc.*$" | |
newString: "goxlr-ipc = { path = \\\"../../goxlr-utility/ipc\\\" }" | |
showFileContent: true | |
- name: "Install Rust" | |
uses: dtolnay/rust-toolchain@stable | |
- name: "Loading Cache" | |
uses: actions/cache@v3 | |
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.4.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.4.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.4.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@v3 | |
with: | |
name: windows-artifact | |
path: ./goxlr-utility/ci/Output/*.exe | |
build: | |
name: "Create Linux Builds" | |
runs-on: ubuntu-latest | |
needs: [get_version] | |
steps: | |
- name: "Check out Repository" | |
uses: actions/checkout@v3 | |
- 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@v3 | |
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@v3 | |
with: | |
name: debian-artifact | |
path: ./target/debian/*.deb | |
- name: "Upload RPM Artifact" | |
uses: actions/upload-artifact@v3 | |
with: | |
name: rpm-artifact | |
path: ./target/generate-rpm/*.rpm |