Skip to content

Merge pull request #1627 from Technosorcery/dependabot/npm_and_yarn/u… #3037

Merge pull request #1627 from Technosorcery/dependabot/npm_and_yarn/u…

Merge pull request #1627 from Technosorcery/dependabot/npm_and_yarn/u… #3037

name: Build and test
on:
merge_group:
push:
branches:
- main
- staging
- trying
pull_request:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
web-ui:
name: Vue.js app
strategy:
matrix:
node-version:
- 18.13.0
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/[email protected]
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
cache-dependency-path: ui/package-lock.json
- name: Install
run: |
cd ui
npm install
- name: Build
run: |
cd ui
npm run build
- uses: actions/[email protected]
with:
name: ui-dist
path: ui/dist/
rust-app:
name: Rust app
needs:
- web-ui
strategy:
matrix:
os:
- ubuntu-latest
- windows-latest
- macOS-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/[email protected]
- uses: actions/[email protected]
with:
name: ui-dist
path: ui/dist
- name: Install Rust (Stable)
run: curl https://sh.rustup.rs -sSf | sh -s -- -y
- uses: actions/[email protected]
name: Cache cargo
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Test
run: cargo test --verbose
env:
SKIP_UI_BUILD: true
- name: Build
run: cargo build --verbose
env:
SKIP_UI_BUILD: true
- name: Upload debug artifact
uses: actions/[email protected]
with:
name: debug_${{ matrix.os }}
path: |
target/debug/sd2snes-lttp-rando-tracker*
!**/*.d
!**/*.pdb
rustfmt-check:
name: Check rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
- name: Install Rust nightly
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup default nightly
rustup component add rustfmt
- uses: actions/[email protected]
name: Cache cargo
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Check rustfmt
run: cargo +nightly fmt -- --check
clippy-check:
name: Check cargo clippy
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
- name: Install Rust
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
rustup default stable
rustup component add clippy
- uses: actions/[email protected]
name: Cache cargo
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Run clippy manually without annotations
run: cargo clippy --all-targets -- -D warnings
cargo-deny:
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
- uses: EmbarkStudios/cargo-deny-action@v1