Skip to content

std: build std apps for aarch64 & riscv64 #56

std: build std apps for aarch64 & riscv64

std: build std apps for aarch64 & riscv64 #56

Workflow file for this run

name: Build CI
on: [push, pull_request]
env:
rust-toolchain: nightly-2023-06-17
jobs:
clippy:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.rust-toolchain }}
components: rust-src, clippy, rustfmt
- name: Clippy for the default target
run: make clippy
- name: Clippy for x86_64
run: make clippy ARCH=x86_64
- name: Clippy for riscv64
run: make clippy ARCH=riscv64
- name: Clippy for aarch64
run: make clippy ARCH=aarch64
- name: Check code format
run: cargo fmt --all -- --check
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
arch: [x86_64, riscv64, aarch64]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.rust-toolchain }}
components: rust-src
- uses: actions-rs/[email protected]
with:
crate: cargo-binutils
version: latest
use-tool-cache: true
- name: Build helloworld
run: make ARCH=${{ matrix.arch }} A=apps/helloworld
- name: Build memtest
run: make ARCH=${{ matrix.arch }} A=apps/memtest
- name: Build exception
run: make ARCH=${{ matrix.arch }} A=apps/exception
- name: Build display
run: make ARCH=${{ matrix.arch }} A=apps/display
- name: Build task/yield
run: make ARCH=${{ matrix.arch }} A=apps/task/yield
- name: Build task/parallel
run: make ARCH=${{ matrix.arch }} A=apps/task/parallel
- name: Build task/sleep
run: make ARCH=${{ matrix.arch }} A=apps/task/sleep
- name: Build task/priority
run: make ARCH=${{ matrix.arch }} A=apps/task/priority
- name: Build task/tls
run: make ARCH=${{ matrix.arch }} A=apps/task/tls
- name: Build fs/shell
run: make ARCH=${{ matrix.arch }} A=apps/fs/shell
- name: Build net/echoserver
run: make ARCH=${{ matrix.arch }} A=apps/net/echoserver
- name: Build net/httpclient
run: make ARCH=${{ matrix.arch }} A=apps/net/httpclient
- name: Build net/httpserver
run: make ARCH=${{ matrix.arch }} A=apps/net/httpserver
- name: Build net/udpserver
run: make ARCH=${{ matrix.arch }} A=apps/net/udpserver
- uses: ./.github/workflows/actions/setup-musl
with:
arch: ${{ matrix.arch }}
- name: Build c/helloworld
run: make ARCH=${{ matrix.arch }} A=apps/c/helloworld
- name: Build c/memtest
run: make ARCH=${{ matrix.arch }} A=apps/c/memtest
- name: Build c/sqlite3
run: make ARCH=${{ matrix.arch }} A=apps/c/sqlite3
- name: Build c/httpclient
run: make ARCH=${{ matrix.arch }} A=apps/c/httpclient
- name: Build c/httpserver
run: make ARCH=${{ matrix.arch }} A=apps/c/httpserver
- name: Build c/udpserver
run: make ARCH=${{ matrix.arch }} A=apps/c/udpserver
- name: Build c/iperf
run: make ARCH=${{ matrix.arch }} A=apps/c/iperf
- name: Build c/redis
run: make ARCH=${{ matrix.arch }} A=apps/c/redis SMP=4
build-apps-for-other-platforms:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.rust-toolchain }}
components: rust-src
- uses: actions-rs/[email protected]
with:
crate: cargo-binutils
version: latest
use-tool-cache: true
- uses: ./.github/workflows/actions/setup-musl
with:
arch: x86_64
- name: Build helloworld for x86_64-pc-oslab
run: make PLATFORM=x86_64-pc-oslab A=apps/helloworld
- name: Build net/httpserver for x86_64-pc-oslab
run: make PLATFORM=x86_64-pc-oslab A=apps/net/httpserver FEATURES=driver-ixgbe
- name: Build c/iperf for x86_64-pc-oslab
run: make PLATFORM=x86_64-pc-oslab A=apps/c/iperf FEATURES=driver-ixgbe,driver-ramdisk
- name: Build c/redis for x86_64-pc-oslab
run: make PLATFORM=x86_64-pc-oslab A=apps/c/redis FEATURES=driver-ixgbe,driver-ramdisk SMP=4
- name: Build helloworld for aarch64-raspi4
run: make PLATFORM=aarch64-raspi4 A=apps/helloworld
- name: Build fs/shell for aarch64-raspi4
run: make PLATFORM=aarch64-raspi4 A=apps/fs/shell FEATURES=driver-bcm2835-sdhci
build-apps-for-std:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
arch: [x86_64]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.rust-toolchain }}
- name: Build helloworld
run: cargo build -p arceos-helloworld
- name: Build memtest
run: cargo build -p arceos-memtest
- name: Build exception
run: cargo build -p arceos-exception
- name: Build task/yield
run: cargo build -p arceos-yield
- name: Build task/parallel
run: cargo build -p arceos-parallel
- name: Build task/sleep
run: cargo build -p arceos-sleep
- name: Build task/priority
run: cargo build -p arceos-priority
- name: Build task/tls
run: cargo build -p arceos-tls
- name: Build fs/shell
run: cargo build -p arceos-shell
- name: Build net/echoserver
run: cargo build -p arceos-echoserver
- name: Build net/httpclient
run: cargo build -p arceos-httpclient
- name: Build net/httpserver
run: cargo build -p arceos-httpserver
- name: Build net/udpserver
run: cargo build -p arceos-udpserver