diff options
| author | flip1995 <hello@philkrones.com> | 2020-01-21 18:43:57 +0100 |
|---|---|---|
| committer | flip1995 <hello@philkrones.com> | 2020-02-12 09:34:25 +0100 |
| commit | d14ee8a4b1f41121d799c3f5b868d916ac0f24bd (patch) | |
| tree | 8218fd5b43fdc70ca563c50bf1a9419eb5e0d39f | |
| parent | 757bbf7feb2e9ed1e4d8cc547390608654e8191e (diff) | |
| download | rust-d14ee8a4b1f41121d799c3f5b868d916ac0f24bd.tar.gz rust-d14ee8a4b1f41121d799c3f5b868d916ac0f24bd.zip | |
Add Clippy Test (bors) to GHA
| -rw-r--r-- | .github/workflows/clippy_bors.yml | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/.github/workflows/clippy_bors.yml b/.github/workflows/clippy_bors.yml new file mode 100644 index 00000000000..6a6d58410f9 --- /dev/null +++ b/.github/workflows/clippy_bors.yml @@ -0,0 +1,146 @@ +name: Clippy Test (bors) + +on: + push: + branches: [auto, try] + # 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' + GHA_CI: 1 + +jobs: + base: + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + host: [x86_64-unknown-linux-gnu, i686-unknown-linux-gnu, x86_64-apple-darwin, x86_64-pc-windows-msvc] + exclude: + - os: ubuntu-latest + host: x86_64-apple-darwin + - os: ubuntu-latest + host: x86_64-pc-windows-msvc + - os: macos-latest + host: x86_64-unknown-linux-gnu + - os: macos-latest + host: i686-unknown-linux-gnu + - os: macos-latest + host: x86_64-pc-windows-msvc + - os: windows-latest + host: x86_64-unknown-linux-gnu + - os: windows-latest + host: i686-unknown-linux-gnu + - os: windows-latest + host: x86_64-apple-darwin + + runs-on: ${{ matrix.os }} + + steps: + - name: Install dependencies (Linux-i686) + run: | + sudo dpkg --add-architecture i386 + sudo apt-get update + sudo apt-get install gcc-multilib libssl-dev:i386 libgit2-dev:i386 + if: matrix.host == 'i686-unknown-linux-gnu' + - name: rust-toolchain + uses: actions-rs/toolchain@v1.0.3 + with: + toolchain: nightly + target: ${{ matrix.host }} + profile: minimal + - name: Cache cargo dir + uses: actions/cache@v1 + with: + path: ~/.cargo + key: ${{ runner.os }}-${{ matrix.host }} + - name: Checkout + uses: actions/checkout@v2.0.0 + - name: Master Toolchain Setup + run: bash setup-toolchain.sh + env: + HOST_TOOLCHAIN: ${{ matrix.host }} + shell: bash + + - name: Set LD_LIBRARY_PATH (Linux) + if: runner.os == 'Linux' + run: | + SYSROOT=$(rustc --print sysroot) + echo "::set-env name=LD_LIBRARY_PATH::${SYSROOT}/lib${LD_LIBRARY_PATH+:${LD_LIBRARY_PATH}}" + - name: Link rustc dylib (MacOS) + if: runner.os == 'macOS' + run: | + SYSROOT=$(rustc --print sysroot) + sudo mkdir -p /usr/local/lib + sudo find "${SYSROOT}/lib" -maxdepth 1 -name '*dylib' -exec ln -s {} /usr/local/lib \; + - name: Set PATH (Windows) + if: runner.os == 'Windows' + run: | + $sysroot = rustc --print sysroot + $env:PATH += ';' + $sysroot + '\bin' + echo "::set-env name=PATH::$env:PATH" + - name: Build + run: cargo build --features deny-warnings + shell: bash + - name: Test + run: cargo test --features deny-warnings + shell: bash + - name: Test clippy_lints + run: cargo test --features deny-warnings + shell: bash + working-directory: clippy_lints + - name: Test rustc_tools_util + run: cargo test --features deny-warnings + shell: bash + working-directory: rustc_tools_util + - name: Test clippy_dev + run: cargo test --features deny-warnings + shell: bash + working-directory: clippy_dev + - name: Test cargo-clippy + run: ../target/debug/cargo-clippy + shell: bash + working-directory: clippy_workspace_tests + - name: Test clippy-driver + run: | + ( + set -ex + # Check sysroot handling + sysroot=$(./target/debug/clippy-driver --print sysroot) + test "$sysroot" = "$(rustc --print sysroot)" + + if [[ ${{ runner.os }} == "Windows" ]]; then + desired_sysroot=C:/tmp + else + desired_sysroot=/tmp + fi + sysroot=$(./target/debug/clippy-driver --sysroot $desired_sysroot --print sysroot) + test "$sysroot" = $desired_sysroot + + sysroot=$(SYSROOT=$desired_sysroot ./target/debug/clippy-driver --print sysroot) + test "$sysroot" = $desired_sysroot + + # Make sure this isn't set - clippy-driver should cope without it + unset CARGO_MANIFEST_DIR + + # Run a lint and make sure it produces the expected output. It's also expected to exit with code 1 + # FIXME: How to match the clippy invocation in compile-test.rs? + ./target/debug/clippy-driver -Dwarnings -Aunused -Zui-testing --emit metadata --crate-type bin tests/ui/cstring.rs 2> cstring.stderr && exit 1 + sed -e 's,tests/ui,$DIR,' -e '/= help/d' cstring.stderr > normalized.stderr + diff normalized.stderr tests/ui/cstring.stderr + + # TODO: CLIPPY_CONF_DIR / CARGO_MANIFEST_DIR + ) + shell: bash + + - name: Run cargo-cache --autoclean + run: | + cargo install cargo-cache --debug + /usr/bin/find ~/.cargo/bin ! -type d -exec strip {} \; + cargo cache --autoclean + shell: bash |
