-
Notifications
You must be signed in to change notification settings - Fork 1
132 lines (105 loc) · 3.57 KB
/
tests.yml
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
name: Unit and e2e tests
on:
pull_request:
branches:
- master
jobs:
checks:
name: Uint and e2e tests + linit
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@v3
- name: Cache Crates
uses: actions/cache@v3
with:
path: ~/.cargo
key: ${{ runner.os }}-rust-${{ hashFiles('rust-toolchain.toml') }}
restore-keys: |
${{ runner.os }}-rust
- name: Cache Crates 2
uses: actions/cache@v3
with:
path: ~/.cargo
key: ${{ runner.os }}-substrate-contracts-node-${{ hashFiles('rust-toolchain.toml') }}
# - name: Install Rust toolchain
# uses: Cardinal-Cryptography/github-actions/install-rust-toolchain@v1
- name: Install Rust toolchain
run: |
rustup show
rustup component add rust-src
- name: Run cargo fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
- name: Run clippy
uses: actions-rs/cargo@v1
with:
command: clippy
# args: --all-targets -- --no-deps -D warnings (TODO: fix clippy warnings first)
- name: Check if substrate-contracts-node exists
id: check-substrate-contracts-node
continue-on-error: true
run: substrate-contracts-node --version
- name: Install Protobuf
if: ${{ steps.check-substrate-contracts-node.outcome == 'failure' }}
run: |
sudo apt-get install -y protobuf-compiler libprotobuf-dev
- name: Install substrate-contracts-node
if: ${{ steps.check-substrate-contracts-node.outcome == 'failure' }}
run: |
cargo install cargo-dylint dylint-link
cargo install --force --locked contracts-node
# TODO: try downlaod binary from github release
# - name: Install substrate-contracts-node
# if: ${{ steps.check-cargo-contract.outcome == 'failure' }}
# uses: actions-rs/cargo@v1
# with:
# command: install
# args: --force --locked contracts-node
- name: Run unit tests
uses: actions-rs/cargo@v1
with:
command: test
args: --features e2e-tests
build:
name: Build the contract
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@v3
- name: Cache Crates
uses: actions/cache@v3
with:
path: ~/.cargo
key: ${{ runner.os }}-contract-build-env-${{ hashFiles('rust-toolchain.toml') }}
- name: Install Rust toolchain
uses: Cardinal-Cryptography/github-actions/install-rust-toolchain@v1
- name: Install cargo contract
uses: actions-rs/cargo@v1
with:
command: install
args: --locked cargo-contract
- name: Install Protobuf
run: |
sudo apt-get install -y protobuf-compiler libprotobuf-dev
# - name: Install substrate-contracts-node
# uses: actions-rs/cargo@v1
# with:
# command: install
# args: --locked contracts-node
# - name: Install substrate-contracts-node
# run: |
# cargo install cargo-dylint dylint-link
# cargo install --force --locked cargo-contract
- name: Build contract
uses: actions-rs/cargo@v1
with:
command: contract
args: build --release
# - name: Run unit tests
# uses: actions-rs/cargo@v1
# with:
# command: test
# args: --features e2e-tests