File: build.yml

package info (click to toggle)
rust-oxhttp 0.3.1-8
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 328 kB
  • sloc: makefile: 2; sh: 1
file content (151 lines) | stat: -rw-r--r-- 4,905 bytes parent folder | download
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
name: build

on:
  pull_request:
    branches:
      - main
  push:
    branches:
      - main
  schedule:
    - cron: "12 3 * * 0"

jobs:
  fmt:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: rustup component add rustfmt
      - run: cargo fmt -- --check

  clippy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: rustup default 1.82.0 && rustup component add clippy
      - uses: Swatinem/rust-cache@v2
      - run: cargo clippy --all-targets -- -D warnings -D clippy::all
      - run: cargo clippy --all-targets --features native-tls -- -D warnings -D clippy::all
      - run: cargo clippy --all-targets --features rustls-ring-native -- -D warnings -D clippy::all
      - run: cargo clippy --all-targets --features rustls-ring-webpki -- -D warnings -D clippy::all
      - run: cargo clippy --all-targets --features rustls-aws-lc-native -- -D warnings -D clippy::all
      - run: cargo clippy --all-targets --features rustls-aws-lc-webpki -- -D warnings -D clippy::all
      - run: cargo clippy --all-targets --features flate2 -- -D warnings -D clippy::all
      - run: cargo clippy --all-targets --all-features -- -D warnings -D clippy::all

  test:
    strategy:
      matrix:
        os: [ ubuntu-latest, macos-latest, windows-latest ]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4
      - run: rustup update
      - uses: Swatinem/rust-cache@v2
      - run: cargo test
      - run: cargo test --features native-tls
      - run: cargo test --features rustls-ring-native
      - run: cargo test --features rustls-ring-webpki
        if: ${{ matrix.os != 'windows-latest' }}
      - run: cargo test --features rustls-aws-lc-native
        if: ${{ matrix.os != 'windows-latest' }}
      - run: cargo test --features rustls-aws-lc-webpki
        if: ${{ matrix.os != 'windows-latest' }}
      - run: cargo test --features flate2
      - run: cargo test --all-features
        if: ${{ matrix.os != 'windows-latest' }}

  test_msv:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true
      - run: rustup toolchain install nightly && rustup default 1.74.0
      - uses: Swatinem/rust-cache@v2
      - run: cargo +nightly update -Z direct-minimal-versions
        env:
          CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS: fallback
      - run: cargo test
      - run: cargo test --features native-tls
      - run: cargo test --features rustls-ring-native
      - run: cargo test --features rustls-ring-webpki
      - run: cargo test --features rustls-aws-lc-native
      - run: cargo test --features rustls-aws-lc-webpki
      - run: cargo test --features flate2
      - run: cargo test --all-features

  rustdoc:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: rustup override set 1.82.0
      - uses: Swatinem/rust-cache@v2
      - run: cargo doc --all-features --no-deps
        env:
          RUSTDOCFLAGS: -D warnings

  deny:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: taiki-e/install-action@v2
        with: { tool: cargo-deny }
      - run: cargo deny check

  semver_checks:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true
      - uses: Swatinem/rust-cache@v2
      - uses: taiki-e/install-action@v2
        with: { tool: cargo-semver-checks }
      - run: cargo semver-checks check-release

  typos:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: taiki-e/install-action@v2
        with: { tool: typos-cli }
      - run: typos

  codecov:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true
      - uses: Swatinem/rust-cache@v2
      - uses: taiki-e/install-action@v2
        with: { tool: cargo-llvm-cov }
      - run: |
          source <(cargo llvm-cov show-env --export-prefix)
          export CARGO_TARGET_DIR=$CARGO_LLVM_COV_TARGET_DIR
          cargo llvm-cov clean --workspace
          cargo test --features native-tls
          cargo test --features rustls-ring-native
          cargo test --features rustls-ring-webpki
          cargo test --features flate2
          cargo llvm-cov report --codecov --output-path codecov.json
      - uses: codecov/codecov-action@v5
        with:
          files: codecov.json
          flags: rust
          fail_ci_if_error: true
          token: ${{ secrets.CODECOV_TOKEN }}

  codspeed:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: Swatinem/rust-cache@v2
      - uses: taiki-e/install-action@v2
        with: { tool: cargo-codspeed }
      - run: cargo codspeed build
      - uses: CodSpeedHQ/action@v3
        with:
          run: cargo codspeed run
          token: ${{ secrets.CODSPEED_TOKEN }}