summaryrefslogtreecommitdiffstats
path: root/.github/workflows/pull-request.yml
blob: 68341fdaa8491f61e670e245e4adf38046c9064b (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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
name: Pull Request

on: [pull_request]

jobs:
  linux:
    runs-on: [ ubuntu-latest ]
    timeout-minutes: 10
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          profile: minimal
          override: true
      - uses: actions-rs/cargo@v1
        with:
          command: install
          args: cargo-make
      - name: Test
        uses: actions-rs/cargo@v1
        with:
          command: make
          args: test
      - name: Build Release
        uses: actions-rs/cargo@v1
        with:
          command: make
          args: "build --release"
      - name: Run
        uses: actions-rs/cargo@v1
        with:
          command: run
          args: "--release -- --version"
  lint:
    runs-on: [ ubuntu-latest ]
    timeout-minutes: 10
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          components: clippy
          override: true
      - uses: actions-rs/clippy-check@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          args: --all-targets --all-features
  docs:
    runs-on: [ ubuntu-latest ]
    timeout-minutes: 10
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          profile: default
          override: true
      - name: Run
        uses: actions-rs/cargo@v1
        with:
          command: doc
          args: "--all-features --workspace"
  format:
    runs-on: [ ubuntu-latest ]
    timeout-minutes: 10
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          profile: default
          override: true
      - name: Run
        uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: " --all -- --check"
  coverage:
    runs-on: [ ubuntu-latest ]
    timeout-minutes: 10
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: "nightly-2021-11-07"
          profile: minimal
          override: true
      - name: Run cargo-tarpaulin
        uses: actions-rs/tarpaulin@v0.1
        with:
          timeout: 10
          out-type: Lcov
          args: '--workspace --all-features --ignore-tests --line --output-dir coverage'
      - name: Post to Coveralls
        uses: coverallsapp/github-action@master
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          path-to-lcov: "coverage/lcov.info"
  macos:
    name: macos
    runs-on: [ macos-latest ]
    timeout-minutes: 15
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          profile: minimal
          override: true
      - uses: actions-rs/cargo@v1
        with:
          command: install
          args: cargo-make
      - name: Test
        uses: actions-rs/cargo@v1
        with:
          command: make
          args: test
      - name: Build Release
        uses: actions-rs/cargo@v1
        with:
          command: make
          args: "build --release"
      - name: Run
        uses: actions-rs/cargo@v1
        with:
          command: run
          args: "--release -- --version"
  windows:
    name: windows
    runs-on: [ windows-latest ]
    timeout-minutes: 15
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          profile: minimal
          override: true
      - name: Run
        uses: actions-rs/cargo@v1
        env:
          RUSTFLAGS: '--cap-lints warn'
        with:
          command: run
          args: "--target x86_64-pc-windows-msvc --release -- --version"
      - name: Test
        uses: actions-rs/cargo@v1
        env:
          RUSTFLAGS: '--cap-lints warn'
        with:
          command: test
          args: "--target x86_64-pc-windows-msvc --release --workspace"
      - name: Build
        uses: actions-rs/cargo@v1
        env:
          RUSTFLAGS: '--cap-lints warn'
        with:
          command: build
          args: "--target x86_64-pc-windows-msvc --release"
      - name: Run
        uses: actions-rs/cargo@v1
        env:
          RUSTFLAGS: '--cap-lints warn'
        with:
          command: run
          args: "--target x86_64-pc-windows-msvc --release -- --version"