File: rust.yml

package info (click to toggle)
rust-prometheus 0.13.4-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 820 kB
  • sloc: makefile: 25
file content (108 lines) | stat: -rw-r--r-- 3,686 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
---
name: Rust
on:
  push:
    branches: [master]
  pull_request:
    branches: [master]

env:
  CARGO_TERM_COLOR: always
  # Pinned toolchain for linting and benchmarks
  ACTIONS_LINTS_TOOLCHAIN: 1.78.0
  # Minimum supported Rust version (MSRV)
  ACTION_MSRV_TOOLCHAIN: 1.74.0
  EXTRA_FEATURES: "protobuf push process"

jobs:
  tests-stable:
    name: "Tests, stable toolchain"
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Install toolchain
        uses: dtolnay/rust-toolchain@stable
      - name: cargo build
        run: cargo build
      - name: cargo test
        run: cargo test
      - name: cargo test (no default features)
        run: cargo test --no-default-features
      - name: cargo test (extra features)
        run: cargo test --no-default-features --features="${{ env['EXTRA_FEATURES'] }}"
      - name: cargo package
        run : cargo package && cargo package --manifest-path static-metric/Cargo.toml
  tests-other-channels:
    name: "Tests, unstable toolchain"
    runs-on: ubuntu-latest
    continue-on-error: true
    strategy:
      matrix:
        channel:
          - "beta"
          - "nightly"
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Install toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ matrix.channel }}
      - name: cargo build
        run: cargo build
      - name: cargo test
        run: cargo test
      - name: cargo build (static-metric)
        run: cargo build -p prometheus-static-metric --examples --no-default-features --features="${{ env['EXTRA_FEATURES'] }}"
      - name: cargo test (static-metric)
        run: cargo test -p prometheus-static-metric --no-default-features --features="${{ env['EXTRA_FEATURES'] }}"
  build-msrv:
    name: "Build, minimum toolchain"
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Install toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ env['ACTION_MSRV_TOOLCHAIN'] }}
      - run: cargo build
      - run: cargo test --no-run
      - run: cargo build --no-default-features
      - run: cargo test --no-default-features --no-run
      - run: cargo build --no-default-features --features="${{ env['EXTRA_FEATURES'] }}"
      - run: cargo test --no-default-features --features="${{ env['EXTRA_FEATURES'] }}"
  linting:
    name: "Lints, pinned toolchain"
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Install toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ env['ACTIONS_LINTS_TOOLCHAIN'] }}
          components: rustfmt, clippy
      - name: cargo fmt (check)
        run: cargo fmt --all -- --check -l
      - name: cargo clippy
        run: cargo clippy --all
      - name: cargo clippy (no default features)
        run: cargo clippy --all --no-default-features
      - name: cargo clippy (extra features)
        run: cargo clippy --all --no-default-features --features="${{ env['EXTRA_FEATURES'] }}"
  criterion:
    name: "Benchmarks (criterion)"
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Install toolchain
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ env['ACTIONS_LINTS_TOOLCHAIN']  }}
      - name: cargo bench (prometheus)
        run: cargo bench -p prometheus
      - name: cargo bench (prometheus-static-metric)
        run: cargo bench -p prometheus-static-metric