Added build and integration test steps to the manual workflow.

This commit is contained in:
Ivan Davidov 2021-07-22 03:07:31 +03:00
parent 2eed414468
commit b5271985e3
7 changed files with 166 additions and 6 deletions

9
.github/99_autoshutdown.sh vendored Normal file
View File

@ -0,0 +1,9 @@
#!/bin/sh
# This script shuts down the OS after one minute.
sleep 30 && poweroff &
cat << CEOF
 Minimal Linux Live will shut down in 30 seconds.
CEOF

45
.github/build_mll.sh vendored Normal file
View File

@ -0,0 +1,45 @@
#!/bin/sh
# This script is supposed to be executed by GitHub workflow.
set -e
cd ../src
sudo apt-get -qq -y install wget make gawk gcc bc xz-utils bison flex xorriso libelf-dev libssl-dev
PREFIXES="00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16"
for PREFIX in ${PREFIXES}
do
SCRIPTS=`ls ${PREFIX}_*.sh`
for SCRIPT in ${SCRIPTS}
do
echo "`date` | Running script '${SCRIPT}'."
set +e
./${SCRIPT} > /tmp/mll.log 2>&1
set -e
if [ "$?" = "0" ] ; then
echo "`date` | Success."
tail -n 40 /tmp/mll.log
echo "*** *** ***"
else
echo "`date` | !!! FAILURE !!!"
tail -n 1000 /tmp/mll.log
exit 1
fi
done
done
cat << CEOF
######################
# #
# MLL build is OK. #
# #
######################
CEOF
set +e

17
.github/github-ci.sh vendored Normal file
View File

@ -0,0 +1,17 @@
#!/bin/sh
# This script is supposed to be executed by GitHub workflow.
set -e
# Apply GitHub workflow specific patches
mkdir -p ../src/minimal_overlay/rootfs/etc/autorun
cp 99_autoshutdown.sh ../src/minimal_overlay/rootfs/etc/autorun
chmod +x ../src/minimal_overlay/rootfs/etc/autorun/99_autoshutdown.sh
cp -f syslinux.cfg ../src/minimal_boot/bios/boot/syslinux/syslinux.cfg
sed -i "s|OVERLAY_LOCATION.*|OVERLAY_LOCATION=rootfs|" ../src/.config
sudo apt-get -qq -y update
sudo apt-get -qq -y upgrade
set +e

6
.github/syslinux.cfg vendored Normal file
View File

@ -0,0 +1,6 @@
SERIAL 0
DEFAULT operatingsystem
LABEL operatingsystem
LINUX /boot/kernel.xz
APPEND console=tty0 console=ttyS0
INITRD /boot/rootfs.xz

27
.github/test_docker.sh vendored Normal file
View File

@ -0,0 +1,27 @@
#!/bin/sh
# This script is supposed to be executed by GitHub workflow.
set -e
cd ../src
echo "`date` | *** MLL Docker test - BEGIN ***"
docker import mll_image.tgz minimal-linux-live:latest
docker run minimal-linux-live /bin/cat /etc/motd
echo "`date` | *** MLL Docker test - END ***"
cat << CEOF
#########################
# #
# Docker test passed. #
# #
#########################
CEOF
set +e

47
.github/test_qemu.sh vendored Normal file
View File

@ -0,0 +1,47 @@
#!/bin/sh
# This script is supposed to be executed by GitHub workflow.
set -e
cd ../src
sudo apt-get -qq -y install qemu-system-x86-64
echo "`date` | *** MLL QEMU test - BEGIN ***"
qemu-system-x86_64 -m 256M -cdrom minimal_linux_live.iso -boot d -nographic &
sleep 5
if [ "`ps -ef | grep -i [q]emu-system-x86_64`" = "" ] ; then
echo "`date` | !!! FAILURE !!! Minimal Linux Live is not running in QEMU."
exit 1
else
echo "`date` | Minimal Linux Live is running in QEMU. Waiting 120 seconds for automatic shutdown."
fi
sleep 120
if [ "`ps -ef | grep -i [q]emu-system-x86_64`" = "" ] ; then
echo "`date` | Minimal Linux Live is not running in QEMU."
else
echo "`date` | !!! FAILURE !!! Minimal Linux Live is still running in QEMU."
ps -ef | grep -i [q]emu-system-x86_64
exit 1
fi
echo "`date` | *** MLL QEMU test - END ***"
cat << CEOF
#######################
# #
# QEMU test passed. #
# #
#######################
CEOF
set +e

View File

@ -1,14 +1,23 @@
name: 'Manual workflow' name: 'MLL With Integration Tests'
on: 'workflow_dispatch' on: 'workflow_dispatch'
jobs: jobs:
mll: mll:
runs-on: 'ubuntu-latest' runs-on: 'ubuntu-latest'
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: 'Install Prerequisites' - name: 'Apply Workflow Patches'
run: | run: |
sudo apt install wget make gawk gcc bc bison flex xorriso libelf-dev libssl-dev cd .github
- name: 'Build MLL' bash ./github-ci.sh
- name: 'Build Minimal Linux Live'
run: | run: |
cd src cd .github
./build_minimal_linux_live.sh bash ./build_mll.sh
- name: 'Test Docker'
run: |
cd .github
bash ./test_docker.sh
- name: 'Test QEMU'
run: |
cd .github
bash ./test_qemu.sh