Setup riscv workflow #8
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and test riscv64 on ubuntu-latest | |
on: | |
push: | |
branches: | |
- main | |
- dev | |
tags: | |
- '**' | |
pull_request: | |
branches: | |
- '**' | |
jobs: | |
build_crate: | |
name: Build riscv64 crate and run tests | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ ubuntu-latest ] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
- name: Set up QEMU on x86_64 | |
id: qemu | |
uses: docker/setup-qemu-action@v2 | |
with: | |
platforms: riscv64 | |
- name: Build and Test | |
run: | | |
docker run --rm --platform linux/riscv64 \ | |
-v ${{ github.workspace }}:/ws --workdir=/ws \ | |
riscv64/debian:rc-buggy \ | |
bash -exc '\ | |
apt-get update && \ | |
apt-get install -y git curl build-essential && \ | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && \ | |
source $HOME/.cargo/env && \ | |
cargo test --release | |
' | |
build_wheels: | |
name: QEMU riscv64 via Debian on ubuntu-latest | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ ubuntu-latest ] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 1 | |
- name: Set up QEMU on x86_64 | |
id: qemu | |
uses: docker/setup-qemu-action@v2 | |
with: | |
platforms: riscv64 | |
- name: Build and Test | |
run: | | |
docker run --rm --platform linux/riscv64 \ | |
-v ${{ github.workspace }}:/ws --workdir=/ws \ | |
riscv64/debian:rc-buggy \ | |
bash -exc '\ | |
apt-get update && \ | |
apt-get install -y build-essential git python3-full python3-dev python3-pip libssl-dev curl && \ | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && \ | |
source $HOME/.cargo/env && \ | |
python3 -m venv venv && \ | |
source ./venv/bin/activate && \ | |
pip install --upgrade pip && \ | |
pip install --extra-index-url https://pypi.chia.net/simple/ maturin==1.2.3 && \ | |
maturin build -i python --release -m wheel/Cargo.toml \ | |
' | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: packages | |
path: ./wheel/target/wheels/ |