name: Clippy Test on: push: # Ignore bors branches, since they are covered by `clippy_bors.yml` branches-ignore: - auto - try # Don't run Clippy tests, when only textfiles were modified paths-ignore: - 'COPYRIGHT' - 'LICENSE-*' - '**.md' - '**.txt' pull_request: # Don't run Clippy tests, when only textfiles were modified paths-ignore: - 'COPYRIGHT' - 'LICENSE-*' - '**.md' - '**.txt' env: RUST_BACKTRACE: 1 CARGO_TARGET_DIR: '${{ github.workspace }}/target' NO_FMT_TEST: 1 jobs: base: runs-on: ubuntu-latest steps: # Setup - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master with: github_token: "${{ secrets.github_token }}" - name: rust-toolchain uses: actions-rs/toolchain@v1.0.6 with: toolchain: nightly target: x86_64-unknown-linux-gnu profile: minimal - name: Checkout uses: actions/checkout@v2.3.3 - name: Run cargo update run: cargo update - name: Cache cargo dir uses: actions/cache@v2 with: path: ~/.cargo key: ${{ runner.os }}-x86_64-unknown-linux-gnu-${{ hashFiles('Cargo.lock') }} restore-keys: | ${{ runner.os }}-x86_64-unknown-linux-gnu - name: Master Toolchain Setup run: bash setup-toolchain.sh # Run - name: Set LD_LIBRARY_PATH (Linux) run: | SYSROOT=$(rustc --print sysroot) echo "LD_LIBRARY_PATH=${SYSROOT}/lib${LD_LIBRARY_PATH+:${LD_LIBRARY_PATH}}" >> $GITHUB_ENV - name: Build run: cargo build --features deny-warnings - name: Test run: cargo test --features deny-warnings - name: Test clippy_lints run: cargo test --features deny-warnings working-directory: clippy_lints - name: Test rustc_tools_util run: cargo test --features deny-warnings working-directory: rustc_tools_util - name: Test clippy_dev run: cargo test --features deny-warnings working-directory: clippy_dev - name: Test cargo-clippy run: ../target/debug/cargo-clippy working-directory: clippy_workspace_tests - name: Test clippy-driver run: bash .github/driver.sh env: OS: ${{ runner.os }} - name: Test cargo dev new lint run: | cargo dev new_lint --name new_early_pass --pass early cargo dev new_lint --name new_late_pass --pass late cargo check git reset --hard HEAD # Cleanup - name: Run cargo-cache --autoclean run: | cargo +nightly install cargo-cache --no-default-features --features ci-autoclean cargo-cache cargo cache