File tree 8 files changed +222
-116
lines changed
8 files changed +222
-116
lines changed Original file line number Diff line number Diff line change
1
+ # Builds the proxy as if it were a release.
2
+ name : build
3
+
4
+ permissions :
5
+ contents : read
6
+
7
+ on :
8
+ pull_request :
9
+ paths :
10
+ # We don't run this workflow on dependency changes. It's mainly intended to determine how long
11
+ # a release build takes given Linkerd changes. We don't really need to run this on every
12
+ # dependabot change, though.
13
+ - linkerd/**
14
+ - linkerd2-proxy/**
15
+ - .github/workflows/build.yml
16
+
17
+ env :
18
+ CARGO_INCREMENTAL : 0
19
+ CARGO_NET_RETRY : 10
20
+ RUST_BACKTRACE : short
21
+ RUSTUP_MAX_RETRIES : 10
22
+
23
+ jobs :
24
+ release :
25
+ timeout-minutes : 20
26
+ runs-on : ubuntu-latest
27
+ steps :
28
+ - uses : actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
29
+ - env :
30
+ CARGO_RELEASE : " 1"
31
+ run : make build
Original file line number Diff line number Diff line change
1
+ # Check each crate independently. Helps to catch dependency issues.
2
+ name : check-each
3
+
4
+ permissions :
5
+ contents : read
6
+
7
+ on :
8
+ pull_request :
9
+ paths :
10
+ - Cargo.lock
11
+ - linkerd/**
12
+ - linkerd2-proxy/**
13
+ - .github/workflows/check-each.yml
14
+
15
+ env :
16
+ CARGO_INCREMENTAL : 0
17
+ CARGO_NET_RETRY : 10
18
+ RUST_BACKTRACE : short
19
+ RUSTUP_MAX_RETRIES : 10
20
+
21
+ jobs :
22
+ enumerate :
23
+ timeout-minutes : 1
24
+ runs-on : ubuntu-latest
25
+ env :
26
+ DEBIAN_FRONTEND : noninteractive
27
+ steps :
28
+ - run : apt update && apt install -y jo
29
+ - id : enumerate
30
+ run : |
31
+ dirs() {
32
+ for toml in $(find . -mindepth 2 \
33
+ -not -path '*/fuzz/*' \
34
+ -not -path './linkerd/meshtls/boring/*' \
35
+ -name Cargo.toml \
36
+ | sort -r)
37
+ do
38
+ echo "${toml%/*}"
39
+ done
40
+ }
41
+ echo "::set-output name=dirs::$(dirs | jo -a)"
42
+ outputs :
43
+ dirs : ${{ steps.enumerate.outputs.dirs }}`
44
+
45
+ check :
46
+ needs : enumerate
47
+ timeout-minutes : 20
48
+ runs-on : ubuntu-latest
49
+ strategy :
50
+ matrix :
51
+ dir : ${{ fromJson(needs.enumerate.outputs.dirs) }}
52
+ container :
53
+ image : docker://rust:1.56.1-buster
54
+ steps :
55
+ - uses : actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
56
+ - name : check ${{ matrix.dir }}
57
+ run : cd ${{ matrix.dir }} && cargo check --all-targets
58
+
Original file line number Diff line number Diff line change 1
1
name : Coverage
2
2
3
- # Run daily at 11AM UTC (3AM PST).
3
+ permissions :
4
+ contents : read
5
+
4
6
on :
7
+ pull_request :
8
+ paths :
9
+ - .github/workflows/coverage.yml
5
10
schedule :
6
- # cron: minute hour day month day-of-week
11
+ # Run daily at 11AM UTC (3AM PST).
7
12
- cron : ' 0 11 * * *'
8
13
9
14
env :
10
15
CARGO_INCREMENTAL : 0
11
16
CARGO_NET_RETRY : 10
12
17
CARGO_TARPAULIN_VERSION : 0.18.5
18
+ DEBIAN_FRONTEND : noninteractive
13
19
RUST_BACKTRACE : short
14
20
RUSTUP_MAX_RETRIES : 10
15
21
16
- permissions :
17
- contents : read
18
-
19
22
jobs :
20
23
test :
21
24
name : codecov
Original file line number Diff line number Diff line change
1
+ # Each job should typically run in under 5 minutes.
2
+ name : deps
3
+
4
+ permissions :
5
+ contents : read
6
+
7
+ on :
8
+ pull_request :
9
+ paths :
10
+ - Cargo.lock
11
+ - .github/workflows/deps.yml
12
+
13
+ env :
14
+ CARGO_INCREMENTAL : 0
15
+ CARGO_NET_RETRY : 10
16
+ RUST_BACKTRACE : short
17
+ RUSTUP_MAX_RETRIES : 10
18
+
19
+ jobs :
20
+ # Check for security advisories.
21
+ #
22
+ # Failures are not fatal, since issues are opened in the linkerd2 repo, via rustsecbot.
23
+ advisories :
24
+ timeout-minutes : 10
25
+ runs-on : ubuntu-latest
26
+ continue-on-error : true
27
+ steps :
28
+ - uses : actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
29
+ - uses : EmbarkStudios/cargo-deny-action@4340bbf5bc9e7034fae7c4857e9ab87cab35c905
30
+ with :
31
+ command : check advisories
32
+
33
+ # Audit licenses, unreleased crates, and unexpected duplicate versions.
34
+ bans :
35
+ timeout-minutes : 10
36
+ runs-on : ubuntu-latest
37
+ steps :
38
+ - uses : actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
39
+ - uses : EmbarkStudios/cargo-deny-action@4340bbf5bc9e7034fae7c4857e9ab87cab35c905
40
+ with :
41
+ command : check bans licenses sources
Original file line number Diff line number Diff line change 1
- # Each job typically runs for more than 5 minutes.
2
- name : slow
1
+ # Run integration tests
2
+ name : integration
3
+
4
+ permissions :
5
+ contents : read
3
6
4
7
on :
5
- pull_request : {}
8
+ pull_request :
9
+ paths :
10
+ - Cargo.lock
11
+ - linkerd/**
12
+ - linkerd2-proxy/**
13
+ - .github/workflows/integration.yml
6
14
7
15
env :
8
16
CARGO_INCREMENTAL : 0
9
17
CARGO_NET_RETRY : 10
10
18
RUST_BACKTRACE : short
11
19
RUSTUP_MAX_RETRIES : 10
12
20
13
- permissions :
14
- contents : read
15
-
21
+ # Run only the app-level tests. These may take longer to compile (usually due to very large stack
22
+ # types) and have the potential to be flakey as they depend on opening sockets and may have timing
23
+ # sensitivity.
16
24
jobs :
17
-
18
- # Iterate through all (non-fuzzer) sub-crates to ensure each compiles independently.
19
- check-each-crate :
20
- timeout-minutes : 20
21
- runs-on : ubuntu-latest
22
- container :
23
- image : docker://rust:1.56.1-buster
24
- steps :
25
- - uses : actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
26
- - run : |
27
- for toml in $(find . -mindepth 2 \
28
- -not -path '*/fuzz/*' \
29
- -not -path './linkerd/meshtls/boring/*' \
30
- -name Cargo.toml \
31
- | sort -r)
32
- do
33
- d="${toml%/*}"
34
- echo "# $d"
35
- (cd $d ; cargo check --all-targets)
36
- done
37
-
38
- check-release :
39
- timeout-minutes : 20
40
- runs-on : ubuntu-latest
41
- steps :
42
- - uses : actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
43
- - env :
44
- CARGO_RELEASE : " 1"
45
- run : make build
46
-
47
- # Run only the app-level tests. These may take longer to compile (usually due to very large stack
48
- # types) and have the potential to be flakey as they depend on opening sockets and may have timing
49
- # sensitivity.
50
- test-integration :
25
+ test :
51
26
timeout-minutes : 20
52
27
runs-on : ubuntu-latest
53
28
container :
Original file line number Diff line number Diff line change
1
+ # Each job should typically run in under 5 minutes.
2
+ name : fast
3
+
4
+ permissions :
5
+ contents : read
6
+
7
+ on :
8
+ pull_request :
9
+ paths :
10
+ - linkerd/**/*.rs
11
+ - linkerd2-proxy/**/*.rs
12
+ - .github/workflows/lint.yml
13
+
14
+ env :
15
+ CARGO_INCREMENTAL : 0
16
+ CARGO_NET_RETRY : 10
17
+ RUST_BACKTRACE : short
18
+ RUSTUP_MAX_RETRIES : 10
19
+
20
+ jobs :
21
+ clippy :
22
+ timeout-minutes : 10
23
+ runs-on : ubuntu-latest
24
+ container :
25
+ image : docker://rust:1.56.1-buster
26
+ steps :
27
+ - uses : actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
28
+ - run : rustup component add clippy
29
+ - run : cargo clippy --all --exclude=linkerd-meshtls-boring
30
+
31
+ fmt :
32
+ timeout-minutes : 10
33
+ runs-on : ubuntu-latest
34
+ container :
35
+ image : docker://rust:1.56.1-buster
36
+ steps :
37
+ - uses : actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
38
+ - run : rustup component add rustfmt
39
+ - run : make check-fmt
40
+
41
+ docs :
42
+ timeout-minutes : 10
43
+ runs-on : ubuntu-latest
44
+ container :
45
+ image : docker://rust:1.56.1-buster
46
+ steps :
47
+ - uses : actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
48
+ - run : |
49
+ cargo doc --all --no-deps \
50
+ --exclude=linkerd-meshtls \
51
+ --exclude=linkerd-meshtls-boring \
52
+ --exclude=linkerd-meshtls-rustls
53
+
Original file line number Diff line number Diff line change 2
2
# stable.
3
3
name : nightly
4
4
5
+ permissions :
6
+ contents : read
7
+
5
8
on :
6
9
pull_request :
7
10
paths :
16
19
RUST_BACKTRACE : short
17
20
RUSTUP_MAX_RETRIES : 10
18
21
19
- permissions :
20
- contents : read
21
-
22
22
jobs :
23
23
build :
24
24
runs-on : ubuntu-latest
You can’t perform that action at this time.
0 commit comments