Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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, 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.

52 changes: 0 additions & 52 deletions gitlab/ci/webstandard.yml

This file was deleted.

Loading