Skip to content

Merge pull request #443 from nanvix/enhancement-pm-panic #366

Merge pull request #443 from nanvix/enhancement-pm-panic

Merge pull request #443 from nanvix/enhancement-pm-panic #366

Workflow file for this run

# Copyright(c) 2011-2024 The Maintainers of Nanvix.
# Licensed under the MIT License.
name: x86 Release
on: push
env:
TARGET_BRANCH: ${{ github.ref_name }}
jobs:
setup:
name: Setup
runs-on: ubuntu-latest
steps:
- name: Setup
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.hostname }}
username: ${{ secrets.username }}
key: ${{ secrets.sshkey }}
port: ${{ secrets.portnum }}
envs: TARGET_BRANCH
script: |
rm -rf kernel-release
git clone --recursive https://github.com/nanvix/kernel.git --branch ${TARGET_BRANCH} kernel-release
lint:
name: Lint
needs: setup
runs-on: ubuntu-latest
steps:
- name: Clippy
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.hostname }}
username: ${{ secrets.username }}
key: ${{ secrets.sshkey }}
port: ${{ secrets.portnum }}
script: |
cd kernel-release
make TOOLCHAIN_DIR=$HOME/toolchain TARGET=x86 LOG_LEVEL=trace MACHINE=qemu-isapc clippy
make TOOLCHAIN_DIR=$HOME/toolchain TARGET=x86 LOG_LEVEL=trace MACHINE=qemu-pc clippy
make TOOLCHAIN_DIR=$HOME/toolchain TARGET=x86 LOG_LEVEL=trace MACHINE=qemu-baremetal clippy
make TOOLCHAIN_DIR=$HOME/toolchain TARGET=x86 LOG_LEVEL=trace MACHINE=qemu-pc-smp clippy
make TOOLCHAIN_DIR=$HOME/toolchain TARGET=x86 LOG_LEVEL=trace MACHINE=qemu-baremetal-smp clippy
make TOOLCHAIN_DIR=$HOME/toolchain TARGET=x86 LOG_LEVEL=trace MACHINE=microvm clippy
build:
name: Build
needs: lint
runs-on: ubuntu-latest
steps:
- name: Build
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.hostname }}
username: ${{ secrets.username }}
key: ${{ secrets.sshkey }}
port: ${{ secrets.portnum }}
script: |
cd kernel-release
make TOOLCHAIN_DIR=$HOME/toolchain RELEASE=yes TARGET=x86 LOG_LEVEL=trace all MACHINE=qemu-isapc
make TOOLCHAIN_DIR=$HOME/toolchain RELEASE=yes TARGET=x86 LOG_LEVEL=trace all MACHINE=qemu-pc
make TOOLCHAIN_DIR=$HOME/toolchain RELEASE=yes TARGET=x86 LOG_LEVEL=trace all MACHINE=qemu-baremetal
make TOOLCHAIN_DIR=$HOME/toolchain RELEASE=yes TARGET=x86 LOG_LEVEL=trace all MACHINE=qemu-pc-smp
make TOOLCHAIN_DIR=$HOME/toolchain RELEASE=yes TARGET=x86 LOG_LEVEL=trace all MACHINE=qemu-baremetal-smp
make TOOLCHAIN_DIR=$HOME/toolchain RELEASE=yes TARGET=x86 LOG_LEVEL=trace all MACHINE=microvm
test-qemu-isapc:
name: Test (qemu-isapc)
needs: [build]
runs-on: ubuntu-latest
steps:
- name: Test
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.hostname }}
username: ${{ secrets.username }}
key: ${{ secrets.sshkey }}
port: ${{ secrets.portnum }}
script: |
cd kernel-release
make TIMEOUT=5 TOOLCHAIN_DIR=$HOME/toolchain RELEASE=yes TARGET=x86 LOG_LEVEL=trace MACHINE=qemu-isapc all run | tee output.txt
echo "Magic String: $(cat output.txt | tail -n 1)"
[ "$(cat output.txt | tail -n 1)" != "[DEBUG][kernel] hello, world!" ] && exit 1 || exit 0 ;
test-qemu-pc:
name: Test (qemu-pc)
needs: [test-qemu-isapc]
runs-on: ubuntu-latest
steps:
- name: Test
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.hostname }}
username: ${{ secrets.username }}
key: ${{ secrets.sshkey }}
port: ${{ secrets.portnum }}
script: |
cd kernel-release
make TIMEOUT=5 TOOLCHAIN_DIR=$HOME/toolchain RELEASE=yes TARGET=x86 LOG_LEVEL=trace MACHINE=qemu-pc all run | tee output.txt
echo "Magic String: $(cat output.txt | tail -n 1)"
[ "$(cat output.txt | tail -n 1)" != "[DEBUG][kernel] hello, world!" ] && exit 1 || exit 0 ;
test-qemu-baremetal:
name: Test (qemu-baremetal)
needs: [test-qemu-pc]
runs-on: ubuntu-latest
steps:
- name: Test
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.hostname }}
username: ${{ secrets.username }}
key: ${{ secrets.sshkey }}
port: ${{ secrets.portnum }}
script: |
cd kernel-release
make TIMEOUT=5 TOOLCHAIN_DIR=$HOME/toolchain RELEASE=yes TARGET=x86 LOG_LEVEL=trace MACHINE=qemu-baremetal all run | tee output.txt
echo "Magic String: $(cat output.txt | tail -n 1)"
[ "$(cat output.txt | tail -n 1)" != "[DEBUG][kernel] hello, world!" ] && exit 1 || exit 0 ;
test-qemu-pc-smp:
name: Test (qemu-pc-smp)
needs: [test-qemu-baremetal]
runs-on: ubuntu-latest
steps:
- name: Test
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.hostname }}
username: ${{ secrets.username }}
key: ${{ secrets.sshkey }}
port: ${{ secrets.portnum }}
script: |
cd kernel-release
make TIMEOUT=5 TOOLCHAIN_DIR=$HOME/toolchain RELEASE=yes TARGET=x86 LOG_LEVEL=trace MACHINE=qemu-pc-smp all run | tee output.txt
echo "Magic String: $(cat output.txt | tail -n 1)"
[ "$(cat output.txt | tail -n 1)" != "[DEBUG][kernel] hello, world!" ] && exit 1 || exit 0 ;
test-qemu-baremetal-smp:
name: Test (qemu-baremetal-smp)
needs: [test-qemu-pc-smp]
runs-on: ubuntu-latest
steps:
- name: Test
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.hostname }}
username: ${{ secrets.username }}
key: ${{ secrets.sshkey }}
port: ${{ secrets.portnum }}
script: |
cd kernel-release
make TIMEOUT=5 TOOLCHAIN_DIR=$HOME/toolchain RELEASE=yes TARGET=x86 LOG_LEVEL=trace MACHINE=qemu-baremetal-smp all run | tee output.txt
echo "Magic String: $(cat output.txt | tail -n 1)"
[ "$(cat output.txt | tail -n 1)" != "[DEBUG][kernel] hello, world!" ] && exit 1 || exit 0 ;
test-microvm:
name: Test (microvm)
needs: [test-qemu-baremetal-smp]
runs-on: ubuntu-latest
steps:
- name: Test
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.hostname }}
username: ${{ secrets.username }}
key: ${{ secrets.sshkey }}
port: ${{ secrets.portnum }}
script: |
cd kernel-release
make TIMEOUT=5 TOOLCHAIN_DIR=$HOME/toolchain RELEASE=yes TARGET=x86 LOG_LEVEL=trace MACHINE=microvm all run | tee output.txt
echo "Magic String: $(cat output.txt | tail -n 1)"
[ "$(cat output.txt | tail -n 1)" != "[DEBUG][kernel] hello, world!" ] && exit 1 || exit 0 ;
cleanup:
name: Cleanup
needs: test-microvm
if: always()
runs-on: ubuntu-latest
steps:
- name: Cleanup
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.hostname }}
username: ${{ secrets.username }}
key: ${{ secrets.sshkey }}
port: ${{ secrets.portnum }}
script: |
cd kernel-release
git checkout --force dev
git clean -fdx
git remote prune origin