mirror of
https://github.com/zebrajr/react.git
synced 2026-01-15 12:15:22 +00:00
I happened to notice some jobs on main get canceled if another PR landed before the prior commit on main had finished running CI. This is not great for difftrain because the commit artifacts job relies on the CI jobs on main finishing before it triggers. This would lead to commits being skipped on DiffTrain which is not great for provenance since we want it to be a 1:1 sync. --- [//]: # (BEGIN SAPLING FOOTER) Stack created with [Sapling](https://sapling-scm.com). Best reviewed with [ReviewStack](https://reviewstack.dev/facebook/react/pull/31296). * #31297 * __->__ #31296
78 lines
2.1 KiB
YAML
78 lines
2.1 KiB
YAML
name: (Compiler) Rust
|
|
|
|
on:
|
|
push:
|
|
branches: ["main"]
|
|
paths:
|
|
- .github/workflows/**
|
|
- compiler/crates/**
|
|
- compiler/Cargo.*
|
|
- compiler/*.toml
|
|
pull_request:
|
|
paths:
|
|
- .github/workflows/**
|
|
- compiler/crates/**
|
|
- compiler/Cargo.*
|
|
- compiler/*.toml
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
RUSTFLAGS: -Dwarnings
|
|
TZ: /usr/share/zoneinfo/America/Los_Angeles
|
|
|
|
defaults:
|
|
run:
|
|
working-directory: compiler
|
|
|
|
jobs:
|
|
test:
|
|
name: Rust Test (${{ matrix.target.os }})
|
|
strategy:
|
|
matrix:
|
|
target:
|
|
- target: ubuntu-latest
|
|
os: ubuntu-latest
|
|
# TODO: run on more platforms
|
|
# - target: macos-latest
|
|
# os: macos-latest
|
|
# - target: windows-latest
|
|
# os: windows-latest
|
|
runs-on: ${{ matrix.target.os }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: Swatinem/rust-cache@v2
|
|
- name: cargo test
|
|
run: cargo test --manifest-path=Cargo.toml --locked ${{ matrix.target.features && '--features' }} ${{ matrix.target.features }}
|
|
|
|
lint:
|
|
name: Rust Lint
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
# NOTE: use `rustup run <toolchain> <command>` in commands below
|
|
# with this exact same toolchain value
|
|
toolchain: nightly-2023-08-01
|
|
override: true
|
|
components: rustfmt, clippy
|
|
- uses: Swatinem/rust-cache@v2
|
|
- name: rustfmt
|
|
run: grep -r --include "*.rs" --files-without-match "@generated" crates | xargs rustup run nightly-2023-08-01 rustfmt --check --config="skip_children=true"
|
|
# - name: cargo clippy
|
|
# run: rustup run nightly-2023-08-01 cargo clippy -- -Dclippy::correctness
|
|
|
|
build:
|
|
name: Rust Build
|
|
runs-on: ubuntu-latest
|
|
# TODO: build on more platforms, deploy, etc
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: Swatinem/rust-cache@v2
|
|
- name: cargo build
|
|
run: cargo build --release
|