Merge pull request #1119 from sbillig/ops-traits #4521
This file contains hidden or 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: | |
branches: [master] | |
tags: | |
- v* | |
pull_request: | |
env: | |
CARGO_TERM_COLOR: always | |
CARGO_INCREMENTAL: 0 | |
RUST_BACKTRACE: full | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
env: | |
RUSTFLAGS: "-D warnings" | |
steps: | |
- uses: actions/checkout@v5 | |
- name: Install system dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libboost-all-dev | |
- name: Install rust | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
components: rustfmt, clippy | |
- name: Cache Dependencies | |
uses: Swatinem/rust-cache@v2 | |
- name: Validate release notes entry | |
run: ./newsfragments/validate_files.py | |
- name: Lint with rustfmt | |
run: cargo fmt --all -- --check | |
- name: Lint with clippy | |
run: cargo clippy --workspace --all-targets --all-features -- -D clippy::all | |
test: | |
# Build & Test runs on all platforms | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-latest | |
- os: macOS-latest | |
steps: | |
- uses: actions/checkout@v5 | |
- name: Install rust | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Cache Dependencies | |
uses: Swatinem/rust-cache@v2 | |
- name: Build | |
run: cargo test --workspace --all-features --no-run --locked --exclude fe-language-server --exclude fe-bench | |
- name: Run tests | |
run: cargo test --workspace --all-features --verbose --exclude fe-language-server --exclude fe-bench | |
wasm-wasi-check: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v5 | |
- name: Install rust | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Install WASM targets | |
run: | | |
rustup target add wasm32-unknown-unknown | |
rustup target add wasm32-wasip1 | |
- name: Cache Dependencies | |
uses: Swatinem/rust-cache@v2 | |
- name: Check core crates for wasm32-unknown-unknown | |
run: cargo check -p fe-common -p fe-parser -p fe-hir -p fe-hir-analysis --target wasm32-unknown-unknown | |
- name: Check filesystem crates for wasm32-wasip1 | |
run: cargo check -p fe-driver -p fe-resolver -p fe --target wasm32-wasip1 | |
release: | |
# Only run this when we push a tag | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: ${{ matrix.os }} | |
needs: [lint, test, wasm-wasi-check] | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-latest | |
BIN_FILE: fe_amd64 | |
- os: macOS-latest | |
BIN_FILE: fe_mac | |
steps: | |
- uses: actions/checkout@v5 | |
- name: Install rust | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
- name: Build | |
run: cargo build --all-features --release && strip target/release/fe && mv target/release/fe target/release/${{ matrix.BIN_FILE }} | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: target/release/${{ matrix.BIN_FILE }} | |
prerelease: true | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |