feat: add 64-bit RISC-V support #197
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: CI | |
on: | |
push: | |
branches: | |
- staging | |
- trying | |
pull_request: | |
env: | |
CARGO_INCREMENTAL: 0 | |
CARGO_TERM_COLOR: always | |
RUSTFLAGS: -Dwarnings | |
RUSTDOCFLAGS: -Dwarnings | |
jobs: | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install NASM | |
run: | | |
sudo apt-get update | |
sudo apt-get install nasm | |
- name: Clippy | |
run: cargo clippy --all-targets | |
format: | |
name: Format | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Format | |
run: cargo fmt -- --check | |
check-docs: | |
name: Check docs | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install NASM | |
run: | | |
sudo apt-get update | |
sudo apt-get install nasm | |
- name: Check docs | |
run: cargo doc --no-deps --document-private-items | |
uhyve: | |
name: Uhyve | |
runs-on: [self-hosted] | |
steps: | |
- name: Install NASM | |
run: | | |
sudo apt-get update | |
sudo apt-get install nasm | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Build dev profile | |
run: cargo build -Zbuild-std=core,alloc,std,panic_abort --target x86_64-unknown-hermit --package rusty_demo | |
- name: Install uhyve | |
run: cargo install uhyve | |
- name: Check KVM availability | |
shell: bash | |
run: | | |
lscpu | |
kvm-ok | |
- name: Test debug version | |
run: uhyve --verbose -c 1 target/x86_64-unknown-hermit/debug/rusty_demo | |
env: | |
RUST_LOG: debug | |
- name: Build release profile | |
run: cargo build -Zbuild-std=core,alloc,std,panic_abort --target x86_64-unknown-hermit --package rusty_demo --release | |
- name: Test release version | |
run: uhyve --verbose -c 1 target/x86_64-unknown-hermit/release/rusty_demo | |
env: | |
RUST_LOG: debug | |
qemu: | |
name: QEMU | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install CURL, QEMU, NASM | |
run: | | |
sudo apt-get update | |
sudo apt-get install qemu-system-x86 nasm curl | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Build dev profile | |
run: cargo build -Zbuild-std=core,alloc,std,panic_abort --target x86_64-unknown-hermit --package rusty_demo | |
- name: Download loader | |
uses: dsaltares/fetch-gh-release-asset@1.0.0 | |
with: | |
repo: hermitcore/rusty-loader | |
file: rusty-loader-x86_64 | |
- name: Test dev profile | |
run: | | |
qemu-system-x86_64 -display none -smp 1 -m 128M -serial stdio \ | |
-cpu qemu64,apic,fsgsbase,rdtscp,xsave,xsaveopt,fxsr,rdrand \ | |
-kernel rusty-loader-x86_64 \ | |
-initrd target/x86_64-unknown-hermit/debug/rusty_demo | |
- name: Build release profile | |
run: | |
cargo build -Zbuild-std=core,alloc,std,panic_abort --target x86_64-unknown-hermit --package rusty_demo --release | |
- name: Test release profile | |
run: | | |
qemu-system-x86_64 -display none -smp 1 -m 128M -serial stdio \ | |
-cpu qemu64,apic,fsgsbase,rdtscp,xsave,xsaveopt,fxsr,rdrand \ | |
-kernel rusty-loader-x86_64 \ | |
-initrd target/x86_64-unknown-hermit/release/rusty_demo | |
- name: Build httpd with DHCP support | |
run: | |
cargo build -Zbuild-std=core,alloc,std,panic_abort --target x86_64-unknown-hermit --package httpd --features ci,dhcpv4 | |
- name: Test httpd with DHCP support | |
run: | | |
qemu-system-x86_64 -smp 1 -cpu qemu64,apic,fsgsbase,rdtscp,xsave,xsaveopt,fxsr,rdrand \ | |
-device isa-debug-exit,iobase=0xf4,iosize=0x04 -display none -m 128M -serial stdio \ | |
-kernel rusty-loader-x86_64 \ | |
-initrd target/x86_64-unknown-hermit/debug/httpd \ | |
-netdev user,id=u1,hostfwd=tcp::9975-:9975,net=192.168.76.0/24,dhcpstart=192.168.76.9 \ | |
-device rtl8139,netdev=u1 & | |
sleep 5 | |
curl http://127.0.0.1:9975/help | |
sleep 1 | |
- name: Build httpd without DHCP support | |
run: | |
cargo build -Zbuild-std=core,alloc,std,panic_abort --target x86_64-unknown-hermit --package httpd |