Update Dockerfile and CI

This commit is contained in:
BloxerHD 2025-11-03 07:25:19 +00:00
commit 4d0dfccdb3
21 changed files with 792 additions and 20 deletions

View file

@ -1,25 +1,41 @@
image: docker:latest
default:
image: docker:28.5.1-dind
services:
- "docker:28.5.1-dind"
variables:
IMAGE_NAME: "ci.perditum.com/perditum/account-rs"
DOCKER_TLS_CERTDIR: "/certs"
IMAGE_TAG: "${CI_COMMIT_REF_SLUG}"
before_script:
- git submodule update --init
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" ci.perditum.com
stages:
- build
- test
- build-and-push-image
- push-retagged-latest
build_and_push:
stage: build
test:
stage: test
image: rust:alpine3.22
script:
- apk add --no-cache musl-dev openssl-dev openssl-libs-static protobuf-dev lld git
- git submodule update --init
- cargo test
build-and-push-image:
stage: build-and-push-image
script:
- echo "DATABASE_URL=$DATABASE_URL" > .env
- docker build -t "$IMAGE_NAME:$IMAGE_TAG" .
- |
if [ "$CI_COMMIT_REF_NAME" = "main" ]; then
docker tag "$IMAGE_NAME:$IMAGE_TAG" "$IMAGE_NAME:latest"
docker push "$IMAGE_NAME:latest"
else
echo "skipping push"
fi
- git submodule update --init
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker build -t "$CI_REGISTRY_IMAGE:$IMAGE_TAG" .
- docker push "$CI_REGISTRY_IMAGE:$IMAGE_TAG"
push-retagged-latest:
stage: push-retagged-latest
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker pull "$CI_REGISTRY_IMAGE:$IMAGE_TAG"
- docker tag "$CI_REGISTRY_IMAGE:$IMAGE_TAG" "$CI_REGISTRY_IMAGE:latest"
- docker push "$CI_REGISTRY_IMAGE:latest"
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: on_success