ci: switched build implementation to buildx

This commit is contained in:
ITQ
2025-12-14 15:05:31 +03:00
parent 5f355353fb
commit 6d44e336e3
+20 -26
View File
@@ -39,15 +39,6 @@ cache:
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
.buildah-job: &buildah-job
image: quay.io/containers/buildah:latest
variables:
STORAGE_DRIVER: vfs
BUILDAH_FORMAT: oci
BUILDAH_ISOLATION: chroot
before_script:
- buildah login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
.trivy-fs-template: &trivy-fs-scan
image:
name: docker.io/aquasec/trivy:latest
@@ -129,20 +120,23 @@ cache:
# when: on_success
.build-template: &build-config
<<: *buildah-job
<<: *docker-job
stage: build
variables:
DOCKER_BUILDKIT: 1
BUILDKIT_INLINE_CACHE: 1
script:
- docker buildx create --use || true
- |
buildah bud \
--tag $IMAGE_NAME:$CI_COMMIT_SHA \
--file $CONTAINERFILE \
docker buildx build . \
-t $IMAGE_NAME:$CI_COMMIT_SHA \
-f $CONTAINERFILE \
--target $BUILDTARGET \
--push \
--build-arg SERVICE_NAME=${SERVICE_NAME} \
--layers \
--cache-from $IMAGE_NAME-cache \
--cache-to $IMAGE_NAME-cache \
.
- buildah push $IMAGE_NAME:$CI_COMMIT_SHA
--build-arg BUILDKIT_INLINE_CACHE=1 \
--cache-from type=registry,ref=$IMAGE_NAME-cache \
--cache-to type=registry,ref=$IMAGE_NAME-cache,mode=max,oci-mediatypes=true,image-manifest=true,compression=zstd
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always
@@ -153,26 +147,26 @@ cache:
allow_failure: true
.tag-template: &tag-config
<<: *buildah-job
<<: *docker-job
stage: tag
script:
- |
set -euo pipefail
buildah pull $IMAGE_NAME:$CI_COMMIT_SHA
docker pull "$IMAGE_NAME:$CI_COMMIT_SHA"
if [ -n "${CI_COMMIT_TAG:-}" ]; then
buildah tag $IMAGE_NAME:$CI_COMMIT_SHA $IMAGE_NAME:$CI_COMMIT_TAG
buildah push $IMAGE_NAME:$CI_COMMIT_TAG
docker tag "$IMAGE_NAME:$CI_COMMIT_SHA" "$IMAGE_NAME:$CI_COMMIT_TAG"
docker push "$IMAGE_NAME:$CI_COMMIT_TAG"
fi
if [ -n "${CI_COMMIT_BRANCH:-}" ]; then
buildah tag $IMAGE_NAME:$CI_COMMIT_SHA $IMAGE_NAME:$CI_COMMIT_REF_SLUG
buildah push $IMAGE_NAME:$CI_COMMIT_REF_SLUG
docker tag "$IMAGE_NAME:$CI_COMMIT_SHA" "$IMAGE_NAME:$CI_COMMIT_REF_SLUG"
docker push "$IMAGE_NAME:$CI_COMMIT_REF_SLUG"
if [ "$CI_COMMIT_BRANCH" = "$CI_DEFAULT_BRANCH" ]; then
buildah tag $IMAGE_NAME:$CI_COMMIT_SHA $IMAGE_NAME:latest
buildah push $IMAGE_NAME:latest
docker tag "$IMAGE_NAME:$CI_COMMIT_SHA" "$IMAGE_NAME:latest"
docker push "$IMAGE_NAME:latest"
fi
fi
rules: