summaryrefslogtreecommitdiffstats
path: root/.github/workflows/commit-workflow.yml
blob: 23288c287ad2e334740c2306ea63f8f209f43c7d (plain)
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
152
153
name: commit-workflow

on:
  push:
    branches: [main]
  workflow_dispatch:
    branches: [main]
  pull_request:
    branches: [main]

env:
  CARGO_TERM_COLOR: always

jobs:
  cargo-fmt:
    name: Run cargo fmt
    runs-on: Ubuntu-20.04

    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Cargo fmt --version
        uses: actions-rs/cargo@v1
        # https://github.com/marketplace/actions/rust-cargo
        with:
          command: fmt
          args: --version

      - name: Cargo fmt
        uses: actions-rs/cargo@v1
        # https://github.com/marketplace/actions/rust-cargo
        with:
          command: fmt
          args: -- --check

  cargo-clippy:
    name: Run cargo clippy
    runs-on: Ubuntu-20.04

    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Enable cache
        # https://github.com/marketplace/actions/rust-cache
        uses: Swatinem/rust-cache@v1

      - name: Cargo clippy --version
        uses: actions-rs/cargo@v1
        # https://github.com/marketplace/actions/rust-cargo
        with:
          command: clippy
          args: --version

      - name: Cargo clippy
        uses: actions-rs/cargo@v1
        # https://github.com/marketplace/actions/rust-cargo
        with:
          command: clippy

  cargo-test:
    name: Run cargo test
    runs-on: Ubuntu-20.04
    needs: [cargo-fmt, cargo-clippy]

    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Enable cache
        # https://github.com/marketplace/actions/rust-cache
        uses: Swatinem/rust-cache@v1

      - name: Cargo version
        uses: actions-rs/cargo@v1
        # https://github.com/marketplace/actions/rust-cargo
        with:
          command: version

      - name: Cargo build dummy plugin
        uses: actions-rs/cargo@v1
        # https://github.com/marketplace/actions/rust-cargo
        with:
          command: build
          args: -p tedge_dummy_plugin

      - name: Cargo test
        uses: actions-rs/cargo@v1
        # https://github.com/marketplace/actions/rust-cargo
        with:
          command: test
          args: --no-fail-fast

  cargo-build:
    name: Run cargo build
    runs-on: Ubuntu-20.04
    needs: [cargo-fmt, cargo-clippy]

    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Enable cache
        # https://github.com/marketplace/actions/rust-cache
        uses: Swatinem/rust-cache@v1

      - name: Cargo version
        uses: actions-rs/cargo@v1
        # https://github.com/marketplace/actions/rust-cargo
        with:
          command: version

      - name: Cargo build
        uses: actions-rs/cargo@v1
        # https://github.com/marketplace/actions/rust-cargo
        with:
          command: build
          args: --release

  cargo-msrv:
    name: Run cargo msrv
    runs-on: Ubuntu-20.04
    needs: [cargo-fmt, cargo-clippy]

    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Enable cache
        # https://github.com/marketplace/actions/rust-cache
        uses: Swatinem/rust-cache@v1

      - name: Cargo install msrv
        uses: actions-rs/cargo@v1
        # https://github.com/marketplace/actions/rust-cargo
        with:
          command: install
          args: cargo-msrv

      - name: Cargo msrv --version
        uses: actions-rs/cargo@v1
        # https://github.com/marketplace/actions/rust-cargo
        with:
          command: msrv
          args: --version

      - name: Cargo msrv
        uses: actions-rs/cargo@v1
        # https://github.com/marketplace/actions/rust-cargo
        with:
          command: msrv
          args: --minimum 1.54.0