Files
moss-kernel/.github/workflows/test.yml
Ashwin Naren a7e8f07686 unit testing
2026-02-18 22:23:40 -08:00

61 lines
2.0 KiB
YAML

name: Test
on:
push:
branches: [ master ]
workflow_dispatch:
pull_request:
branches: [ master ]
jobs:
build-test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
smp-feature: [ "", "smp" ]
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Build dockerfile
run: docker build -t moss .
# If all features are disabled
- name: Run tests inside docker container
if: ${{ matrix.smp-feature == '' }}
run: |
docker run moss "/bin/bash" -c "cargo run -r --no-default-features -- /bin/usertest" >> out.log
docker run moss "/bin/bash" -c "cargo test -r --no-default-features" >> out.log
# If any feature is enabled
- name: Run tests inside docker container
if: ${{ matrix.smp-feature == 'smp' }}
run: |
docker run moss "/bin/bash" -c "cargo run -r --no-default-features --features "${{ matrix.smp-feature }}" -- /bin/usertest" >> out.log
docker run moss "/bin/bash" -c "cargo test -r --no-default-features --features "${{ matrix.smp-feature }}"" >> out.log
- name: Display test output
run: cat out.log
- name: Check for success line
run: grep -q "All tests passed in " out.log || (echo "Tests failed" && exit 1)
- name: Upload test output as artifact
uses: actions/upload-artifact@v6
with:
name: test-output-${{ matrix.smp-feature || 'up' }}
path: out.log
upload-image:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Build dockerfile
run: docker build -t moss .
- name: Run container
run: docker run -d --name moss-container moss
- name: Copy image file
run: docker cp moss-container:/moss/moss.img moss.img
- name: Upload image as artifact
uses: actions/upload-artifact@v6
with:
name: moss.img
path: moss.img