CI: execute testsuite in pipeline

After a successful build we should also run the testsuite. This commit
adds another stage to our CI pipeline which will do just that. This also
required some additions to the dependencies image.
pull/147/head
Devan Carpenter 3 weeks ago
parent 4966282fce
commit d7d9933b17
Signed by: dvn
GPG Key ID: E1707CFFD7B85A02

@ -1,12 +1,16 @@
include:
- '.gitlab-ci-files/common-prepare.yml'
# Pipeline-wide variables; Applies to all jobs.
variables:
PEP_MACHINE_DIR: "/install/share/pEp"
CARGO_HOME: /cargo
CARGO_TARGET_DIR:
stages:
- deps
- build
- build-docker
- packages
- test
# Debian
@ -18,8 +22,6 @@ debian11:deps:
CI_DISTRO_TARGET: "debian11"
DEBIAN_FRONTEND: "noninteractive"
BUILD: /build
CARGO_HOME: /cargo
CARGO_TARGET_DIR:
rules:
- changes:
- DEPENDENCIES
@ -30,12 +32,16 @@ debian11:build:
tags:
- linux
stage: build
image: ${DOCKER_REGISTRY_HOST}/pep-debian11-engine-deps:latest
image: ${DOCKER_REGISTRY_HOST}/pep-debian11-engine-deps:${CI_COMMIT_REF_SLUG}
script:
- cd scripts/ci/${CI_DISTRO_TARGET}
- make ${MAKE_TARGET}
- ./scripts/ci/common/prep_build.sh
- make all
- make db
- make install
variables:
MAKE_TARGET: "build"
DEBUG: "maintainer"
PKG_CONFIG_PATH: "$INSTPREFIX/share/pkgconfig/"
LC_ALL: "en_US.UTF-8"
CI_DISTRO_TARGET: "debian11"
DEBIAN_FRONTEND: "noninteractive"
rules:
@ -45,37 +51,35 @@ debian11:tagged-build:
tags:
- linux
stage: build
image: ${DOCKER_REGISTRY_HOST}/pep-debian11-engine-deps:latest
image: ${DOCKER_REGISTRY_HOST}/pep-debian11-engine-deps:${CI_COMMIT_REF_SLUG}
script:
- cd scripts/ci/${CI_DISTRO_TARGET}
- make ${MAKE_TARGET}
- ./scripts/ci/common/prep_build.sh
- make all
- make db
- make install
variables:
MAKE_TARGET: "build"
DEBUG: "release"
PKG_CONFIG_PATH: "$INSTPREFIX/share/pkgconfig/"
LC_ALL: "en_US.UTF-8"
CI_DISTRO_TARGET: "debian11"
DEBIAN_FRONTEND: "noninteractive"
TAGGED_BUILD: "true"
rules:
- if: '$CI_COMMIT_TAG =~ /^Release_[0-9]+\.[0-9]+\.[0-9]+$/'
debian11:build-docker:
extends: .make_in_docker
stage: build-docker
needs: ["debian11:build"]
variables:
MAKE_TARGET: "build-docker"
CI_DISTRO_TARGET: "debian11"
DEBIAN_FRONTEND: "noninteractive"
rules:
- if: '$CI_COMMIT_TAG !~ /^Release_[0-9]+\.[0-9]+\.[0-9]+$/'
debian11:tagged-build-docker:
extends: .make_in_docker
stage: build-docker
needs: ["debian11:tagged-build"]
debian11:test:
tags:
- linux
image: ${DOCKER_REGISTRY_HOST}/pep-debian11-engine-deps:${CI_COMMIT_REF_SLUG}
stage: test
script:
- ./scripts/ci/common/prep_build.sh
- make dbinstall
- LD_LIBRARY_PATH=/install/lib:$LD_LIBARY_PATH make test
after_script:
- cat local.conf
variables:
MAKE_TARGET: "build-docker"
DEBUG: "maintainer"
PKG_CONFIG_PATH: "$INSTPREFIX/share/pkgconfig/"
LC_ALL: "en_US.UTF-8"
CI_DISTRO_TARGET: "debian11"
DEBIAN_FRONTEND: "noninteractive"
TAGGED_BUILD: "true"
rules:
- if: '$CI_COMMIT_TAG =~ /^Release_[0-9]+\.[0-9]+\.[0-9]+$/'

@ -1,6 +1,9 @@
#!/usr/bin/env sh
set -exo
### Test Deps
git clone https://github.com/google/gtest-parallel.git $BUILDROOT/gtest-parallel
### sequoia
echo SEQUOIA_VERSION=${SEQUOIA_VERSION}
git clone --depth=1 https://gitea.pep.foundation/pEp.foundation/pEpEngineSequoiaBackend -b ${SEQUOIA_VERSION} $BUILDROOT/pEpEngineSequoiaBackend

@ -1,8 +1,6 @@
#!/usr/bin/env sh
set -exo
export LC_ALL=en_US.UTF-8
cat >local.conf <<__LOCAL__
PREFIX=${INSTPREFIX}
SQLITE3_FROM_OS=""
@ -14,12 +12,13 @@ ETPAN_INC=-I${INSTPREFIX}/libetpan/include
ASN1C=${INSTPREFIX}/asn1c/bin/asn1c
ASN1C_INC=-I${INSTPREFIX}/asn1c/share/asn1c
OPENPGP=SEQUOIA
SEQUOIA_LIB=-L${INSTPREFIX}/lib
SEQUOIA_LDFLAGS=-L${INSTPREFIX}/lib
SEQUOIA_INC=-I${INSTPREFIX}/include
LDFLAGS += -L${INSTPREFIX}/lib -L${INSTPREFIX}/libetpan/lib -L${INSTPREFIX}/pep/lib -nostartfiles
LDFLAGS += -L${INSTPREFIX}/lib -L${INSTPREFIX}/libetpan/lib -L${INSTPREFIX}/pep/lib
GTEST_SRC_DIR=/usr/src/gtest
GTEST_PL=${BUILDROOT}/gtest-parallel/gtest_parallel.py
MAXLOGLEVEL=EVERYTHING
LOGDESTINATIONS=PEP_LOG_DESTINATION_STDOUT
__LOCAL__
cat local.conf
export PKG_CONFIG_PATH=$INSTPREFIX/share/pkgconfig/
make all && make db && make install

@ -31,9 +31,11 @@ deps:
--build-arg CARGO_TARGET_DIR=$(CARGO_TARGET_DIR) \
--cache-from $(IMAGE_NAME)-deps:latest \
--tag=$(IMAGE_NAME)-deps:$(SEQUOIA_VERSION)-$(YML2_VERSION) \
--tag=$(IMAGE_NAME)-deps:${CI_COMMIT_REF_SLUG} \
--tag=$(IMAGE_NAME)-deps:latest \
-f scripts/ci/${CURRENT_DISTRO}/deps.$(DOCKERFILE) .
docker push $(IMAGE_NAME)-deps:$(SEQUOIA_VERSION)-$(YML2_VERSION)
docker push $(IMAGE_NAME)-deps:${CI_COMMIT_REF_SLUG}
docker push $(IMAGE_NAME)-deps:latest
build:

@ -46,15 +46,23 @@ COPY ./scripts/ci/common/build_pEpEngine_deps.sh ${BUILDROOT}/pEpEngine
# Install the common system dependencies for building the pEp Software Stack.
RUN apt-get update -y -qq && \
apt-get upgrade -y -qq && \
apt-get install -y -qq curl openssl libssl-dev pkg-config git \
mercurial capnproto clang sqlite3 libsqlite3-0 \
mercurial capnproto clang sqlite3 libsqlite3-0 libgtest-dev \
libsqlite3-dev python3 python3-lxml build-essential automake \
libtool autoconf make nettle-dev capnproto uuid-dev bzip2 && \
libtool autoconf make nettle-dev capnproto uuid-dev bzip2 \
cmake faketime opendoas && \
rm -rf /var/lib/apt/lists/*
## gtest source installed by operating system package libgtest-dev
RUN cd /usr/src/gtest && \
cmake CMakeLists.txt && \
cd -
### Setup PEP_MACHINE_DIR
RUN mkdir -p ${PEP_MACHINE_DIR}
RUN echo 'permit nopass pep-builder as root' > /etc/doas.conf
RUN chown -R pep-builder:pep-builder ${BUILDROOT}/pEpEngine
WORKDIR ${BUILDROOT}/pEpEngine

@ -19,6 +19,7 @@ In addition to the engine requirements, you will need:
* `python3`
* `git` (for getting the `gtest-parallel` repository, unless you grab the
tarball from somewhere)
* `faketime`
## Building the prerequisites

Loading…
Cancel
Save