Skip to content
Snippets Groups Projects
Commit a5246743 authored by Martin Kröning's avatar Martin Kröning :crab:
Browse files

Unify CI workflow

parent 5653b46a
No related branches found
No related tags found
No related merge requests found
name: aarch64
on:
pull_request:
push:
branches:
- master
- staging
- trying
env:
CARGO_TERM_COLOR: always
defaults:
run:
shell: bash
permissions:
contents: read
jobs:
test:
name: aarch64 tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
steps:
- name: Checkout rusty-hermit
uses: actions/checkout@v3
with:
repository: hermitcore/rusty-hermit
submodules: true
- name: Remove libhermit-rs submodule
run: git rm -r libhermit-rs
- name: Checkout libhermit-rs
uses: actions/checkout@v3
with:
path: libhermit-rs
- name: Checkout loader
uses: actions/checkout@v3
with:
repository: hermitcore/rusty-loader
path: loader
- name: Checkout loader release
run: |
# Get new tags from remote
git fetch --tags
# Get latest tag name
latestTag=$(git describe --tags `git rev-list --tags --max-count=1`)
# Checkout latest tag
git checkout $latestTag
working-directory: loader
- name: Rustup (apply rust-toolchain.toml)
working-directory: libhermit-rs
run: rustup show
- name: Build minimal kernel
working-directory: libhermit-rs
run: cargo xtask build --arch aarch64 --no-default-features
- name: Build dev profile
run: cargo build -Zbuild-std=core,alloc,std,panic_abort -Zbuild-std-features=compiler-builtins-mem --target aarch64-unknown-hermit --package hello_world
- name: Build loader
run: cargo xtask build --arch aarch64
working-directory: loader
env:
HERMIT_APP: ../../../../target/aarch64-unknown-hermit/debug/hello_world
- name: Install QEMU
run: |
sudo apt-get update
sudo apt-get install qemu-system-aarch64
- name: Test kernel
run: qemu-system-aarch64 -semihosting -display none -serial stdio -kernel target/aarch64/debug/rusty-loader -machine virt,gic-version=max -m 512M -cpu max -smp 1
working-directory: loader
name: x86
name: CI
on:
pull_request:
push:
branches:
- master
- staging
- trying
env:
CARGO_INCREMENTAL: 0
CARGO_TERM_COLOR: always
RUSTFLAGS: -Dwarnings
RUSTDOCFLAGS: -Dwarnings
defaults:
run:
shell: bash
permissions:
contents: read
jobs:
test:
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install NASM
run: |
sudo apt-get update
sudo apt-get install nasm
- run: cargo xtask clippy
format:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: cargo fmt -- --check
check-docs:
name: Check docs
runs-on: ubuntu-latest
steps:
- name: Install NASM
run: |
sudo apt-get update
sudo apt-get install nasm
- uses: actions/checkout@v3
- run: rustup target add aarch64-unknown-none-softfloat
- name: Check docs
run: |
cargo doc --package libhermit-rs --no-deps --document-private-items --target x86_64-unknown-none
cargo doc --package libhermit-rs --no-deps --document-private-items --target aarch64-unknown-none-softfloat
test-x86:
name: x86 tests
runs-on: ${{ matrix.os }}
strategy:
......@@ -54,9 +86,6 @@ jobs:
uses: actions/checkout@v3
with:
path: libhermit-rs
- name: Rustup (apply rust-toolchain.toml)
working-directory: libhermit-rs
run: rustup show
- name: Build minimal kernel
working-directory: libhermit-rs
run: cargo xtask build --arch x86_64 --no-default-features
......@@ -66,6 +95,8 @@ jobs:
if: ${{ matrix.os == 'ubuntu-latest' }}
working-directory: libhermit-rs
run: cargo test --lib --target x86_64-unknown-linux-gnu
env:
RUSTFLAGS: -Awarnings
- name: Download loader
uses: dsaltares/fetch-gh-release-asset@1.0.0
with:
......@@ -111,3 +142,56 @@ jobs:
-append "-freq $FREQ" \
|| qemu_status=$?
test $qemu_status -eq 3
test-aarch64:
name: aarch64 tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
steps:
- name: Checkout rusty-hermit
uses: actions/checkout@v3
with:
repository: hermitcore/rusty-hermit
submodules: true
- name: Remove libhermit-rs submodule
run: git rm -r libhermit-rs
- name: Checkout libhermit-rs
uses: actions/checkout@v3
with:
path: libhermit-rs
- name: Checkout loader
uses: actions/checkout@v3
with:
repository: hermitcore/rusty-loader
path: loader
- name: Checkout loader release
run: |
# Get new tags from remote
git fetch --tags
# Get latest tag name
latestTag=$(git describe --tags `git rev-list --tags --max-count=1`)
# Checkout latest tag
git checkout $latestTag
working-directory: loader
- name: Build minimal kernel
working-directory: libhermit-rs
run: cargo xtask build --arch aarch64 --no-default-features
- name: Build dev profile
run: cargo build -Zbuild-std=core,alloc,std,panic_abort -Zbuild-std-features=compiler-builtins-mem --target aarch64-unknown-hermit --package hello_world
- name: Build loader
run: cargo xtask build --arch aarch64
working-directory: loader
env:
HERMIT_APP: ../../../../target/aarch64-unknown-hermit/debug/hello_world
- name: Install QEMU
run: |
sudo apt-get update
sudo apt-get install qemu-system-aarch64
- name: Test kernel
run: qemu-system-aarch64 -semihosting -display none -serial stdio -kernel target/aarch64/debug/rusty-loader -machine virt,gic-version=max -m 512M -cpu max -smp 1
working-directory: loader
\ No newline at end of file
name: Clippy
on:
push:
branches:
- master
- staging
- trying
pull_request:
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: -Dwarnings
permissions:
contents: read
jobs:
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Rustup (apply rust-toolchain.toml)
run: rustup show
- name: Install NASM
run: |
sudo apt-get update
sudo apt-get install nasm
- name: Clippy
run: cargo xtask clippy
name: Doc
on:
push:
branches:
- master
- staging
- trying
pull_request:
env:
CARGO_TERM_COLOR: always
permissions:
contents: read
jobs:
doc:
name: Doc
runs-on: ubuntu-latest
steps:
- name: Install NASM
run: |
sudo apt-get update
sudo apt-get install nasm
- uses: actions/checkout@v3
- name: Rustup (apply rust-toolchain.toml)
run: rustup show
- run: rustup target add aarch64-unknown-none-softfloat
- name: Doc
env:
RUSTDOCFLAGS: -D warnings
run: |
cargo doc --package libhermit-rs --no-deps --document-private-items --target x86_64-unknown-none
cargo doc --package libhermit-rs --no-deps --document-private-items --target aarch64-unknown-none-softfloat
name: Format
on:
push:
branches:
- master
- staging
- trying
pull_request:
env:
CARGO_TERM_COLOR: always
permissions:
contents: read
jobs:
format:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Rustup (apply rust-toolchain.toml)
run: rustup show
- name: Format
run: cargo fmt -- --check
......@@ -3,9 +3,9 @@ status = [
"x86 tests (macos-latest)",
"x86 tests (windows-latest)",
"aarch64 tests (ubuntu-latest)",
"Doc",
"Format",
"Check docs",
"Clippy",
"Format",
"ci/gitlab/git.rwth-aachen.de",
]
delete_merged_branches = true
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment