Skip to content

Commit

Permalink
Run chroot tests in GHA
Browse files Browse the repository at this point in the history
We ran those in GitLab but now that the integration test works we can also move those.

The debootstrap.log is not uploaded for now.
  • Loading branch information
Michael Vasseur committed Nov 21, 2024
1 parent 7c890e8 commit ca16e75
Show file tree
Hide file tree
Showing 6 changed files with 87 additions and 66 deletions.
4 changes: 2 additions & 2 deletions gitlab/chroot.bats → .github/jobs/chroot.bats
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
load 'assert'

CHROOT="/chroot/domjudge"
if [ -n "${CI_JOB_ID+x}" ]; then
CHROOT="/builds/DOMjudge/domjudge${CHROOT}"
if [ -n "${GITHUB_REPOSITORY+x}" ]; then
CHROOT="/__w/domjudge/domjudge${CHROOT}"
fi
# Cleanup old dir
rm -rf $CHROOT
Expand Down
55 changes: 55 additions & 0 deletions .github/jobs/chroot_checks.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#!/bin/bash

. .github/jobs/ci_settings.sh

if [ -n "$1" ] && [ "$1" != "default" ]; then
export ARCH="$1"
fi

function finish() {
echo -e "\\n\\n=======================================================\\n"
echo "Storing artifacts..."
trace_on
set +e
cp /proc/cmdline "$ARTIFACTS/cmdline"
cp /__w/domjudge/domjudge/chroot/domjudge/etc/apt/sources.list "$ARTIFACTS/sources.list"
cp /__w/domjudge/domjudge/chroot/domjudge/debootstrap/debootstrap.log "$ARTIFACTS/debootstrap.log"
}

FAILED=0

trap finish EXIT

DIR=$PWD
section_start "Debug info"
lsb_release -a | tee -a "$ARTIFACTS/debug-info"
mount | tee -a "$ARTIFACTS/debug-info"
whoami | tee -a "$ARTIFACTS/debug-info"
echo "Dir: $DIR" | tee -a "$ARTIFACTS/debug-info"
section_end

section_start "Basic judgehost install"
chown -R domjudge ./

# configure, make and install (but skip documentation)
sudo -u domjudge make configure
sudo -u domjudge ./configure --with-baseurl='http://localhost/domjudge/' --with-domjudge-user=domjudge --with-judgehost_chrootdir=${DIR}/chroot/domjudge |& tee "$ARTIFACTS/configure.log"
sudo -u domjudge make judgehost |& tee "$ARTIFACTS/make.log"
make install-judgehost |& tee -a "$ARTIFACTS/make.log"
section_end setup

section_start "Configure chroot"

cd /opt/domjudge/judgehost/bin || exit 1
section_end chroot

section_start "Show minimal chroot"
./dj_make_chroot -a "$ARCH" | tee -a "$ARTIFACTS"/chroot.log
section_end

section_start "Test chroot contents"
set -xe
cp ${DIR}/submit/assert.bash .
cp ${DIR}/.github/jobs/chroot.bats .
bats ./chroot.bats
section_end
30 changes: 30 additions & 0 deletions .github/workflows/chroot-checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Chroot checks
on:
push:
pull_request:
branches:
- main
- '[0-9]+.[0-9]+'

jobs:
check-chroot-arch:
runs-on: ubuntu-latest
container:
image: domjudge/gitlabci:24.04
options: --privileged --cgroupns=host --init
strategy:
matrix:
arch: [amd64, arm64, armhf, i386, default]
steps:
- name: Checkout current code
uses: actions/checkout@v4
- name: Install DOMjudge
run: |
.github/jobs/chroot_checks.sh ${{ matrix.arch }}
- name: Upload all logs/artifacts
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.arch }}-logs
path: |
/tmp/artifacts
2 changes: 0 additions & 2 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
include:
- '/gitlab/ci/unit.yml'
- '/gitlab/ci/template.yml'
- '/gitlab/ci/misc.yml'

stages:
- test
- chroot_checks
- unit
- style
- ci_checks
Expand Down
45 changes: 0 additions & 45 deletions gitlab/chroot_checks.sh

This file was deleted.

17 changes: 0 additions & 17 deletions gitlab/ci/misc.yml

This file was deleted.

0 comments on commit ca16e75

Please sign in to comment.