diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml new file mode 100644 index 000000000000..7ce204fdd2b4 --- /dev/null +++ b/.github/workflows/integration.yml @@ -0,0 +1,72 @@ +name: Integration + +on: + push: + branches: + - auto + - try + paths-ignore: + # Don't run integration test, when only textfiles are modified + - 'rust-toolchain' + - 'COPYRIGHT' + - 'LICENSE-*' + - '**.md' + +env: + RUST_BACKTRACE: 1 + +jobs: + integration: + strategy: + fail-fast: false + matrix: + integration: + - 'rust-lang/rls' + - 'rust-lang/cargo' + - 'rust-lang/chalk' + - 'Geal/nom' + - 'rust-lang/rustfmt' + - 'hyperium/hyper' + - 'rust-itertools/itertools' + - 'serde-rs/serde' + - 'rust-lang/stdarch' + - 'rust-random/rand' + - 'rust-lang/futures-rs' + - 'Marwes/combine' + - 'rust-lang-nursery/failure' + - 'rust-lang/log' + - 'chronotope/chrono' + 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: Checkout + uses: actions/checkout@v2.0.0 + - name: Cache cargo registry + uses: actions/cache@v1 + with: + path: ~/.cargo/registry + key: ${{ runner.os }}-cargo-registry + - name: Cache cargo index + uses: actions/cache@v1 + with: + path: ~/.cargo/git + key: ${{ runner.os }}-cargo-index + - name: Cache cargo build + uses: actions/cache@v1 + with: + path: target + key: ${{ runner.os }}-cargo-build-target + - name: Master Toolchain Setup + run: bash setup-toolchain.sh + - name: Build + run: cargo build --features integration + - name: Test ${{ matrix.integration }} + run: cargo test --test integration --features integration + env: + INTEGRATION: ${{ matrix.integration }} diff --git a/.travis.yml b/.travis.yml index bd3003d45977..366bbade847c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -63,57 +63,57 @@ matrix: # Builds that are executed for every PR - os: linux # i686 toolchain could run on x86_64 system. - - os: linux - env: HOST_TOOLCHAIN=i686-unknown-linux-gnu - addons: - apt: - packages: - - gcc-multilib - - libssl-dev:i386 # openssl dev in Cargo.toml - if: branch IN (auto, try) - - os: windows - env: CARGO_INCREMENTAL=0 OS_WINDOWS=true + # - os: linux + # env: HOST_TOOLCHAIN=i686-unknown-linux-gnu + # addons: + # apt: + # packages: + # - gcc-multilib + # - libssl-dev:i386 # openssl dev in Cargo.toml + # if: branch IN (auto, try) + # - os: windows + # env: CARGO_INCREMENTAL=0 OS_WINDOWS=true - # Builds that are only executed when a PR is r+ed or a try build is started - # We don't want to run these always because they go towards - # the build limit within the Travis rust-lang account. - # The jobs are approximately sorted by execution time - - os: osx - if: branch IN (auto, try) - - env: INTEGRATION=rust-lang/rls - if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) - - env: INTEGRATION=rust-lang/cargo - if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) - - env: INTEGRATION=rust-lang/chalk - if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) - - env: INTEGRATION=Geal/nom - if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) - - env: INTEGRATION=rust-lang/rustfmt - if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) - - env: INTEGRATION=hyperium/hyper - if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) - - env: INTEGRATION=rust-itertools/itertools - if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) - # FIXME: rustc ICE on `serde_test_suite` - # - env: INTEGRATION=serde-rs/serde + # # Builds that are only executed when a PR is r+ed or a try build is started + # # We don't want to run these always because they go towards + # # the build limit within the Travis rust-lang account. + # # The jobs are approximately sorted by execution time + # - os: osx + # if: branch IN (auto, try) + # - env: INTEGRATION=rust-lang/rls + # if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) + # - env: INTEGRATION=rust-lang/cargo + # if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) + # - env: INTEGRATION=rust-lang/chalk + # if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) + # - env: INTEGRATION=Geal/nom + # if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) + # - env: INTEGRATION=rust-lang/rustfmt + # if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) + # - env: INTEGRATION=hyperium/hyper + # if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) + # - env: INTEGRATION=rust-itertools/itertools + # if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) + # # FIXME: rustc ICE on `serde_test_suite` + # # - env: INTEGRATION=serde-rs/serde + # # if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) + # - env: INTEGRATION=rust-lang/stdarch + # if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) + # - env: INTEGRATION=rust-random/rand + # if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) + # - env: INTEGRATION=rust-lang/futures-rs + # if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) + # - env: INTEGRATION=Marwes/combine + # if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) + # - env: INTEGRATION=rust-lang-nursery/failure + # if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) + # - env: INTEGRATION=rust-lang/log + # if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) + # - env: INTEGRATION=chronotope/chrono # if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) - - env: INTEGRATION=rust-lang/stdarch - if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) - - env: INTEGRATION=rust-random/rand - if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) - - env: INTEGRATION=rust-lang/futures-rs - if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) - - env: INTEGRATION=Marwes/combine - if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) - - env: INTEGRATION=rust-lang-nursery/failure - if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) - - env: INTEGRATION=rust-lang/log - if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) - - env: INTEGRATION=chronotope/chrono - if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try) - allow_failures: - - os: windows - env: CARGO_INCREMENTAL=0 OS_WINDOWS=true +# allow_failures: + # - os: windows + # env: CARGO_INCREMENTAL=0 OS_WINDOWS=true before_script: - | diff --git a/appveyor.yml b/appveyor.yml index bf6133e98a06..413ba3437718 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -12,7 +12,7 @@ branches: # Only build AppVeyor on r+ and try branch only: - auto - - try + # - try cache: - '%USERPROFILE%\.cargo'