Skip to content

Updated File System Module Exports and Bindings #420

Updated File System Module Exports and Bindings

Updated File System Module Exports and Bindings #420

Workflow file for this run

name: Rust
on: [push, pull_request, workflow_dispatch]
env:
SHELL: /bin/bash
CARGO_TERM_COLOR: never
SCCACHE_GHA_ENABLED: "true"
CC: clang
CXX: clang++
CCACHE: sccache
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
rust: [stable, beta]
os: [windows, macos, linux]
arch: [x86_64, aarch64]
include:
- os: windows
arch: x86_64
runner: windows-latest
target: x86_64-pc-windows-msvc
job: test
- os: windows
arch: aarch64
runner: windows-latest
target: aarch64-pc-windows-msvc
- os: macos
arch: x86_64
runner: macos-13
target: x86_64-apple-darwin
job: test
- os: macos
arch: aarch64
runner: macos-14
target: aarch64-apple-darwin
job: test
- os: linux
arch: x86_64
runner: ubuntu-latest
target: x86_64-unknown-linux-gnu
job: test
exclude:
- os: linux
arch: aarch64
env:
TARGET: ${{ matrix.target }}
steps:
- uses: actions/checkout@v4
- name: Install Rust Toolchain
uses: dtolnay/rust-toolchain@master
with:
targets: ${{ matrix.target }}
toolchain: ${{ matrix.rust }}
- name: Setup Dependencies
uses: ./.github/actions/setup
with:
os: ${{ matrix.os }}
cache-id: ${{ matrix.os }}-${{ matrix.arch }}
- name: Build Windows
if: matrix.os == 'windows'
run: |
just build-release -v --locked --target $env:TARGET
Rename-Item -Path .\target\$env:TARGET\release\cli.exe -NewName spiderfire.exe
- name: Build POSIX
if: matrix.os == 'macos' || matrix.os == 'linux'
run: |
just build-release -v --locked --target $TARGET
mv ./target/$TARGET/release/cli ./target/$TARGET/release/spiderfire
- name: Run Tests
if: matrix.job == 'test'
env:
NEXTEST_PROFILE: ci
shell: bash
run: just test-release -v --target $TARGET
- name: Upload Executables as Artifacts
uses: actions/upload-artifact@v4
if: matrix.rust == 'stable'
with:
name: spiderfire-${{ github.sha }}-${{ matrix.os }}-${{ matrix.arch }}
path: target/${{ matrix.target }}/release/spiderfire${{ matrix.os == 'windows' && '.exe' || '' }}
if-no-files-found: error
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Nightly Rust Toolchain
uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- name: Install Stable Rust Toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: Setup Dependencies
uses: ./.github/actions/setup
with:
cache-id: lint
- name: Lint
run: just lint
unused-dependencies:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust Toolchain
uses: dtolnay/rust-toolchain@nightly
- name: Setup Dependencies
uses: ./.github/actions/setup
with:
cache-id: udeps
- name: Install cargo-udeps
uses: taiki-e/install-action@cargo-udeps
- name: Check for Unused Dependencies
run: cargo udeps --all-targets --locked