88 lines
2.3 KiB
YAML
88 lines
2.3 KiB
YAML
|
|
stages: # Define the stages of the pipeline.
|
|
- build
|
|
#- test
|
|
- release
|
|
|
|
# web-build: # This job runs in the build stage, which runs first.
|
|
# stage: build
|
|
# image: node:24
|
|
# script:
|
|
# - cd Web
|
|
# - npm install
|
|
# - npm run build
|
|
# artifacts: # Artifacts are files that are passed between stages.
|
|
# paths:
|
|
# - Web/dist/Web/browser # The 'dist' directory will be available in the next stage.
|
|
# when: on_success
|
|
# access: all
|
|
# expire_in: 30 days
|
|
|
|
# api-build:
|
|
# stage: build
|
|
# image: mcr.microsoft.com/dotnet/sdk:8.0
|
|
# script:
|
|
# - cd Api
|
|
# - dotnet publish Api.csproj --output ./build --runtime linux-x64 --configuration Release --self-contained true
|
|
# artifacts:
|
|
# paths:
|
|
# - Api/build
|
|
# when: on_success
|
|
# access: all
|
|
# expire_in: 30 days
|
|
|
|
semantic-release:
|
|
image: node:24
|
|
stage: release
|
|
script:
|
|
- apt update && apt install zip -y
|
|
- zip -r dist.zip Web/dist/Web/browser
|
|
- zip -r api.zip Api/build
|
|
- npm install --save-dev @semantic-release/gitlab
|
|
- npx semantic-release --debug
|
|
only:
|
|
- main
|
|
|
|
update_db:
|
|
image: mcr.microsoft.com/dotnet/sdk:8.0
|
|
stage: release
|
|
script:
|
|
- dotnet restore
|
|
- dotnet build
|
|
- dotnet ef database update --project Api/Api.csproj --startup-project Api/Api.csproj
|
|
variables:
|
|
ConnectionStrings__DefaultConnection: "Server=db;Database=CentrumDb;User=sa;Password=Your_password123;TrustServerCertificate=True;"
|
|
only:
|
|
- main
|
|
|
|
docker-build:
|
|
stage: build
|
|
image: docker:latest
|
|
tags:
|
|
- shared
|
|
services:
|
|
- name: docker:dind
|
|
alias: docker
|
|
variables:
|
|
DOCKER_DRIVER: overlay2
|
|
DOCKER_HOST: tcp://docker:2375
|
|
DOCKER_TLS_CERTDIR: ""
|
|
before_script:
|
|
- docker info
|
|
script:
|
|
- docker build -t centrum-api:latest -f Dockerfile .
|
|
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY
|
|
- docker tag centrum-api:latest $CI_REGISTRY_IMAGE:latest
|
|
- docker tag centrum-api:latest $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
|
|
- docker push $CI_REGISTRY_IMAGE:latest
|
|
|
|
docker-deploy:
|
|
stage: release
|
|
tags:
|
|
- production
|
|
script:
|
|
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY
|
|
- docker compose pull
|
|
- docker compose -f deployment/docker-compose.yaml up -d
|
|
- docker image prune -f -a
|