final tweaks for surface resource viewer #4699
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: CI | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
# This allows running it on any branch manually: | |
# https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow | |
env: | |
CARGO_TERM_COLOR: always | |
# Deny warns here as a catch-all and because some commands (e.g. cargo build) don't accept `--deny warnings` | |
# but also deny them on all individual cargo invocations where available because: | |
# 1) Some commands might not support rustflags (e.g. clippy didn't at first, cargo doc uses a different var, ...) | |
# 2) People might copy paste the commands into CI where this flag is missing without noticing. | |
RUSTFLAGS: --deny warnings | |
jobs: | |
tests: | |
name: Tests CI | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
rust: [stable] | |
# For reference: https://github.com/actions/virtual-environments#available-environments | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.rust }} | |
# Caching must be after toolchain selection | |
- uses: Swatinem/rust-cache@v2 | |
- name: Install linux deps | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
# Note that for running your Fyrox game on CI, you might need additinal deps like libxkbcommon-x11 and OpenGL | |
# and you might need to run it using xvfb-run even in headless mode. | |
run: | | |
sudo apt-get update # Run update first or install might start failing eventually. | |
sudo apt-get install --no-install-recommends -y libasound2-dev libudev-dev pkg-config xorg-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev | |
- run: rustc --version && cargo --version | |
- name: Build and test | |
env: | |
RUSTFLAGS: -C prefer-dynamic=yes | |
run: | | |
cargo build --verbose --workspace --all-targets --all-features --profile github-ci | |
cargo test --verbose --workspace --all-features --profile github-ci | |
wasm: | |
name: Wasm CI | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
rust: [stable] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.rust }} | |
targets: wasm32-unknown-unknown | |
# Caching must be after toolchain selection | |
- uses: Swatinem/rust-cache@v2 | |
- run: rustc --version && cargo --version | |
- name: Build | |
# Build only fyrox package here, because there's fyrox-dylib package which cannot be compiled on wasm. | |
run: | | |
cargo build --verbose --target=wasm32-unknown-unknown --package fyrox | |
format: | |
name: Rustfmt CI | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
# Use rust-toolchain because GHA tends to still have an old version for a few days after a new Rust release. | |
- uses: dtolnay/rust-toolchain@stable | |
- run: cargo fmt --version | |
- run: cargo fmt -- --check | |
clippy: | |
name: Clippy CI | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
# Use rust-toolchain because GHA tends to still have an old version for a few days after a new Rust release. | |
- uses: dtolnay/rust-toolchain@stable | |
# Caching must be after toolchain selection | |
- uses: Swatinem/rust-cache@v2 | |
- name: Install linux deps | |
run: | | |
sudo apt-get update # Run update first or install might start failing eventually. | |
sudo apt-get install --no-install-recommends -y libasound2-dev libudev-dev pkg-config xorg-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev | |
- run: cargo clippy --version | |
# Using --all-targets to also check tests and examples. | |
# Note that technically --all-features doesn't check all code when something is *disabled* by a feature. | |
- run: cargo clippy --workspace --all-targets --all-features -- --deny warnings | |
docs: | |
name: Documentation CI | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
# Docs.rs uses nightly https://docs.rs/about/builds | |
- uses: dtolnay/rust-toolchain@nightly | |
# Caching must be after toolchain selection | |
- uses: Swatinem/rust-cache@v2 | |
- run: rustc --version && cargo --version | |
- name: Build Docs | |
run: cargo doc --all-features | |
env: | |
RUSTDOCFLAGS: --deny warnings | |
template_pc: | |
name: Project Template (PC) | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@v2 | |
- name: Install Tools | |
run: | | |
cargo install fyrox-template --path=template --force | |
- name: Generate and Build Projects | |
run: | | |
cd ../ | |
fyrox-template init --name test_project --style=3d | |
cd test_project | |
fyrox-template upgrade --version=latest --local | |
cargo build --package editor | |
template_android: | |
name: Project Template (Android) | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@v2 | |
- uses: actions/setup-java@v3 | |
with: | |
java-version: "17" | |
distribution: "temurin" | |
- uses: android-actions/setup-android@v3 | |
with: | |
cmdline-tools-version: 10406996 | |
- run: sdkmanager tools "platforms;android-30" | |
- uses: nttld/setup-ndk@v1 | |
with: | |
ndk-version: r26 | |
- name: Install Tools | |
run: | | |
cargo install fyrox-template --path=template --force | |
cargo install cargo-apk | |
rustup target add armv7-linux-androideabi | |
- name: Generate and Build Projects | |
run: | | |
cd ../ | |
fyrox-template init --name test_project --style=3d | |
cd test_project | |
fyrox-template upgrade --version=latest --local | |
cargo-apk apk build --package executor-android --target armv7-linux-androideabi | |
template_wasm: | |
name: Project Template (WASM) | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@v2 | |
- name: Install Tools | |
run: | | |
cargo install fyrox-template --path=template --force | |
cargo install wasm-pack | |
rustup target add wasm32-unknown-unknown | |
- name: Generate and Build Projects | |
run: | | |
cd ../ | |
fyrox-template init --name test_project --style=3d | |
cd test_project | |
fyrox-template upgrade --version=latest --local | |
cd executor-wasm | |
wasm-pack build --target=web |