contrib/ci: add test stage

This commit is contained in:
Martin Weinelt 2020-03-22 18:49:22 +01:00 committed by David Bauer
parent c5f43add3d
commit 772db95244
3 changed files with 30 additions and 6 deletions

View File

@ -34,6 +34,23 @@ pipeline {
sh 'make update' sh 'make update'
sh 'test -d /dl_cache && ln -s /dl_cache openwrt/dl || true' sh 'test -d /dl_cache && ln -s /dl_cache openwrt/dl || true'
sh 'make -j$(nproc) V=s' sh 'make -j$(nproc) V=s'
stash includes: '**/output/images/factory/*-x86-64.img.gz', name: 'gluon-x86-64-factory'
}
}
stage('test') {
agent { label 'gluon-docker-v2' }
environment {
TMUX = "notmux"
}
steps {
unstash 'gluon-x86-64-factory'
sh label: 'Unpack image', script: 'gunzip -cd ./output/images/factory/*x86-64*.img.gz > ./image.img'
sh label: 'Print python environment', script: 'python3 -m pip freeze'
script {
for (f in findFiles(glob: '**/tests/*.py')) {
sh label: "Test ${f.name}", script: "python3 tests/${f.name} --use-tmp-workdir"
}
}
} }
} }
} }
@ -49,4 +66,5 @@ pipeline {
can notify lemoer, that you have updated your node. can notify lemoer, that you have updated your node.
- gluon-docker-v1: add shellcheck binary to the build environment - gluon-docker-v1: add shellcheck binary to the build environment
- gluon-docker-v2: add qemu-testlab testing, requires KVM virtualization support
*/ */

View File

@ -5,8 +5,8 @@ USER root
# this is needed to install default-jre-headless in debian slim images # this is needed to install default-jre-headless in debian slim images
RUN mkdir -p /usr/share/man/man1 RUN mkdir -p /usr/share/man/man1
RUN apt-get update && apt-get install -y default-jre-headless curl python3 python3-pip python3-sphinx git RUN apt-get update && apt-get install -y default-jre-headless curl git netcat-openbsd python3 python3-pip qemu-system-x86 iproute2 openssh-client
RUN pip3 install jenkins-webapi sphinx_rtd_theme RUN python3 -m pip install jenkins-webapi sphinx sphinx_rtd_theme gluon-qemu-testlab==0.0.5
# Get docker-compose in the agent container # Get docker-compose in the agent container
RUN mkdir -p /home/jenkins RUN mkdir -p /home/jenkins

View File

@ -1,7 +1,11 @@
# Gluon CI using Jenkins # Gluon CI using Jenkins
## Requirements ## Requirements
- Only a host with docker. - Linux system
- with docker installed
- with Hardware Virtualisation (KVM Support)
- Verify using: `lscpu | grep vmx`
- If machine is virtualized host needs to load `kvm_intel` with `nested=1` option and cpuflags need to include `vmx`
## Architecture ## Architecture
@ -19,9 +23,11 @@ docker build -t gluon-jenkins .
mkdir /var/cache/openwrt_dl_cache/ mkdir /var/cache/openwrt_dl_cache/
chown 1000:1000 /var/cache/openwrt_dl_cache chown 1000:1000 /var/cache/openwrt_dl_cache
docker run --detach --restart always \ docker run --detach --restart always \
-e "SLAVE_NAME=whoareyou" \ --env "SLAVE_NAME=whoareyou" \
-e "SLAVE_SECRET=changeme" \ --env "SLAVE_SECRET=changeme" \
-v /var/cache/openwrt_dl_cache/:/dl_cache --device /dev/kvm:/dev/kvm \
--volume /var/cache/openwrt_dl_cache/:/dl_cache \
gluon-jenkins
``` ```
4. Check whether the instance is running correctly: 4. Check whether the instance is running correctly:
- Your node should appear [here](https://build.ffh.zone/label/gluon-docker/). - Your node should appear [here](https://build.ffh.zone/label/gluon-docker/).