mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-04-20 20:55:50 +00:00
144 lines
2.9 KiB
YAML
144 lines
2.9 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
|
|
jobs:
|
|
build:
|
|
name: Build and Test
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Install Rust
|
|
uses: dtolnay/rust-toolchain@stable
|
|
|
|
- name: Restore Rust Cache
|
|
uses: actions/cache/restore@v4
|
|
with:
|
|
path: |
|
|
~/.cargo/registry
|
|
~/.cargo/git
|
|
target
|
|
key: ${{ matrix.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
|
|
|
- name: Setup Aftman
|
|
uses: ok-nick/setup-aftman@v0.4.2
|
|
with:
|
|
version: 'v0.3.0'
|
|
|
|
- name: Build
|
|
run: cargo build --locked --verbose
|
|
|
|
- name: Test
|
|
run: cargo test --locked --verbose
|
|
|
|
- name: Save Rust Cache
|
|
uses: actions/cache/save@v4
|
|
with:
|
|
path: |
|
|
~/.cargo/registry
|
|
~/.cargo/git
|
|
target
|
|
key: ${{ matrix.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
|
|
|
msrv:
|
|
name: Check MSRV
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Install Rust
|
|
uses: dtolnay/rust-toolchain@1.79.0
|
|
|
|
- name: Restore Rust Cache
|
|
uses: actions/cache/restore@v4
|
|
with:
|
|
path: |
|
|
~/.cargo/registry
|
|
~/.cargo/git
|
|
target
|
|
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
|
|
|
- name: Setup Aftman
|
|
uses: ok-nick/setup-aftman@v0.4.2
|
|
with:
|
|
version: 'v0.3.0'
|
|
|
|
- name: Build
|
|
run: cargo build --locked --verbose
|
|
|
|
- name: Save Rust Cache
|
|
uses: actions/cache/save@v4
|
|
with:
|
|
path: |
|
|
~/.cargo/registry
|
|
~/.cargo/git
|
|
target
|
|
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
|
|
|
lint:
|
|
name: Rustfmt, Clippy, Stylua, & Selene
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Install Rust
|
|
uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
components: rustfmt, clippy
|
|
|
|
- name: Restore Rust Cache
|
|
uses: actions/cache/restore@v4
|
|
with:
|
|
path: |
|
|
~/.cargo/registry
|
|
~/.cargo/git
|
|
target
|
|
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
|
|
|
- name: Setup Aftman
|
|
uses: ok-nick/setup-aftman@v0.4.2
|
|
with:
|
|
version: 'v0.3.0'
|
|
|
|
- name: Stylua
|
|
run: stylua --check plugin/src
|
|
|
|
- name: Selene
|
|
run: selene plugin/src
|
|
|
|
- name: Rustfmt
|
|
run: cargo fmt -- --check
|
|
|
|
- name: Clippy
|
|
run: cargo clippy
|
|
|
|
- name: Save Rust Cache
|
|
uses: actions/cache/save@v4
|
|
with:
|
|
path: |
|
|
~/.cargo/registry
|
|
~/.cargo/git
|
|
target
|
|
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|