DNRY in workflows with anchors #39
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 | ||
- &cache_toolchain | ||
name: Cache Toolchain | ||
uses: actions/cache@v3 | ||
with: | ||
path: ~/.rustup | ||
key: ${{ runner.os }}-rust-toolchain-${{ hashFiles('rust-toolchain.toml') }} | ||
- &cache_dependencies | ||
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 --test non_transitive_graph_tests | ||
cargo test --test call_chain_analysis_tests | ||
cargo test --test control_flow_tests | ||
cargo test --test new_alias_analysis_tests | ||
cargo test --test async_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 --test external_annotation_tests | ||
format-check: | ||
name: Format Control | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- *cache_toolchain | ||
- name: Perform Check | ||
run: cargo fmt --check | ||
linting: | ||
name: Clippy | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- *cache_toolchain | ||
- *cache_dependencies | ||
- name: Here come the complaints | ||
run: cargo clippy --all -- -D warnings |