diff --git a/.gitlab-ci-files/common-prepare.yml b/.gitlab-ci-files/common-prepare.yml index 8053794..8edc3f0 100644 --- a/.gitlab-ci-files/common-prepare.yml +++ b/.gitlab-ci-files/common-prepare.yml @@ -19,4 +19,4 @@ script: - docker login -u ${DOCKER_REGISTRY_USER} -p ${DOCKER_REGISTRY_PASS} ${DOCKER_REGISTRY_HOST} - cd scripts/${CI_DISTRO_TARGET} - - make + - make ${MAKE_TARGET} diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e98ad89..58ecee1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -24,3 +24,23 @@ debian10:tagged-build: TAGGED_BUILD: "true" rules: - if: '$CI_COMMIT_TAG =~ /^Release_[0-9]+\.[0-9]+\.[0-9]+$/' + +debian10-java8:build: + extends: .make_in_docker + stage: build + variables: + CI_DISTRO_TARGET: "debian10" + MAKE_TARGET: "java8" + DEBIAN_FRONTEND: "noninteractive" + rules: + - if: '$CI_COMMIT_TAG !~ /^Release_[0-9]+\.[0-9]+\.[0-9]+$/' + +debian10-java8:tagged-build: + extends: .make_in_docker + stage: build + variables: + CI_DISTRO_TARGET: "debian10" + MAKE_TARGET: "java8" + DEBIAN_FRONTEND: "noninteractive" + rules: + - if: '$CI_COMMIT_TAG =~ /^Release_[0-9]+\.[0-9]+\.[0-9]+$/' diff --git a/scripts/debian10/Makefile b/scripts/debian10/Makefile index 55e980d..9e707e8 100644 --- a/scripts/debian10/Makefile +++ b/scripts/debian10/Makefile @@ -29,3 +29,20 @@ all: docker push $(IMAGE_NAME):$(PEPJNIADAPTER_VERSION) docker push $(IMAGE_NAME):$(PEPJNIADAPTER_VERSION)_libpepadapter-$(LIBPEPADAPTER_VERSION)_engine-$(PEPENGINE_VERSION) docker push $(IMAGE_NAME):latest + +java8: + -docker pull $(IMAGE_NAME)-java8: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)-java8:$(PEPJNIADAPTER_VERSION) \ + --tag=$(IMAGE_NAME)-java8:$(PEPJNIADAPTER_VERSION)_libpepadapter-$(LIBPEPADAPTER_VERSION)_engine-$(PEPENGINE_VERSION) \ + --tag=$(IMAGE_NAME)-java8:latest \ + -f scripts/${CURRENT_DISTRO}/java8.$(DOCKERFILE) . + docker push $(IMAGE_NAME)-java8:$(PEPJNIADAPTER_VERSION) + docker push $(IMAGE_NAME)-java8:$(PEPJNIADAPTER_VERSION)_libpepadapter-$(LIBPEPADAPTER_VERSION)_engine-$(PEPENGINE_VERSION) + docker push $(IMAGE_NAME)-java8:latest diff --git a/scripts/debian10/build_pEpJNIAdapter.sh b/scripts/debian10/build_pEpJNIAdapter.sh index 4ac3fe7..03ee8fa 100755 --- a/scripts/debian10/build_pEpJNIAdapter.sh +++ b/scripts/debian10/build_pEpJNIAdapter.sh @@ -4,7 +4,7 @@ set -exo export LC_ALL=en_US.UTF-8 && \ # JAVA_HOME (only for the pEpJNIAdapter) -export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/javac))); +export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac)))); echo "$JAVA_HOME" cat >local.conf <<__LOCAL__ diff --git a/scripts/debian10/java8.pEpJNIAdapter.debian10.Dockerfile b/scripts/debian10/java8.pEpJNIAdapter.debian10.Dockerfile new file mode 100644 index 0000000..8b93c8e --- /dev/null +++ b/scripts/debian10/java8.pEpJNIAdapter.debian10.Dockerfile @@ -0,0 +1,39 @@ +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 + +### Install Java 8 +USER root +RUN apt-get update -yqq && \ + apt-get install -yqq apt-transport-https ca-certificates wget dirmngr gnupg2 software-properties-common && \ + wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && \ + add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ && \ + apt-get update -yqq && \ + apt-get install -yqq adoptopenjdk-8-hotspot && \ + rm -rf /var/lib/apt/lists/* + +USER pep-builder + +### 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 && \ + install -m 644 -t ${INSTPREFIX}/lib dist/libpEpJNI.a && \ + install -m 755 -t ${INSTPREFIX}/lib dist/libpEpJNI.so && \ + install -m 644 -t ${INSTPREFIX}/lib dist/pEp.jar && \ + rm -rf ${BUILDROOT}/*