ALVR-IPv6/.github/workflows/rust.yml

140 lines
3.6 KiB
YAML

name: Rust
on:
push:
branches: [master]
pull_request:
branches: [master]
env:
CARGO_TERM_COLOR: always
jobs:
build_windows:
runs-on: windows-2019
env:
LIBCLANG_PATH: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\Llvm\x64\bin'
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- uses: Swatinem/rust-cache@v1
- uses: crazy-max/ghaction-chocolatey@v1
with:
args: install vulkan-sdk
- name: Build crates
uses: actions-rs/cargo@v1
with:
command: build
args: -p alvr_xtask -p alvr_server -p alvr_launcher --verbose
build_linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- uses: Swatinem/rust-cache@v1
- name: Build and install dependencies
env:
RUST_BACKTRACE: 1
run: |
sudo apt update
sudo apt install build-essential pkg-config nasm libva-dev libdrm-dev libvulkan-dev libx264-dev libx265-dev cmake libasound2-dev libjack-jackd2-dev libxrandr-dev libunwind-dev
cargo xtask prepare-deps --platform linux --no-nvidia
- name: Build crates
uses: actions-rs/cargo@v1
with:
command: build
args: -p alvr_xtask -p alvr_launcher -p alvr_server --features gpl -p alvr_vulkan_layer -p alvr_vrcompositor_wrapper --verbose
build_client_core:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: aarch64-linux-android
override: true
- uses: Swatinem/rust-cache@v1
- uses: nttld/setup-ndk@v1
id: setup-ndk
with:
ndk-version: r22b
- name: Install deps
uses: actions-rs/cargo@v1
with:
command: install
args: cargo-ndk
- name: Build client lib
env:
ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}
working-directory: ./alvr/client_core
run:
cargo ndk -t arm64-v8a build
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- uses: Swatinem/rust-cache@v1
- name: Run tests
uses: actions-rs/cargo@v1
with:
command: test
args: -p alvr_session --verbose
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: rustfmt
- uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
clippy:
runs-on: windows-2019
env:
LIBCLANG_PATH: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\Llvm\x64\bin'
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: clippy
- uses: Swatinem/rust-cache@v1
- uses: ErichDonGubler/clippy-check@fix-windows-lf-breaking-reports
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: -p alvr_xtask -p alvr_common -p alvr_server -p alvr_launcher