mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender-pwa.git
synced 2025-07-16 09:38:51 +02:00
117 lines
2.5 KiB
YAML
117 lines
2.5 KiB
YAML
stages:
|
|
- lint
|
|
- build
|
|
- test
|
|
- docker
|
|
|
|
lint-frontend:
|
|
image: node:lts
|
|
stage: lint
|
|
rules:
|
|
- changes:
|
|
- frontend/**/*
|
|
script:
|
|
- cd frontend
|
|
- npm i
|
|
- npm run lint-no-fix
|
|
|
|
lint-backend:
|
|
stage: lint
|
|
image: golangci/golangci-lint:latest
|
|
rules:
|
|
- changes:
|
|
- backend/**/*
|
|
script:
|
|
- cd backend
|
|
- go mod download
|
|
- golangci-lint --version
|
|
- golangci-lint run -v --skip-dirs=migrations
|
|
|
|
|
|
build-backend:
|
|
image: golang:1.21-alpine
|
|
stage: build
|
|
rules:
|
|
- changes:
|
|
- backend/**/*
|
|
script:
|
|
- cd backend
|
|
- go build -o htwkalender
|
|
artifacts:
|
|
paths:
|
|
- backend/htwkalender
|
|
- backend/go.sum
|
|
- backend/go.mod
|
|
|
|
test-backend:
|
|
image: golang:1.21-alpine
|
|
stage: test
|
|
rules:
|
|
- changes:
|
|
- backend/**/*
|
|
script:
|
|
- cd backend
|
|
- go test -v ./...
|
|
dependencies:
|
|
- build-backend
|
|
|
|
test-frontend:
|
|
image: node:lts
|
|
stage: test
|
|
rules:
|
|
- changes:
|
|
- frontend/**/*
|
|
script:
|
|
- cd frontend
|
|
- npm i
|
|
- npm run test
|
|
dependencies:
|
|
- lint-frontend
|
|
|
|
build-backend-image:
|
|
stage: docker
|
|
image: docker:20.10.16
|
|
services:
|
|
- name: docker:20.10.16-dind
|
|
alias: docker
|
|
tags:
|
|
- image
|
|
variables:
|
|
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
|
|
DOCKER_HOST: tcp://docker:2376
|
|
DOCKER_TLS_CERTDIR: "/certs"
|
|
DOCKER_TLS_VERIFY: 1
|
|
DOCKER_CERT_PATH: "/certs/client"
|
|
script:
|
|
- cd backend
|
|
- docker login -u $CI_DOCKER_REGISTRY_USER -p $CI_DOCKER_REGISTRY_PASSWORD $CI_DOCKER_REGISTRY
|
|
- docker build -t htwkalender-backend$IMAGE_TAG .
|
|
- docker tag htwkalender-backend$IMAGE_TAG $CI_DOCKER_REGISTRY_USER/htwkalender:backend
|
|
- docker push $CI_DOCKER_REGISTRY_USER/htwkalender:backend
|
|
only:
|
|
- main
|
|
- development
|
|
|
|
build-frontend-image:
|
|
stage: docker
|
|
image: docker:20.10.16
|
|
services:
|
|
- name: docker:20.10.16-dind
|
|
alias: docker
|
|
tags:
|
|
- image
|
|
variables:
|
|
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
|
|
DOCKER_HOST: tcp://docker:2376
|
|
DOCKER_TLS_CERTDIR: "/certs"
|
|
DOCKER_TLS_VERIFY: 1
|
|
DOCKER_CERT_PATH: "/certs/client"
|
|
script:
|
|
- cd frontend
|
|
- docker login -u $CI_DOCKER_REGISTRY_USER -p $CI_DOCKER_REGISTRY_PASSWORD $CI_DOCKER_REGISTRY
|
|
- docker build -f Dockerfile_prod -t htwkalender-frontend$IMAGE_TAG .
|
|
- docker tag htwkalender-frontend$IMAGE_TAG $CI_DOCKER_REGISTRY_USER/htwkalender:frontend
|
|
- docker push $CI_DOCKER_REGISTRY_USER/htwkalender:frontend
|
|
only:
|
|
- main
|
|
- development |