Skip to content
Snippets Groups Projects
Commit 06c7a4b6 authored by Jens Steidl's avatar Jens Steidl :baby_chick:
Browse files

- added Dockerfile & build job for debian

parent 068224b4
No related branches found
No related tags found
No related merge requests found
Pipeline #4983 failed
# This file is a template, and might need editing before it works on your project.
# This is a sample GitLab CI/CD configuration file that should run without any modifications.
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts,
# it uses echo commands to simulate the pipeline execution.
#
# A pipeline is composed of independent jobs that run scripts, grouped into stages.
# Stages run in sequential order, but jobs within stages run in parallel.
#
# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages
#
# You can copy and paste this template into a new `.gitlab-ci.yml` file.
# You should not add this template to an existing `.gitlab-ci.yml` file by using the `include:` keyword.
#
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml
image: sdvharbor.slub-dresden.de/replication/debian:bookworm-slim
before_script:
- apt-get update && \
apt-get dist-upgrade -y && \
apt-get autoremove -y && \
apt-get install -y dpkg git sed shellcheck
variables:
DOCKERFILE_DEB: "${CI_PROJECT_DIR}/gitlab-ci/Dockerfile_DEB"
IMAGE_TARGET_DEB: "${CI_REGISTRY_IMAGE}/debian12_validate_workflows_build_env"
stages: # List of stages for jobs, and their order of execution
- build
- test
- packaging
test-job: # This job runs in the test stage.
.build-env-job:
stage: build
timeout: 10m
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 "${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
build-deb-env-job:
extends: .build-env-job
variables:
DOCKERFILE: ${DOCKERFILE_DEB}
IMAGE_TARGET: ${IMAGE_TARGET_DEB}
test-in-debian-job: # This job runs in the test stage.
stage: test # It only starts when the job in the build stage completes successfully.
timeout: 5m
tags:
- "docker"
image:
name: "${IMAGE_TARGET_DEB}:latest"
script:
- shellcheck --color=always --shell=bash --enable=all --exclude=SC2317 "validate_workflow.sh"
packaging-job:
packaging-deb-job:
stage: packaging
timeout: 5m
image:
name: "${IMAGE_TARGET_DEB}:latest"
tags:
- "docker"
script:
# HINT: current working dir == '/builds/digital-preservation/validate_workflows' as root
# retrieve version infos
......
FROM sdvharbor.slub-dresden.de/replication/debian:bookworm-slim
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get dist-upgrade -y && \
apt-get autoremove -y && \
apt-get install -y dpkg git sed spellcheck && \
apt-get autoclean -y
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment