-
Notifications
You must be signed in to change notification settings - Fork 6
164 lines (147 loc) · 4.64 KB
/
build.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
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
name: Build
# Controls when the action will run.
on:
push:
branches: [main]
pull_request:
types: [opened, synchronize]
workflow_dispatch:
jobs:
check:
runs-on:
group: laos
labels: ubuntu-16-cores
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup
- uses: ./.github/actions/cache
with:
cache-key: build_and_push
- name: Check
run: |
cargo check --all-targets --release --features runtime-benchmarks --features try-runtime
build_and_push:
runs-on:
group: laos
labels: ubuntu-16-cores
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup
- uses: ./.github/actions/cache
with:
cache-key: build_and_push
- name: Build
run: |
cargo build --release
- name: Log in to Docker Hub
uses: docker/[email protected]
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Push Ownership Node Docker images
uses: docker/build-push-action@v4
with:
context: .
file: ./docker/ownership-node.local.Dockerfile
push: true
tags: freeverseio/laos-ownership-node:${{ github.sha }}
lint:
runs-on:
group: laos
labels: ubuntu-16-cores
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup
- uses: ./.github/actions/cache
with:
cache-key: lint
- name: install nightly
run: |
rustup toolchain install nightly
rustup component add rustfmt --toolchain nightly-x86_64-unknown-linux-gnu
- name: check format
run: |
cargo +nightly fmt --all --check
- name: install clippy
run: |
rustup component add clippy
- name: Check clippy
run: |
cargo clippy --all-targets --workspace --features runtime-benchmarks --features try-runtime
test:
runs-on:
group: laos
labels: ubuntu-16-cores
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup
- uses: ./.github/actions/cache
with:
cache-key: test
- name: Test
run: |
SKIP_WASM_BUILD=1 cargo test
try-runtime:
runs-on:
group: laos
labels: ubuntu-16-cores
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup
- uses: ./.github/actions/cache
with:
cache-key: try_runtime
- name: Build
run: |
cargo build --release --package laos-ownership --features=try-runtime
- name: Try Runtime
run: |
RUST_LOG=try-runtime ./target/release/laos-ownership try-runtime --runtime ./target/release/wbuild/laos-ownership-runtime/laos_ownership_runtime.wasm on-runtime-upgrade --checks=pre-and-post live --uri ws://161.35.247.178:9944
e2e-tests:
runs-on:
group: laos
labels: ubuntu-16-cores
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup
- uses: ./.github/actions/cache
with:
cache-key: build_and_push
- name: Build
run: |
cargo build --release
- name: Copy polkadot relay chain binary
run: |
wget https://github.com/paritytech/polkadot/releases/download/v0.9.42/polkadot
chmod +x ./polkadot
- name: Copy Astar parachain binary
run: |
wget https://github.com/AstarNetwork/Astar/releases/download/v5.23.0/astar-collator-v5.23.0-ubuntu-x86_64.tar.gz
tar xf astar-collator-v5.23.0-ubuntu-x86_64.tar.gz
chmod +x ./astar-collator
- name: Copy zombienet binary
run: |
wget https://github.com/paritytech/zombienet/releases/download/v1.3.55/zombienet-linux-x64
chmod +x ./zombienet-linux-x64
- name: Run zombienet
run: |
export ZOMBIENET_RELAYCHAIN_COMMAND=./polkadot
export ZOMBIENET_OWNCHAIN_COMMAND=./target/release/laos-ownership
export ZOMBIENET_ASTAR_COMMAND=./astar-collator
./zombienet-linux-x64 spawn ./ownership-chain/zombienet/native.toml -p native &
echo "Zombienet started"
- name: Wait for zombienet
run: |
timeout 36 sh -c 'until nc -z $0 $1; do echo -n .; sleep 1; done' localhost 9999
- name: Use Node.js 18
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install dependencies
run: |
npm install
working-directory: ./ownership-chain/e2e-tests
- name: Run tests
run: |
npm run build && npm run test
working-directory: ./ownership-chain/e2e-tests