Skip to content
Snippets Groups Projects
Commit 5c00a692 authored by michael.minelli's avatar michael.minelli
Browse files

Add container build pipeline

parent 4ab96cbc
Branches
Tags
No related merge requests found
Pipeline #25586 passed
variables:
GIT_SUBMODULE_STRATEGY: recursive
GIT_SUBMODULE_FORCE_HTTPS: "true"
DOCKER_HOST: tcp://docker:2375
DOCKER_TLS_CERTDIR:
DOCKER_DRIVER: overlay2
DOCKERFILE: Dockerfile_ExerciceChecker
PLATFORMS: linux/amd64,linux/arm64/v8
CHECKER_PROJECT_FOLDER: ExerciceChecker
stages:
- build
- release
default:
tags:
- docker
image: docker:latest
services:
- docker:dind
before_script:
- apk update
- apk add git
- apk add jq
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker buildx create --use
- >
VERSION=$(jq -r .version $CHECKER_PROJECT_FOLDER/package.json)
- >
CONTAINER_IMAGE=$CI_REGISTRY_IMAGE:$VERSION-dev
build:
stage: build
tags:
- build
script:
- apk add curl
- curl --silent "https://gitlab.com/gitlab-org/incubation-engineering/mobile-devops/download-secure-files/-/raw/main/installer" | sh
- mv .secure_files/env $CHECKER_PROJECT_FOLDER/.env
# Need to build for each platform separately because of multi-stage builds (docker buildx don't use cache same way as docker build)
- >
platform_array=$(echo $PLATFORMS | tr "," "\n");
for platform in $platform_array; do
echo "Buildind for : $platform"
docker buildx build --pull --platform $platform --file $DOCKERFILE --tag $CONTAINER_IMAGE .
done
# Here docker buildx can use cached images created in previous step
- docker buildx build --platform $PLATFORMS --file $DOCKERFILE --push --tag $CONTAINER_IMAGE .
rules:
- if: '$CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH =~ /^v_[0-9]+(\.[0-9]+)*$/ || $CI_COMMIT_TAG =~ /^v_[0-9]+(\.[0-9]+)*$/'
release-image:
stage: release
tags:
- release
script:
- docker buildx imagetools create $CONTAINER_IMAGE --tag $CI_REGISTRY_IMAGE:$VERSION
- docker buildx imagetools create $CONTAINER_IMAGE --tag $CI_REGISTRY_IMAGE:latest
rules:
- if: '$CI_COMMIT_BRANCH == "main"'
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment