-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Auto merge of #5071 - flip1995:gha, r=<try>
[WIP][DNM] Switch to GitHub Actions cc #4577 This is just an experiment. I don't think we have a consensus _if_ we should move away from travis/appveyor. GHA would let us run up to 20 concurrent jobs. Since we have 15 integration tests and 4 (linux, linux 32-bit, macos, windows) basic tests, we would be able to run everything concurrently. ~~Also IIUC we only have to build Clippy once for every initegration test and then only check the repos.~~ Nope, dependent jobs exist, but they won't keep the artifacts (not even the checkout). TODO before merge: - [ ] Add `DEPLOY_KEY` secret to github repo - [ ] test deployment on test branch `gh-test` - [ ] talk with `@rust-lang/infra` for bors - [ ] Add GHA badge to Cargo.toml (blocked on rust-lang/crates.io#1838) - [ ] Add back travis + appveyor files for transition period (?) changelog: none
- Loading branch information
Showing
24 changed files
with
711 additions
and
506 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
Binary file not shown.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
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' | ||
GHA_CI: 1 | ||
|
||
jobs: | ||
base: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: rust-toolchain | ||
uses: actions-rs/toolchain@v1.0.3 | ||
with: | ||
toolchain: nightly | ||
target: x86_64-unknown-linux-gnu | ||
profile: minimal | ||
- name: Cache cargo dir | ||
uses: actions/cache@v1 | ||
with: | ||
path: ~/.cargo | ||
key: ${{ runner.os }}-x86_64-unknown-linux-gnu | ||
- name: Checkout | ||
uses: actions/checkout@v2.0.0 | ||
- name: Master Toolchain Setup | ||
run: bash setup-toolchain.sh | ||
|
||
- name: Set LD_LIBRARY_PATH (Linux) | ||
run: | | ||
SYSROOT=$(rustc --print sysroot) | ||
echo "::set-env name=LD_LIBRARY_PATH::${SYSROOT}/lib${LD_LIBRARY_PATH+:${LD_LIBRARY_PATH}}" | ||
- 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: | | ||
( | ||
set -ex | ||
# Check sysroot handling | ||
sysroot=$(./target/debug/clippy-driver --print sysroot) | ||
test "$sysroot" = "$(rustc --print sysroot)" | ||
desired_sysroot=/tmp | ||
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 | ||
) | ||
- name: Run cargo-cache --autoclean | ||
run: | | ||
cargo install cargo-cache --debug | ||
find ~/.cargo/bin ! -type d -exec strip {} \; | ||
cargo cache --autoclean |
Oops, something went wrong.