forked from cloudflare/quiche
-
Notifications
You must be signed in to change notification settings - Fork 0
130 lines (105 loc) · 4.18 KB
/
nightly.yml
File metadata and controls
130 lines (105 loc) · 4.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
on: [push, pull_request]
name: Nightly
permissions:
contents: read
pull-requests: write
env:
FEATURES: "async,ffi,qlog"
RUSTFLAGS: "-D warnings"
RUSTDOCFLAGS: "--cfg docsrs"
RUSTTOOLCHAIN: "nightly"
concurrency:
group: ${{ github.ref }}-nightly
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
jobs:
quiche_nightly:
runs-on: ubuntu-latest
# Only run on "pull_request" event for external PRs. This is to avoid
# duplicate builds for PRs created from internal branches.
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
steps:
- name: Checkout sources
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install nightly toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUSTTOOLCHAIN }}
- name: Run cargo test
run: cargo test --verbose --all-targets --features=${{ env.FEATURES }}
# Need to run doc tests separately.
# (https://github.com/rust-lang/cargo/issues/6669)
- name: Run cargo doc test
run: cargo test --verbose --doc --features=${{ env.FEATURES }}
# NOTE: this is disabled as it fails when building changes that bump
# version of local crates (e.g. when doing a `qlog` release) that have not
# been published yet, and we couldn't find a workaround.
#
# - name: Run cargo package
# run: cargo package --verbose --workspace --exclude=quiche_apps --allow-dirty
- name: Run cargo doc
run: cargo doc --no-deps --all-features --document-private-items
- name: Build C examples
run: |
sudo apt-get install libev-dev uthash-dev
make -C quiche/examples
fuzz:
runs-on: ubuntu-latest
# Only run on "pull_request" event for external PRs. This is to avoid
# duplicate builds for PRs created from internal branches.
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
steps:
- name: Checkout sources
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install nightly toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUSTTOOLCHAIN }}
- name: Install cargo-fuzz
run: cargo install cargo-fuzz
- name: Run cargo fuzz for packet_recv_client
run: cargo fuzz run packet_recv_client -- -runs=1
- name: Run cargo fuzz for packet_recv_server
run: cargo fuzz run packet_recv_server -- -runs=1
- name: Run cargo fuzz for qpack_decode
run: cargo fuzz run qpack_decode -- -runs=1
http3_test_nightly:
runs-on: ubuntu-latest
# Only run on "pull_request" event for external PRs. This is to avoid
# duplicate builds for PRs created from internal branches.
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
steps:
- name: Checkout sources
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install nightly toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUSTTOOLCHAIN }}
- name: Run cargo test
run: cargo test --no-run --verbose --manifest-path=tools/http3_test/Cargo.toml
fmt:
runs-on: ubuntu-latest
# Only run on "pull_request" event for external PRs. This is to avoid
# duplicate builds for PRs created from internal branches.
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
steps:
- name: Checkout sources
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install nightly toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUSTTOOLCHAIN }}
components: rustfmt
- name: Run cargo fmt - quiche
run: cargo fmt -- --check
- name: Run cargo fmt - http3_test
run: cargo fmt --manifest-path=tools/http3_test/Cargo.toml -- --check
- name: Run cargo fmt - fuzz
run: cargo fmt --manifest-path=fuzz/Cargo.toml -- --check