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