-
Notifications
You must be signed in to change notification settings - Fork 69
175 lines (162 loc) · 6.07 KB
/
develop.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
name: develop
on:
pull_request:
push:
jobs:
linux-x86-deny:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
# https://github.com/EmbarkStudios/cargo-deny-action
- uses: EmbarkStudios/cargo-deny-action@v1
with:
arguments: --all-features
command: check advisories licenses sources bans
linux-x86-ci-generated:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run ci-generated
run: make ci-generated
linux-x86-ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run ci
run: rustup component add clippy rustfmt && make ci
linux-x86-ci-asm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run ci-asm
run: make ci-asm
linux-x86-ci-asm-chaos:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run ci-asm-chaos
run: make ci-asm-chaos
linux-x86-test-suite:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
sudo apt install -y git \
build-essential \
autoconf \
automake \
autotools-dev \
libmpc-dev \
libmpfr-dev \
libgmp-dev \
gawk \
libtool \
patchutils \
libexpat-dev \
zlib1g-dev
- name: Run test suite
run: |
git clone https://github.com/nervosnetwork/ckb-vm-test-suite
ln -snf .. ckb-vm-test-suite/ckb-vm
docker run --rm -v `pwd`:/code nervos/ckb-riscv-gnu-toolchain:bionic-20210804 cp -r /riscv /code/riscv
cd ckb-vm-test-suite
git checkout 86480364649c9cb6ac01674fe51156e7cf50a31a
git submodule update --init --recursive
RISCV=`pwd`/../riscv ./test.sh
linux-x86-test-spawn:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run spawn tests in release
run: cargo test test_spawn --release --features=asm -- --nocapture
linux-arm-ci-asm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
sudo apt-get update -y
sudo apt install -y build-essential \
autoconf \
automake \
autotools-dev \
libmpc-dev \
libmpfr-dev \
libgmp-dev \
gawk \
libtool \
patchutils \
libexpat-dev \
zlib1g-dev \
gcc-aarch64-linux-gnu \
g++-aarch64-linux-gnu \
qemu-user-static
rustup target add aarch64-unknown-linux-gnu
- name: Run ci-asm
run: |
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc &&
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS="-C link-args=-L -C link-args=/usr/lib/gcc-cross/aarch64-linux-gnu/11" &&
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER="qemu-aarch64-static -L /usr/aarch64-linux-gnu" &&
cargo test --features=asm --target aarch64-unknown-linux-gnu
linux-arm-test-suite:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
sudo apt update -y
sudo apt install -y build-essential \
autoconf \
automake \
autotools-dev \
libmpc-dev \
libmpfr-dev \
libgmp-dev \
gawk \
libtool \
patchutils \
libexpat-dev \
zlib1g-dev
rustup target add aarch64-unknown-linux-gnu
- name: Build test suite
run: |
git clone https://github.com/nervosnetwork/ckb-vm-test-suite
ln -snf .. ckb-vm-test-suite/ckb-vm
docker run --rm -v `pwd`:/code nervos/ckb-riscv-gnu-toolchain:bionic-20210804 cp -r /riscv /code/riscv
cd ckb-vm-test-suite
git checkout 86480364649c9cb6ac01674fe51156e7cf50a31a
git submodule update --init --recursive
RISCV=`pwd`/../riscv ./test.sh --build-only
cd ..
- name: Run test suite
run: |
sudo apt install -y qemu binfmt-support qemu-user-static
sudo apt install -y gcc-multilib
sudo apt install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu clang
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
cd ckb-vm-test-suite
cd binary && cargo build --release --target=aarch64-unknown-linux-gnu && cd ..
cd ..
# It is also possible to use arm64v8/rust@sha256:cd7c932094e80f2f2471af1c2c8dba4e87221bc55318ee846d003f2f4e26970a
docker run --rm -v `pwd`:/code -t arm64v8/rust:1.71.1-bookworm bash -c "RISCV=/dummy /code/ckb-vm-test-suite/test.sh --prebuilt-prefix aarch64-unknown-linux-gnu"
macos-x86-ci-asm:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Run ci-asm
run: make ci-asm
windows-x86-ci-asm:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies
shell: pwsh
# https://github.com/ScoopInstaller/Install#for-admin
run: |
iex "& {$(irm get.scoop.sh)} -RunAsAdmin"
scoop install mingw
- name: Run ci-asm
shell: pwsh
run: |
make ci-asm