forked from propeller-heads/tycho-simulation
-
Notifications
You must be signed in to change notification settings - Fork 0
130 lines (109 loc) · 3.86 KB
/
tests-and-lints-template.yaml
File metadata and controls
130 lines (109 loc) · 3.86 KB
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
name: Continuous Integration
on:
workflow_call:
inputs:
runs_on:
required: false
type: string
default: ubuntu-latest
timeout_minutes:
required: false
type: number
default: 15
secrets:
eth_rpc_url:
required: true
app_id:
required: true
app_private_key:
required: true
permissions:
id-token: write
contents: read
env:
CARGO_TERM_COLOR: always
RPC_URL: ${{ secrets.eth_rpc_url }}
jobs:
compile_and_test:
name: Compile & Test
runs-on: ${{ inputs.runs_on }}
timeout-minutes: ${{ inputs.timeout_minutes }}
strategy:
matrix:
toolchain:
- stable
steps:
- name: Generate a token
id: generate-token
uses: getsentry/action-github-app-token@d4b5da6c5e37703f8c3b3e43abb5705b46e159cc
with:
app_id: ${{ secrets.app_id }}
private_key: ${{ secrets.app_private_key }}
- name: Install git
run: sudo apt update && sudo apt install -y git
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup git to use https
run: |
git config --global credential.helper store
echo "https://${{ steps.generate-token.outputs.token }}@github.com" > ~/.git-credentials
git config --global url."https://x-access-token:${{ steps.generate-token.outputs.token }}@github.com".insteadOf ssh://github.com
- name: Setup toolchain
uses: dtolnay/rust-toolchain@888c2e1ea69ab0d4330cbf0af1ecc7b68f368cc1
with:
toolchain: ${{ matrix.toolchain }}
- name: Setup Rust Cache
uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6
with:
cache-on-failure: true
- name: Install latest nextest release
uses: taiki-e/install-action@v2
with:
tool: cargo-nextest@0.9.99
- name: Test
run: cargo nextest run --workspace --lib --all-targets --all-features && cargo test --doc
lint:
name: Code Lint
runs-on: ${{ inputs.runs_on }}
timeout-minutes: ${{ inputs.timeout_minutes }}
steps:
- name: Generate a token
id: generate-token
uses: getsentry/action-github-app-token@d4b5da6c5e37703f8c3b3e43abb5705b46e159cc
with:
app_id: ${{ secrets.app_id }}
private_key: ${{ secrets.app_private_key }}
- name: Install git
run: sudo apt update && sudo apt install -y git
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup git to use https
run: |
git config --global credential.helper store
echo "https://${{ steps.generate-token.outputs.token }}@github.com" > ~/.git-credentials
git config --global url."https://x-access-token:${{ steps.generate-token.outputs.token }}@github.com".insteadOf ssh://github.com
- name: Setup clippy toolchain - stable
uses: dtolnay/rust-toolchain@888c2e1ea69ab0d4330cbf0af1ecc7b68f368cc1
with:
toolchain: stable
components: clippy
- name: Setup Rust Cache
uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6
with:
cache-on-failure: true
- run: cargo clippy --workspace --lib --all-targets --all-features -- -D clippy::dbg-macro
env:
RUSTFLAGS: -Dwarnings
- run: cargo check --no-default-features
env:
RUSTFLAGS: -Dwarnings
- name: Setup rustfmt toolchain - nightly
uses: dtolnay/rust-toolchain@a02741459ec5e501b9843ed30b535ca0a0376ae4
with:
toolchain: nightly
components: rustfmt
- run: cargo +nightly fmt --all --check