forked from BlowaXD/SaltyEmu
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
134 lines (110 loc) · 2.36 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
stages:
- build
- test
- release
- deploy
##
## Environment configuration
##
variables:
GIT_SUBMODULE_STRATEGY: recursive
.test-configuration:
environment: test
only:
- /^feature\/.*$/
- /^feat\/.*$/
- /^chore\/.*$/
- /^fix\/.*$/
- /^review\/.*$/
.test-configuration-post-build:
extends: .test-configuration
dependencies:
- test-build
###
## SETUP DEV ENV
###
.dev-configuration:
environment: dev
only:
- develop
.dev-configuration-post-build:
extends: .dev-configuration
dependencies:
- dev-build
.dev-release-docker:
extends: .dev-configuration
dependencies:
- dev-build
##
## Steps definition
##
.build-conf: &build-conf
stage: build
image: microsoft/dotnet:2.2-sdk-alpine
script:
- dotnet restore --configfile Nuget.config
- dotnet build
.unit-test-conf: &unit-test-conf
stage: test
image: alpine:3.9
script:
- echo "TODO"
.lint-test-conf: &lint-test-conf
stage: test
image: alpine:3.9
script:
- echo "TODO"
.release-docker-conf: &release-docker-conf
stage: release
image: docker:latest
services:
- docker:dind
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_BUILD_TOKEN" $CI_REGISTRY
script:
- docker build -t "$CI_REGISTRY_IMAGE:$DOCKER_TAG" -f "$CONTAINER_DOCKERFILE" .
- docker push $CI_REGISTRY_IMAGE
.deploy-conf: &deploy-conf
stage: deploy
image: alpine:3.9
script:
- echo "TODO"
##
## Steps executions - TEST
##
test-build:
extends: .test-configuration
<<: *build-conf
test-lint-test:
extends: .test-configuration-post-build
<<: *lint-test-conf
test-unit-test:
extends: .test-configuration-post-build
<<: *unit-test-conf
##
## Steps executions - DEV
##
dev-build:
extends: .dev-configuration
<<: *build-conf
dev-lint-test:
extends: .dev-configuration-post-build
<<: *lint-test-conf
dev-unit-test:
extends: .dev-configuration-post-build
<<: *unit-test-conf
dev-release-docker-login:
extends: .dev-release-docker
<<: *release-docker-conf
variables:
DOCKER_TAG: saltyemu-login
CONTAINER_DOCKERFILE: "./scripts/docker/login.Dockerfile"
dev-release-docker-world:
extends: .dev-release-docker
<<: *release-docker-conf
variables:
DOCKER_TAG: saltyemu-world
CONTAINER_DOCKERFILE: scripts/docker/world.Dockerfile
dev-deploy:
extends: .dev-configuration-post-build
<<: *deploy-conf