File: ci.yml

package info (click to toggle)
rust-annotate-snippets 0.11.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 524 kB
  • sloc: makefile: 2
file content (140 lines) | stat: -rw-r--r-- 3,911 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
name: CI

permissions:
  contents: read

on:
  pull_request:
  push:
    branches:
    - master

env:
  RUST_BACKTRACE: 1
  CARGO_TERM_COLOR: always
  CLICOLOR: 1

concurrency:
  group: "${{ github.workflow }}-${{ github.ref }}"
  cancel-in-progress: true

jobs:
  ci:
    permissions:
      contents: none
    name: CI
    needs: [test, msrv, lockfile, docs, rustfmt, clippy]
    runs-on: ubuntu-latest
    if: "always()"
    steps:
      - name: Failed
        run: exit 1
        if: "contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'skipped')"
  test:
    name: Test
    strategy:
      matrix:
        os: ["ubuntu-latest", "windows-latest", "macos-14"]
        rust: ["stable"]
    continue-on-error: ${{ matrix.rust != 'stable' }}
    runs-on: ${{ matrix.os }}
    steps:
    - name: Checkout repository
      uses: actions/checkout@v4
    - name: Install Rust
      uses: dtolnay/rust-toolchain@stable
      with:
        toolchain: ${{ matrix.rust }}
    - uses: Swatinem/rust-cache@v2
    - uses: taiki-e/install-action@cargo-hack
    - name: Build
      run: cargo test --workspace --no-run
    - name: Test
      run: cargo hack test --feature-powerset --workspace
  msrv:
    name: "Check MSRV"
    runs-on: ubuntu-latest
    steps:
    - name: Checkout repository
      uses: actions/checkout@v4
    - name: Install Rust
      uses: dtolnay/rust-toolchain@stable
      with:
        toolchain: stable
    - uses: Swatinem/rust-cache@v2
    - uses: taiki-e/install-action@cargo-hack
    - name: Default features
      run: cargo hack check --feature-powerset --locked --rust-version --ignore-private --workspace --all-targets
  lockfile:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout repository
      uses: actions/checkout@v4
    - name: Install Rust
      uses: dtolnay/rust-toolchain@stable
      with:
        toolchain: stable
    - uses: Swatinem/rust-cache@v2
    - name: "Is lockfile updated?"
      run: cargo update --workspace --locked
  docs:
    name: Docs
    runs-on: ubuntu-latest
    steps:
    - name: Checkout repository
      uses: actions/checkout@v4
    - name: Install Rust
      uses: dtolnay/rust-toolchain@stable
      with:
        toolchain: "1.79"  # STABLE
    - uses: Swatinem/rust-cache@v2
    - name: Check documentation
      env:
        RUSTDOCFLAGS: -D warnings
      run: cargo doc --workspace --all-features --no-deps --document-private-items
  rustfmt:
    name: rustfmt
    runs-on: ubuntu-latest
    steps:
    - name: Checkout repository
      uses: actions/checkout@v4
    - name: Install Rust
      uses: dtolnay/rust-toolchain@stable
      with:
        toolchain: "1.79"  # STABLE
        components: rustfmt
    - uses: Swatinem/rust-cache@v2
    - name: Check formatting
      run: cargo fmt --all -- --check
  clippy:
    name: clippy
    runs-on: ubuntu-latest
    permissions:
      security-events: write # to upload sarif results
    steps:
    - name: Checkout repository
      uses: actions/checkout@v4
    - name: Install Rust
      uses: dtolnay/rust-toolchain@stable
      with:
        toolchain: "1.79"  # STABLE
        components: clippy
    - uses: Swatinem/rust-cache@v2
    - name: Install SARIF tools
      run: cargo install clippy-sarif --locked
    - name: Install SARIF tools
      run: cargo install sarif-fmt --locked
    - name: Check
      run: >
        cargo clippy --workspace --all-features --all-targets --message-format=json -- -D warnings --allow deprecated
        | clippy-sarif
        | tee clippy-results.sarif
        | sarif-fmt
      continue-on-error: true
    - name: Upload
      uses: github/codeql-action/upload-sarif@v3
      with:
        sarif_file: clippy-results.sarif
        wait-for-processing: true
    - name: Report status
      run: cargo clippy --workspace --all-features --all-targets -- -D warnings --allow deprecated