Browse Source
Adds simple jobs for building the the Engine for Debian 10. Pre-built docker images containing des will be pulled down and used to build the Adapter. Upon successful compilation an image containing the build output will be pushed to a docker registry.JNI-129

5 changed files with 160 additions and 0 deletions
@ -0,0 +1,34 @@ |
|||||
|
.ensure_docker: &ensure_docker |
||||
|
# Check for docker and install if missing |
||||
|
- 'which docker || ( sudo apt-get update -y && sudo apt-get install docker.io -y )' |
||||
|
|
||||
|
.ensure_rsync: &ensure_rsync |
||||
|
# Install rsync and deps if missing |
||||
|
- 'which ssh-agent || ( sudo apt-get update -y && sudo apt-get install openssh-client -y )' |
||||
|
- 'which rsync || ( sudo apt-get update -y && sudo apt-get install rsync -y )' |
||||
|
- 'which make || ( sudo apt-get update -y && sudo apt-get install make -y )' |
||||
|
|
||||
|
.enable_insecure_docker_registries: &enable_insecure_docker_registries |
||||
|
# Enable "insecure" docker registries |
||||
|
- | |
||||
|
cat <<EOD > /tmp/docker-daemon.json |
||||
|
{ |
||||
|
"insecure-registries" : ["${DOCKER_REGISTRY_HOST}"] |
||||
|
} |
||||
|
EOD |
||||
|
- sudo cp /tmp/docker-daemon.json /etc/docker/daemon.json |
||||
|
- sudo systemctl restart docker.service |
||||
|
|
||||
|
.standard_job: |
||||
|
tags: [kvm] |
||||
|
before_script: |
||||
|
- *ensure_docker |
||||
|
- *ensure_rsync |
||||
|
- *enable_insecure_docker_registries |
||||
|
|
||||
|
.make_in_docker: |
||||
|
extends: .standard_job |
||||
|
script: |
||||
|
- docker login -u ${DOCKER_REGISTRY_USER} -p ${DOCKER_REGISTRY_PASS} ${DOCKER_REGISTRY_HOST} |
||||
|
- cd scripts/${CI_DISTRO_TARGET} |
||||
|
- make |
@ -0,0 +1,43 @@ |
|||||
|
include: |
||||
|
- '.gitlab-ci-files/common-prepare.yml' |
||||
|
|
||||
|
stages: |
||||
|
- build |
||||
|
|
||||
|
|
||||
|
# CentOS/RHEL |
||||
|
|
||||
|
centos8:build: |
||||
|
extends: .make_in_docker |
||||
|
stage: build |
||||
|
variables: |
||||
|
CI_DISTRO_TARGET: "centos8" |
||||
|
|
||||
|
centos8:tagged-build: |
||||
|
extends: .make_in_docker |
||||
|
stage: build |
||||
|
variables: |
||||
|
CI_DISTRO_TARGET: "centos8" |
||||
|
TAGGED_BUILD: "true" |
||||
|
rules: |
||||
|
- if: $CI_COMMIT_TAG |
||||
|
|
||||
|
# Debian |
||||
|
|
||||
|
debian10:build: |
||||
|
extends: .make_in_docker |
||||
|
stage: build |
||||
|
variables: |
||||
|
CI_DISTRO_TARGET: "debian10" |
||||
|
DEBIAN_FRONTEND: "noninteractive" |
||||
|
|
||||
|
debian10:tagged-build: |
||||
|
extends: .make_in_docker |
||||
|
stage: build |
||||
|
variables: |
||||
|
CI_DISTRO_TARGET: "debian10" |
||||
|
DEBIAN_FRONTEND: "noninteractive" |
||||
|
TAGGED_BUILD: "true" |
||||
|
rules: |
||||
|
- if: $CI_COMMIT_TAG |
||||
|
|
@ -0,0 +1,31 @@ |
|||||
|
include ../../DEPENDENCIES |
||||
|
export
|
||||
|
LIBPEPADAPTER_VERSION=${libpEpAdapter} |
||||
|
PEPENGINE_VERSION=${pEpEngine} |
||||
|
SEQUOIA_VERSION=${sequoia} |
||||
|
CURRENT_DISTRO=$(shell basename $(shell pwd)) |
||||
|
IMAGE_NAME=${DOCKER_REGISTRY_HOST}/pep-$(CURRENT_DISTRO)-jniadapter |
||||
|
DOCKERFILE=pEpJNIAdapter.$(CURRENT_DISTRO).Dockerfile |
||||
|
IS_TAGGED=${TAGGED_BUILD} |
||||
|
ifeq ($(IS_TAGGED), true) |
||||
|
# $CI_COMMIT_TAG is a predefined environment variable from Gitlab
|
||||
|
PEPJNIADAPTER_VERSION=${CI_COMMIT_TAG} |
||||
|
else |
||||
|
PEPJNIADAPTER_VERSION=$(shell git rev-parse --short=8 HEAD) |
||||
|
endif |
||||
|
all: |
||||
|
-docker pull $(IMAGE_NAME):latest |
||||
|
cd ../../ && docker build --build-arg CURRENT_DISTRO=$(CURRENT_DISTRO) \
|
||||
|
--build-arg DOCKER_REGISTRY_HOST=${DOCKER_REGISTRY_HOST} \
|
||||
|
--build-arg PEPJNIADAPTER_VERSION=$(PEPJNIADAPTER_VERSION) \
|
||||
|
--build-arg LIBPEPADAPTER_VERSION=$(LIBPEPADAPTER_VERSION) \
|
||||
|
--build-arg PEPENGINE_VERSION=$(PEPENGINE_VERSION) \
|
||||
|
--build-arg SEQUOIA_VERSION=$(SEQUOIA_VERSION) \
|
||||
|
--cache-from $(IMAGE_NAME):latest \
|
||||
|
--tag=$(IMAGE_NAME):$(PEPJNIADAPTER_VERSION) \
|
||||
|
--tag=$(IMAGE_NAME):$(PEPJNIADAPTER_VERSION)_libpepadapter-$(LIBPEPADAPTER_VERSION)_engine-$(PEPENGINE_VERSION) \
|
||||
|
--tag=$(IMAGE_NAME):latest \
|
||||
|
-f scripts/${CURRENT_DISTRO}/$(DOCKERFILE) . |
||||
|
docker push $(IMAGE_NAME):$(PEPJNIADAPTER_VERSION) |
||||
|
docker push $(IMAGE_NAME):$(PEPJNIADAPTER_VERSION)_libpepadapter-$(LIBPEPADAPTER_VERSION)_engine-$(PEPENGINE_VERSION) |
||||
|
docker push $(IMAGE_NAME):latest |
@ -0,0 +1,28 @@ |
|||||
|
#!/usr/bin/env sh |
||||
|
set -exo |
||||
|
|
||||
|
export LC_ALL=en_US.UTF-8 && \ |
||||
|
|
||||
|
# JAVA_HOME (only for the pEpJNIAdapter) |
||||
|
if [ $(uname) == "Linux" ]; then { |
||||
|
export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/javac))); |
||||
|
} fi |
||||
|
if [ $(uname) == "Darwin" ]; then { |
||||
|
export JAVA_HOME=$(dirname $(dirname $(readlink /usr/bin/javac))); |
||||
|
} fi |
||||
|
echo $JAVA_HOME |
||||
|
|
||||
|
cat >local.conf <<__LOCAL__ |
||||
|
PREFIX=${INSTPREFIX} |
||||
|
DEBUG=0 |
||||
|
JAVA_HOME=${JAVA_HOME} |
||||
|
YML2_PATH=${INSTPREFIX}/yml2 |
||||
|
YML2_PROC=${INSTPREFIX}/yml2/yml2proc --encoding=utf8 |
||||
|
#YML2_OPTS=--encoding=utf8 |
||||
|
ENGINE_INC_PATH=${INSTPREFIX}/include |
||||
|
ENGINE_LIB_PATH=${INSTPREFIX}/lib |
||||
|
AD_INC_PATH=${INSTPREFIX}/include |
||||
|
AD_LIB_PATH=${INSTPREFIX}/lib |
||||
|
__LOCAL__ |
||||
|
|
||||
|
make WARN= DEBUG= |
@ -0,0 +1,24 @@ |
|||||
|
ARG DOCKER_REGISTRY_HOST |
||||
|
ARG CURRENT_DISTRO |
||||
|
ARG LIBPEPADAPTER_VERSION |
||||
|
ARG PEPENGINE_VERSION |
||||
|
FROM ${DOCKER_REGISTRY_HOST}/pep-${CURRENT_DISTRO}-libpepadapter:${LIBPEPADAPTER_VERSION}_engine-${PEPENGINE_VERSION} |
||||
|
|
||||
|
ENV BUILDROOT /build |
||||
|
ENV INSTPREFIX /install |
||||
|
ENV OUTDIR /out |
||||
|
|
||||
|
### Setup working directory |
||||
|
RUN mkdir ${BUILDROOT}/pEpJNIAdapter |
||||
|
COPY . ${BUILDROOT}/pEpJNIAdapter |
||||
|
USER root |
||||
|
RUN chown -R pep-builder:pep-builder ${BUILDROOT}/pEpJNIAdapter |
||||
|
USER pep-builder |
||||
|
WORKDIR ${BUILDROOT}/pEpJNIAdapter |
||||
|
|
||||
|
ARG PEPJNIADAPTER_VERSION |
||||
|
ARG CURRENT_DISTRO |
||||
|
|
||||
|
### Build libpEpAdapter |
||||
|
RUN sh ./scripts/${CURRENT_DISTRO}/build_pEpJNIAdapter.sh && \ |
||||
|
rm -rf ${BUILDROOT}/* |
Loading…
Reference in new issue