Files
Portfolio/.gitlab-ci.yml
2025-01-26 16:32:11 +01:00

45 lines
1.1 KiB
YAML

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
image: docker:latest
services:
- name: docker:dind
alias: docker
script:
- export VERSION=$(echo $CI_COMMIT_TAG | sed 's/^v//')
- docker login -u leon.hoppe -p ${CI_REGISTRY_PASSWORD} 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/api: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