chore(CI): build image on tag & tag images with short sha instead of date

This commit is contained in:
technofab 2024-09-13 17:54:24 +02:00
parent 97f49cbdf6
commit a2a7f7c4ed

View file

@ -1,15 +1,13 @@
include: include:
- component: $CI_SERVER_FQDN/$CI_PROJECT_PATH/nix-gitlab-ci@$CI_COMMIT_SHA - component: $CI_SERVER_FQDN/$CI_PROJECT_PATH/nix-gitlab-ci@$CI_COMMIT_SHA
stages: stages:
- build - build
- trigger - trigger
build:image: build:image:
stage: build stage: build
parallel: parallel:
matrix: matrix:
- VARIANT: [ "", "-cachix", "-attic" ] - VARIANT: ["", "-cachix", "-attic"]
image: nixpkgs/nix-flakes:latest image: nixpkgs/nix-flakes:latest
before_script: before_script:
- nix profile install nixpkgs#skopeo - nix profile install nixpkgs#skopeo
@ -17,9 +15,18 @@ build:image:
script: script:
- nix build .#image${VARIANT} - nix build .#image${VARIANT}
- export NORMALIZED_BRANCH=${CI_COMMIT_BRANCH/\//-} - export NORMALIZED_BRANCH=${CI_COMMIT_BRANCH/\//-}
- skopeo --insecure-policy copy --dest-creds "${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD}" --tmpdir /tmp - skopeo --insecure-policy copy --dest-creds "${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD}" --tmpdir /tmp "docker-archive:result" "docker://$CI_REGISTRY_IMAGE/nix-ci:${CI_COMMIT_SHORT_SHA}${VARIANT}"
"docker-archive:result" # branches
"docker://$CI_REGISTRY_IMAGE/nix-ci:${NORMALIZED_BRANCH/main/latest}${VARIANT}" - |
- skopeo --insecure-policy copy --dest-creds "${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD}" --tmpdir /tmp if [ -z "$CI_COMMIT_TAG" ]; then
"docker-archive:result" skopeo --insecure-policy copy --dest-creds "${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD}" --tmpdir /tmp \
"docker://$CI_REGISTRY_IMAGE/nix-ci:$(date +"%m-%d-%y")${VARIANT}" "docker-archive:result" \
"docker://$CI_REGISTRY_IMAGE/nix-ci:${NORMALIZED_BRANCH/main/latest}${VARIANT}";
fi
# tags
- |
if [ -n "$CI_COMMIT_TAG" ]; then
skopeo --insecure-policy copy --dest-creds "${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD}" --tmpdir /tmp \
"docker-archive:result" \
"docker://$CI_REGISTRY_IMAGE/nix-ci:${CI_COMMIT_TAG}${VARIANT}";
fi