stages: - build - test - publish variables: DOCKER_IMAGE: registry.leon-hoppe.de/leon.hoppe/portfolio build: stage: build image: mcr.microsoft.com/dotnet/sdk:9.0 script: - dotnet restore - dotnet build --configuration Release --no-restore artifacts: paths: - "**/bin/Release" expire_in: 10 minutes test: stage: test image: mcr.microsoft.com/dotnet/sdk:9.0 script: - dotnet test --verbosity normal dependencies: - build publish: stage: publish tags: - docker script: - export VERSION=$(echo $CI_COMMIT_TAG | sed 's/^v//') - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin registry.leon-hoppe.de - docker build -t $DOCKER_IMAGE/api:$VERSION -t $DOCKER_IMAGE/api:latest -f src/Portfolio.Api/Dockerfile . - docker build -t $DOCKER_IMAGE/web:$VERSION -t $DOCKER_IMAGE/web:latest -f src/Portfolio.Web/Dockerfile . - docker push $DOCKER_IMAGE/api:$VERSION - docker push $DOCKER_IMAGE/web:$VERSION - docker push $DOCKER_IMAGE/api:latest - docker push $DOCKER_IMAGE/web:latest only: - tags