universal-android-debloater.../.github/workflows/build_artifacts.yaml
w1nst0n 0993c51c7e
Add a no-self-update build for MacOS and Linux
Useful if UAD is distributed into repositories. The update process will then be managed by a package manager.

Note: MacOS builds are will now also be released as a compressed tarball (like for Linux)
2022-02-11 21:26:45 +00:00

71 lines
No EOL
2.8 KiB
YAML

name: Build artifacts
on: workflow_dispatch
jobs:
build:
name: Building ${{ matrix.build_target }} [${{ matrix.graphics }}] [${{ matrix.update_feature }}]
runs-on: ${{ matrix.os }}
strategy:
matrix:
build_target: [linux, macos, windows]
graphics: [glow, wgpu]
update_feature: [self-update, no-self-update]
exclude:
- build_target: windows
update_feature: no-self-update
include:
- build_target: linux
os: ubuntu-latest
- build_target: macos
os: macos-latest
- build_target: windows
os: windows-latest
- graphics: glow
renderer: "-opengl"
- graphics: wgpu
renderer: '' # Vulkan but we don't want this in the binary filename
- update_feature: self-update
update_name: '' # we don't want this in the binary filename
- update_feature: no-self-update
update_name: "-noseflupdate"
steps:
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
target: ${{ matrix.target }}
profile: minimal
- name: Install Linux dependencies
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get -qq update
sudo apt-get install -y libxkbcommon-dev lld
- uses: actions/checkout@v2
- name: Cargo build
uses: actions-rs/cargo@v1
with:
command: build
args: --release --no-default-features --features ${{ matrix.graphics }},${{ matrix.update_feature }}
- name: Renaming binaries [Windows]
if: matrix.os == 'windows-latest'
run: mv target/release/uad_gui.exe target/release/uad_gui-${{ matrix.build_target }}${{ matrix.renderer }}.exe
- name: Renaming binaries [Others]
if: matrix.os != 'windows-latest'
run: mv target/release/uad_gui target/release/uad_gui${{ matrix.update_name }}-${{ matrix.build_target }}${{ matrix.renderer }}
- name: Tarball Linux binary
if: matrix.os == 'ubuntu-latest'
run: |
cd target/release/
tar --remove-files -czf uad_gui${{ matrix.update_name }}-${{ matrix.build_target }}${{ matrix.renderer }}{.tar.gz,}
- name: Tarball MacOS binaries # --remove-files is not available on bsd tar
if: matrix.target.os == 'macos-latest'
run: |
brew install gnu-tar
cd target/release/
gtar --remove-files -czf uad_gui${{ matrix.update_name }}-${{ matrix.build_target }}${{ matrix.renderer }}{.tar.gz,}
- name: Upload artifact
uses: actions/upload-artifact@v2
with:
name: uad_gui${{ matrix.update_name }}-${{ matrix.build_target }}${{ matrix.renderer }}
path: target/release/uad_gui-*