File: rust.yml

package info (click to toggle)
rust-asn1-rs 0.7.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,020 kB
  • sloc: makefile: 13; sh: 1
file content (117 lines) | stat: -rw-r--r-- 3,107 bytes parent folder | download | duplicates (2)
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
name: Continuous integration

on:
  push:
  pull_request:
  merge_group:
  schedule:
    - cron: '0 18 * * *'

env:
  check_ext_rust_version: nightly-2024-06-30
  # ^ sync with https://github.com/awslabs/cargo-check-external-types/blob/main/rust-toolchain.toml

jobs:
  check:
    name: Check
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust:
          - stable
          - 1.63.0
          - nightly
    steps:
      - uses: actions/checkout@v4
      - name: Install ${{ matrix.rust }} toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ matrix.rust }}
      - name: Cargo update
        run: cargo update
      - name: Cargo update (fix for MSRV)
        run: cargo update -p time --precise 0.3.20
        if: matrix.rust == '1.63.0'
      - run: RUSTFLAGS="-D warnings" cargo check

  test_features:
    name: Test suite (with features)
    runs-on: ubuntu-latest
    strategy:
      matrix:
        features:
          - --features=default
          - --all-features
          - --features=bigint,serialize,debug
          - --features=bigint,serialize,trace
          - --no-default-features
    steps:
      - uses: actions/checkout@v4
      - name: Install stable toolchain
        uses: dtolnay/rust-toolchain@stable
      - run: cargo test ${{ matrix.features }}

  no_std:
    name: no-std
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install stable toolchain
        uses: dtolnay/rust-toolchain@stable
      - run: RUSTFLAGS="-D warnings" cargo check --no-default-features

  fmt:
    name: Rustfmt
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install stable rustfmt
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      - run: cargo fmt --all -- --check

  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install nightly clippy
        uses: dtolnay/rust-toolchain@nightly
        with:
          components: clippy
      - run: cargo clippy -- -D warnings

  doc:
    name: Build documentation
    runs-on: ubuntu-latest
    env:
      RUSTDOCFLAGS: --cfg docsrs
    steps:
      - uses: actions/checkout@v4
      - name: Install nightly rust
        uses: dtolnay/rust-toolchain@nightly
      - run: cargo doc --workspace --no-deps --all-features

  semver:
    name: Check semver compatibility
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v4
      - name: Check semver
        uses: obi1kenobi/cargo-semver-checks-action@v2

  check-external-types:
    name: Validate external types appearing in public API
    runs-on: ubuntu-latest
    continue-on-error: true
    steps:
      - name: Checkout sources
        uses: actions/checkout@v4
      - name: Install rust toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ env.check_ext_rust_version }}
      - run: cargo install --locked cargo-check-external-types
      - run: cargo check-external-types