Skip to content

Commit 673554f

Browse files
committed
Auto merge of #5071 - flip1995:gha, r=<try>
[WIP][DNM] Switch to GitHub Actions (maybe?) 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. changelog: none
2 parents 32949da + 16b3e3c commit 673554f

File tree

3 files changed

+115
-50
lines changed

3 files changed

+115
-50
lines changed

.github/workflows/integration.yml

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: Integration
2+
3+
on:
4+
push:
5+
branches:
6+
- auto
7+
- try
8+
paths-ignore:
9+
# Don't run integration test, when only textfiles are modified
10+
- 'rust-toolchain'
11+
- 'COPYRIGHT'
12+
- 'LICENSE-*'
13+
- '**.md'
14+
15+
jobs:
16+
toolchain_setup:
17+
runs-on: ubuntu-latest
18+
19+
steps:
20+
- name: rust-toolchain
21+
uses: actions-rs/[email protected]
22+
with:
23+
toolchain: nightly
24+
target: x86_64-unknown-linux-gnu
25+
profile: minimal
26+
- name: Master Toolchain Setup
27+
run: sh setup_toolchain.sh
28+
29+
build:
30+
needs: toolchain_setup
31+
runs-on: ubuntu-latest
32+
33+
steps:
34+
- name: Build
35+
run: cargo build --features integration
36+
37+
test:
38+
strategy:
39+
fail-fast: false
40+
matrix:
41+
integration:
42+
- 'rust-lang/rls'
43+
- 'rust-lang/cargo'
44+
- 'rust-lang/chalk'
45+
- 'Geal/nom'
46+
- 'rust-lang/rustfmt'
47+
- 'hyperium/hyper'
48+
- 'rust-itertools/itertools'
49+
- 'serde-rs/serde'
50+
- 'rust-lang/stdarch'
51+
- 'rust-random/rand'
52+
- 'rust-lang/futures-rs'
53+
- 'Marwes/combine'
54+
- 'rust-lang-nursery/failure'
55+
- 'rust-lang/log'
56+
- 'chronotope/chrono'
57+
58+
needs: [toolchain_setup, build]
59+
runs-on: ubuntu-latest
60+
61+
steps:
62+
- name: Test ${{ matrix.integration }}
63+
run: cargo test --test integration --features integration
64+
env:
65+
INTEGRATION: ${{ matrix.integration }}

.travis.yml

+49-49
Original file line numberDiff line numberDiff line change
@@ -63,57 +63,57 @@ matrix:
6363
# Builds that are executed for every PR
6464
- os: linux
6565
# i686 toolchain could run on x86_64 system.
66-
- os: linux
67-
env: HOST_TOOLCHAIN=i686-unknown-linux-gnu
68-
addons:
69-
apt:
70-
packages:
71-
- gcc-multilib
72-
- libssl-dev:i386 # openssl dev in Cargo.toml
73-
if: branch IN (auto, try)
74-
- os: windows
75-
env: CARGO_INCREMENTAL=0 OS_WINDOWS=true
66+
# - os: linux
67+
# env: HOST_TOOLCHAIN=i686-unknown-linux-gnu
68+
# addons:
69+
# apt:
70+
# packages:
71+
# - gcc-multilib
72+
# - libssl-dev:i386 # openssl dev in Cargo.toml
73+
# if: branch IN (auto, try)
74+
# - os: windows
75+
# env: CARGO_INCREMENTAL=0 OS_WINDOWS=true
7676

77-
# Builds that are only executed when a PR is r+ed or a try build is started
78-
# We don't want to run these always because they go towards
79-
# the build limit within the Travis rust-lang account.
80-
# The jobs are approximately sorted by execution time
81-
- os: osx
82-
if: branch IN (auto, try)
83-
- env: INTEGRATION=rust-lang/rls
84-
if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
85-
- env: INTEGRATION=rust-lang/cargo
86-
if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
87-
- env: INTEGRATION=rust-lang/chalk
88-
if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
89-
- env: INTEGRATION=Geal/nom
90-
if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
91-
- env: INTEGRATION=rust-lang/rustfmt
92-
if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
93-
- env: INTEGRATION=hyperium/hyper
94-
if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
95-
- env: INTEGRATION=rust-itertools/itertools
96-
if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
97-
# FIXME: rustc ICE on `serde_test_suite`
98-
# - env: INTEGRATION=serde-rs/serde
77+
# # Builds that are only executed when a PR is r+ed or a try build is started
78+
# # We don't want to run these always because they go towards
79+
# # the build limit within the Travis rust-lang account.
80+
# # The jobs are approximately sorted by execution time
81+
# - os: osx
82+
# if: branch IN (auto, try)
83+
# - env: INTEGRATION=rust-lang/rls
84+
# if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
85+
# - env: INTEGRATION=rust-lang/cargo
86+
# if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
87+
# - env: INTEGRATION=rust-lang/chalk
88+
# if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
89+
# - env: INTEGRATION=Geal/nom
90+
# if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
91+
# - env: INTEGRATION=rust-lang/rustfmt
92+
# if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
93+
# - env: INTEGRATION=hyperium/hyper
94+
# if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
95+
# - env: INTEGRATION=rust-itertools/itertools
96+
# if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
97+
# # FIXME: rustc ICE on `serde_test_suite`
98+
# # - env: INTEGRATION=serde-rs/serde
99+
# # if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
100+
# - env: INTEGRATION=rust-lang/stdarch
101+
# if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
102+
# - env: INTEGRATION=rust-random/rand
103+
# if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
104+
# - env: INTEGRATION=rust-lang/futures-rs
105+
# if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
106+
# - env: INTEGRATION=Marwes/combine
107+
# if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
108+
# - env: INTEGRATION=rust-lang-nursery/failure
109+
# if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
110+
# - env: INTEGRATION=rust-lang/log
111+
# if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
112+
# - env: INTEGRATION=chronotope/chrono
99113
# if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
100-
- env: INTEGRATION=rust-lang/stdarch
101-
if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
102-
- env: INTEGRATION=rust-random/rand
103-
if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
104-
- env: INTEGRATION=rust-lang/futures-rs
105-
if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
106-
- env: INTEGRATION=Marwes/combine
107-
if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
108-
- env: INTEGRATION=rust-lang-nursery/failure
109-
if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
110-
- env: INTEGRATION=rust-lang/log
111-
if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
112-
- env: INTEGRATION=chronotope/chrono
113-
if: repo =~ /^rust-lang\/rust-clippy$/ AND branch IN (auto, try)
114-
allow_failures:
115-
- os: windows
116-
env: CARGO_INCREMENTAL=0 OS_WINDOWS=true
114+
# allow_failures:
115+
# - os: windows
116+
# env: CARGO_INCREMENTAL=0 OS_WINDOWS=true
117117

118118
before_script:
119119
- |

appveyor.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ branches:
1212
# Only build AppVeyor on r+ and try branch
1313
only:
1414
- auto
15-
- try
15+
# - try
1616

1717
cache:
1818
- '%USERPROFILE%\.cargo'

0 commit comments

Comments
 (0)