A mechanism for diagnostics with context #125
Workflow file for this run
This file contains 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: Rust | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
env: | |
CARGO_TERM_COLOR: always | |
RUST_BACKTRACE: 1 | |
FORGE_REVISION: aa2e8a67a8ff38db145dcb1a1aa5c02d0b851235 | |
racket_version: 8.1 | |
jobs: | |
compiler-tests: | |
name: Compiler Tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
# just triggers rustup to download the toolchain | |
- name: Cache Toolchain | |
uses: actions/cache@v3 | |
with: | |
path: ~/.rustup | |
key: ${{ runner.os }}-rust-toolchain-${{ hashFiles('rust-toolchain.toml') }} | |
- name: Cache Dependencies | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-rust-deps-${{ hashFiles('Cargo.lock', 'rust-toolchain.toml') }} | |
- name: Build | |
run: cargo build --verbose | |
- name: Run tests | |
run: | | |
cargo test -p dfpp --test non_transitive_graph_tests | |
cargo test -p dfpp --test call_chain_analysis_tests | |
cargo test -p dfpp --test control_flow_tests | |
cargo test -p dfpp --test new_alias_analysis_tests | |
cargo test -p dfpp --test async_tests | |
cargo test -p dfpp --test inline_elision_tests | |
intergration-tests: | |
name: Integration Tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Build Compiler | |
run: cargo build --verbose | |
- name: Cache Racket dependencies | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cache/racket | |
~/.local/share/racket | |
key: ${{ runner.os }}-integration-tests-${{ env.racket_version }}-${{ env.FORGE_REVISION }} | |
- name: Install Racket | |
uses: Bogdanp/[email protected] | |
with: | |
architecture: 'x64' | |
distribution: 'full' | |
variant: 'CS' | |
version: ${{ env.racket_version }} | |
- name: Install Forge | |
run: | | |
cd .. | |
git clone https://github.com/tnelson/Forge | |
cd Forge | |
git checkout ${FORGE_REVISION} | |
cd forge | |
raco pkg install --auto || raco setup forge | |
- name: Run Tests | |
run: cargo test -p dfpp --test external_annotation_tests | |
format-check: | |
name: Format Control | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
# just triggers rustup to download the toolchain | |
- name: Cache Toolchain | |
uses: actions/cache@v3 | |
with: | |
path: ~/.rustup | |
key: ${{ runner.os }}-rust-toolchain-${{ hashFiles('rust-toolchain.toml') }} | |
- name: Check main repo | |
run: cargo fmt --check | |
- name: Check properties | |
run: cargo fmt --check | |
working-directory: props | |
linting: | |
name: Clippy | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Cache Toolchain | |
uses: actions/cache@v3 | |
with: | |
path: ~/.rustup | |
key: ${{ runner.os }}-rust-toolchain-${{ hashFiles('rust-toolchain.toml') }} | |
- name: Cache Dependencies | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-rust-deps-${{ hashFiles('Cargo.lock', 'rust-toolchain.toml') }} | |
- name: Here come the complaints | |
run: cargo clippy --all -- -D warnings | |
- name: Complaints about properties | |
run: cargo clippy --all -- -D warnings | |
working-directory: props |