From 2883b2ba03aeb70892153af676d191ccabb6e319 Mon Sep 17 00:00:00 2001 From: Andreas Romeyke <andreas.romeyke@slub-dresden.de> Date: Fri, 17 Feb 2023 11:29:49 +0100 Subject: [PATCH] - init --- .gitignore | 5 ++++ .gitlab-ci.yml | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 .gitignore create mode 100644 .gitlab-ci.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2145430 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea +*.jar +*.class +*~ +build/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..29d9c03 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,73 @@ +stages: # List of stages for jobs, and their order of execution + - build + - test + - packaging + +variables: + EXLIBRIS_SDK_DIR: "/exlibris" + ROSETTASDK: "${EXLIBRIS_SDK_DIR}/7.3/lib/" + IMAGE_TARGET: "$CI_REGISTRY_IMAGE/bullseye_subapp" + FF_USE_FASTZIP: "true" + # These can be specified per job or per pipeline + ARTIFACT_COMPRESSION_LEVEL: "fast" + CACHE_COMPRESSION_LEVEL: "fast" +# CI_DEBUG_TRACE: "true" + +default: + image: + # use this image for all later stages that happen after the build stage + name: "${IMAGE_TARGET}:latest" + +before_script: # These steps are run before EACH job. + - export ROSETTASDK="${ROSETTASDK}" + +build-env-job: # This job runs in the build stage, which runs first. + stage: build + timeout: 30m + tags: + - "docker" + image: + # Use Kaniko base image to build a Docker image to use as the base image for later jobs. + name: gcr.io/kaniko-project/executor:debug + entrypoint: [""] + # Do not run the before_script tasks here, they wouldn't be included in the Docker image. Instead, provide an empty list of tasks. + before_script: [] + # docu: https://docs.gitlab.com/ee/ci/docker/using_kaniko.html, this is basically copy-pasted from there + script: + - mkdir -p /kaniko/.docker + - echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$(printf "%s:%s" "$CI_REGISTRY_USER" "$CI_REGISTRY_PASSWORD" | base64 | tr -d '\n')\"},\"$(printf "%s" "$CI_DEPENDENCY_PROXY_SERVER" | cut -d':' -f1)\":{\"auth\":\"$(printf "%s:%s" "$CI_DEPENDENCY_PROXY_USER" "$CI_DEPENDENCY_PROXY_PASSWORD" | base64 | tr -d '\n')\"}}}" > /kaniko/.docker/config.json + # In this task, Kaniko executor is called to build the Image based on the Dockerfile provided with "--dockerfile". + - echo "CI_PROJECT_DIR=${CI_PROJECT_DIR}" + - >- + /kaniko/executor + --context "${CI_PROJECT_DIR}" + --dockerfile "${CI_PROJECT_DIR}/gitlab-ci/Dockerfile" + --destination "${IMAGE_TARGET}:latest" + --build-arg "GITDIR=${CI_PROJECT_DIR}" + --cache=true + --cache-repo=${CI_REGISTRY_IMAGE} + --cache-copy-layers=true + --snapshotMode=redo + --use-new-run + --ignore-var-run + +test-job: + stage: test + timeout: 3h + tags: + - "docker" + script: + - ls -lha /exlibris/ + - ROSETTASDK=$ROSETTASDK make -e check_prerequisites + - ROSETTASDK=$ROSETTASDK make -e test + +packaging-job: + stage: packaging + timeout: 3h + tags: + - "docker" + script: + - ROSETTASDK=$ROSETTASDK make -e + artifacts: + paths: + - ./*.jar -- GitLab