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
on:
push:
ignore-branches:
- 'master'
pull_request:
branches:
- '*'
name: build
jobs:
lint:
name: lint
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
~/.cargo/bin
target
key: ${{ runner.os }}-lint-${{ hashFiles('**/Cargo.lock') }}
# this is cheaper than requesting the non-minimal profile
- run: rustup component add rustfmt
- run: rustup component add clippy
- uses: actions-rs/cargo@v1
name: rustfmt
with:
command: fmt
args: --all
- uses: actions-rs/cargo@v1
name: clippy
with:
command: clippy
args: --all-features -- -D warnings
unit:
name: unit
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
profile: minimal
- uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
~/.cargo/bin
target
key: ${{ runner.os }}-unit-${{ hashFiles('**/Cargo.lock') }}
- name: test
uses: actions-rs/cargo@v1
with:
command: test
args: --all
env:
AUTH0_DOMAIN: ${{ secrets.AUTH0_DOMAIN }}
AUTH0_AUDIENCE: ${{ secrets.AUTH0_AUDIENCE }}
AUTH0_CLIENT_ID: ${{ secrets.AUTH0_CLIENT_ID }}
AUTH0_CLIENT_SECRET: ${{ secrets.AUTH0_CLIENT_SECRET }}
# Note that `actions-rs/grcov` Action can install `grcov` too,
# but can't use faster installation methods yet.
# As a temporary experiment `actions-rs/install` Action plugged in here.
# Consider **NOT** to copy that into your workflow,
# but use `actions-rs/grcov` only
# - name: Pre-installing grcov
# uses: actions-rs/install@v0.1
# with:
# crate: grcov
# use-tool-cache: true
#
# - name: Gather coverage data
# id: coverage
# uses: actions-rs/grcov@v0.1
# with:
# coveralls-token: ${{ secrets.COVERALLS_TOKEN }}
#
# - name: Coveralls upload
# uses: coverallsapp/github-action@master
# with:
# github-token: ${{ secrets.GITHUB_TOKEN }}
# parallel: true
# path-to-lcov: ${{ steps.coverage.outputs.report }}
#
# grcov_finalize:
# runs-on: ubuntu-latest
# needs: grcov
# steps:
# - name: Coveralls finalization
# uses: coverallsapp/github-action@master
# with:
# github-token: ${{ secrets.GITHUB_TOKEN }}
# parallel-finished: true