Skip to content

Allows ckb-vm to execute in assembly mode within the rv64im environment #388

Allows ckb-vm to execute in assembly mode within the rv64im environment

Allows ckb-vm to execute in assembly mode within the rv64im environment #388

Workflow file for this run

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@v2
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:
strategy:
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Run ci
run: rustup component add clippy rustfmt && make ci
linux-native-ci-asm:
strategy:
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Run ci-asm
run: make ci-asm
linux-native-ci-asm-chaos:
strategy:
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Run ci-asm-chaos
run: make ci-asm-chaos
linux-native-test-suite:
strategy:
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions-rust-lang/setup-rust-toolchain@v1
- 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-contrib
cd ckb-vm-contrib
git checkout 2374b2a
git submodule update --init --recursive
cd ..
ln -snf ../.. ckb-vm-contrib/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-contrib/ckb-vm-test-suite
rustup target add riscv64imac-unknown-none-elf
RISCV=`pwd`/../../riscv ./test.sh
linux-native-test-spawn:
strategy:
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions-rust-lang/setup-rust-toolchain@v1
- 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
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
linux-fuzz:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build fuzz
run: |
sudo apt install device-tree-compiler
cargo install cargo-fuzz
cargo +nightly fuzz build
qemu-riscv64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup
run: |
sudo apt-get update -y
sudo apt install -y gcc-riscv64-linux-gnu \
qemu-user-static
rustup target add riscv64gc-unknown-linux-gnu
- name: Build
run: |
export CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_LINKER=riscv64-linux-gnu-gcc
export CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_RUSTFLAGS="-C link-args=-L -C link-args=/usr/lib/gcc-cross/riscv64-linux-gnu/13"
export CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_RUNNER="qemu-riscv64-static -L /usr/riscv64-linux-gnu"
cargo test --features=asm --release --target riscv64gc-unknown-linux-gnu