-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
48 lines (44 loc) · 1.71 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
variables:
DOCKER_VERSION_MAJOR: "1"
DOCKER_VERSION_MINOR: "11"
DOCKER_IMAGE: mcr.microsoft.com/dotnet/sdk:7.0-alpine
DOCKER_IMAGE_NAME: monobank-exporter
PROJECT_NAME: "MonobankExporter"
PROJECT_REPOSITORY: "https://github.com/TheGarmr/monobank-exporter"
stages:
- build
- unit-tests
- publish
Build:
stage: build
image: $DOCKER_IMAGE
script:
- echo "Building $PROJECT_NAME..."
- dotnet build
Unit tests:
stage: unit-tests
image: $DOCKER_IMAGE
script:
- dotnet test ./$PROJECT_NAME.UnitTests/$PROJECT_NAME.UnitTests.csproj
Publish docker image:
stage: publish
image: docker:20-dind
variables:
DOCKER_HOST: tcp://docker:2375
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
only:
- main
when: manual
services:
- name: docker:20-dind
alias: docker
command: ["--tls=false"]
script:
- echo "Logging into Docker Hub..."
- docker login -u $DOCKER_HUB_USERNAME -p $DOCKER_HUB_PASSWORD
- echo "Building image with version v$DOCKER_VERSION_MAJOR.$DOCKER_VERSION_MINOR.$CI_PIPELINE_IID"
- docker build --build-arg VERSION=$DOCKER_VERSION_MAJOR.$DOCKER_VERSION_MINOR.$CI_PIPELINE_IID --build-arg MAINTAINER=$DOCKER_HUB_USERNAME --build-arg URL=$PROJECT_REPOSITORY -t $DOCKER_HUB_USERNAME/$DOCKER_IMAGE_NAME:v$DOCKER_VERSION_MAJOR.$DOCKER_VERSION_MINOR.$CI_PIPELINE_IID -f ./$PROJECT_NAME.Service/Dockerfile .
- docker tag $DOCKER_HUB_USERNAME/$DOCKER_IMAGE_NAME:v$DOCKER_VERSION_MAJOR.$DOCKER_VERSION_MINOR.$CI_PIPELINE_IID $DOCKER_HUB_USERNAME/$DOCKER_IMAGE_NAME:latest
- docker push $DOCKER_HUB_USERNAME/$DOCKER_IMAGE_NAME:v$DOCKER_VERSION_MAJOR.$DOCKER_VERSION_MINOR.$CI_PIPELINE_IID
- docker push $DOCKER_HUB_USERNAME/$DOCKER_IMAGE_NAME:latest