-
Notifications
You must be signed in to change notification settings - Fork 50
182 lines (154 loc) · 5.33 KB
/
test.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
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
name: Test
on:
pull_request:
branches:
- '*'
push:
branches:
- master
env:
DEBIAN_FRONTEND: noninteractive
jobs:
linters:
name: Tests
concurrency:
group: tests-${{ github.ref }}
cancel-in-progress: true
container:
image: ubuntu:jammy
env:
BUILD_DIR: /home/ghr/_work/_temp
RUST_LOG: hyperspace=trace,hyperspace_parachain=trace
volumes:
- /home/ghr/_work/_temp:/home/ghr/_work/_temp
runs-on:
- self-hosted
- x64-monster
timeout-minutes: 300
steps:
- name: Install git
run: |
apt update -y
apt install git -y
git --version
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Setup deps
run: |
git config --global --add safe.directory /__w/centauri/centauri
apt update -y
apt install -y \
curl \
netcat \
iproute2 \
gcc \
g++ \
build-essential \
clang \
libclang-dev \
pkg-config \
libssl-dev \
unzip
# Get Rust
curl https://sh.rustup.rs -sSf | bash -s -- -y
$HOME/.cargo/bin/rustup toolchain install nightly
$HOME/.cargo/bin/rustup target add wasm32-unknown-unknown --toolchain nightly
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- name: Rustup show
run: $HOME/.cargo/bin/rustup show
- name: Install Node.js
run: |
curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \
apt-get install -y nodejs
npm install --global yarn
node --version
yarn --version
- name: Install Protoc
uses: arduino/setup-protoc@v1
with:
version: '3.x'
- name: Install latest nextest release
uses: taiki-e/install-action@nextest
- name: Install Docker
run: |
apt-get install -y \
ca-certificates \
gnupg \
lsb-release
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-compose-plugin
docker --version
- name: Install docker-compose
run: |
curl -L "https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-$(uname -s)-$(uname -m)" -o ./docker-compose
chmod +x ./docker-compose
- name: Store network gateway IP
run: |
# GATEWAY_IP equals host ip where this docker container was ran, this ip has access to Docker port mapping.
GATEWAY_IP=$(ip r l | grep default | awk '{print $3}')
echo "GATEWAY_IP=$GATEWAY_IP" >> $GITHUB_ENV
echo "RELAY_HOST=$GATEWAY_IP" >> $GITHUB_ENV
echo "PARA_HOST=$GATEWAY_IP" >> $GITHUB_ENV
- name: Run local parachain cluster
run: |
DOCKER_BUILDKIT=0 docker build --platform linux/amd64 -f scripts/parachain.Dockerfile . -t parachain-node:latest
mkdir $BUILD_DIR/tmp
yarn --cwd ./scripts/parachain-launch install
TMPDIR=$BUILD_DIR/tmp OUTPUT=$BUILD_DIR yarn --cwd ./scripts/parachain-launch dev
for file in dev-2000-2000.json \
dev-2001-2001.json \
docker-compose.yml \
parachain-2000.Dockerfile \
parachain-2001.Dockerfile \
relaychain.Dockerfile \
rococo-local.json; do
cp "$BUILD_DIR/$file" ./scripts/parachain-launch/
done
sed -i 's/9944:9933/9144:9933/g' ./scripts/parachain-launch/docker-compose.yml
./docker-compose -f scripts/parachain-launch/docker-compose.yml up -d --build
./scripts/wait_for_tcp_port_opening.sh $RELAY_HOST 9944
./scripts/wait_for_tcp_port_opening.sh $PARA_HOST 9188
- name: Check that subxt-generated is up to date
run: |
./scripts/generate-subxt.sh
- name: Run all unit tests
run: |
SKIP_WASM_BUILD=1 cargo +nightly nextest run --locked --release --workspace --exclude ibc-derive --exclude hyperspace-testsuite
# - name: Run simnode tests
# run: |
# cargo +nightly test -p simnode --locked --release
- name: Run hyperspace integration tests
run: |
cargo +nightly test -p hyperspace-testsuite --locked --release
- name: Terminate local parachain cluster
run: |
./docker-compose -f scripts/parachain-launch/docker-compose.yml down -v
test-solidity:
runs-on:
- self-hosted
- sre
defaults:
run:
shell: bash
working-directory: contracts/ethereum
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/setup-node@v3
with:
node-version: 16
- name: Install dependencies
run: npm install
- name: run unit test
run: npm run test