forked from eclipse-archived/bridgeiot.marketplace.apigw
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
133 lines (123 loc) · 4.63 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
image: quay.io/atos_bigiot/build_base:alpine
variables:
PRJ_NAME: marketplace-apigw
DEPLOYABLE_IMAGE: registry.gitlab.com/big-iot/$PRJ_NAME:$CI_BUILD_REF
DEPLOYABLE_IMAGE_LATEST: registry.gitlab.com/big-iot/$PRJ_NAME:latest
DEPLOYABLE_IMAGE_INT: registry.gitlab.com/big-iot/$PRJ_NAME:int
DEPLOYABLE_IMAGE_PROD: registry.gitlab.com/big-iot/$PRJ_NAME:prod
DEPLOYABLE_IMAGE_PILOT: registry.gitlab.com/big-iot/$PRJ_NAME:pilot
OPENSHIFT_CONSOLE: https://shiftmaster.big-iot.org:8443
OPENSHIFT_REGISTRY: docker-registry-default.big-iot.org
OPENSHIFT_APP: marketplace-apigw
OPENSHIFT_PROJECT_DEV: marketplace-dev
OPENSHIFT_IMAGE_DEV: $OPENSHIFT_REGISTRY/$OPENSHIFT_PROJECT_DEV/$OPENSHIFT_APP:$CI_BUILD_REF
OPENSHIFT_IMAGE_DEV_LATEST: $OPENSHIFT_REGISTRY/$OPENSHIFT_PROJECT_DEV/$OPENSHIFT_APP:latest
OPENSHIFT_PROJECT_INT: marketplace-int
OPENSHIFT_IMAGE_INT: $OPENSHIFT_REGISTRY/$OPENSHIFT_PROJECT_INT/$OPENSHIFT_APP:$CI_BUILD_REF
OPENSHIFT_IMAGE_INT_LATEST: $OPENSHIFT_REGISTRY/$OPENSHIFT_PROJECT_INT/$OPENSHIFT_APP:latest
OPENSHIFT_PROJECT_PROD: marketplace-prod
OPENSHIFT_IMAGE_PROD: $OPENSHIFT_REGISTRY/$OPENSHIFT_PROJECT_PROD/$OPENSHIFT_APP:$CI_BUILD_REF
OPENSHIFT_IMAGE_PROD_LATEST: $OPENSHIFT_REGISTRY/$OPENSHIFT_PROJECT_PROD/$OPENSHIFT_APP:latest
PROJECTDEPS: NEXUS
stages:
- Unittest
- Publish
- Development
- Integration
- Production
- Pilot
run-unittest:
stage: Unittest
tags:
- docker
script:
- sbt -mem 2048 clean compile test
# This job publishes to GitLab's registry
publish-to-registry:
stage: Publish
tags:
- docker
before_script:
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
script:
- sbt dist docker:stage
- cd ./target/docker/stage
- docker build --pull -t $DEPLOYABLE_IMAGE .
- docker push $DEPLOYABLE_IMAGE
- docker tag $DEPLOYABLE_IMAGE $DEPLOYABLE_IMAGE_LATEST
- docker push $DEPLOYABLE_IMAGE_LATEST
only:
- master
# This job automatically deploys to the Dev environment on OpenShift
deploy-to-dev:
stage: Development
tags:
- docker
only:
- master
script:
# pull the image from GitLab (in case the publish stage was running on a different runner)
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
- docker pull $DEPLOYABLE_IMAGE_LATEST
# tag and push to OpenShift
- docker login -p $OPENSHIFT_TOKEN_DEV -u unused $OPENSHIFT_REGISTRY
- docker tag $DEPLOYABLE_IMAGE_LATEST $OPENSHIFT_IMAGE_DEV
- docker tag $OPENSHIFT_IMAGE_DEV $OPENSHIFT_IMAGE_DEV_LATEST
- docker push $OPENSHIFT_IMAGE_DEV
- docker push $OPENSHIFT_IMAGE_DEV_LATEST
# Manual(!) job which deploys to the integration environment on OpenShift
deploy-to-integration:
stage: Integration
tags:
- docker
only:
- master
when: manual
script:
# pull the image from GitLab (in case the publish stage was running on a different runner)
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
- docker pull $DEPLOYABLE_IMAGE
# tag and push to OpenShift
- docker login -p "$OPENSHIFT_TOKEN_INT" -u unused $OPENSHIFT_REGISTRY
- docker tag $DEPLOYABLE_IMAGE $OPENSHIFT_IMAGE_INT
- docker tag $DEPLOYABLE_IMAGE $OPENSHIFT_IMAGE_INT_LATEST
# Create an image tag in GitLab's registry for our convenience
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
- docker tag $DEPLOYABLE_IMAGE $DEPLOYABLE_IMAGE_INT
- docker push $DEPLOYABLE_IMAGE_INT
- docker push $OPENSHIFT_IMAGE_INT
- docker push $OPENSHIFT_IMAGE_INT_LATEST
# Manual(!) job which deploys to the production environment on OpenShift
deploy-to-prod:
stage: Production
tags:
- docker
only:
- master
when: manual
script:
# pull the image from GitLab (in case the publish stage was running on a different runner)
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
- docker pull $DEPLOYABLE_IMAGE
# tag and push to OpenShift
- docker login -p "$OPENSHIFT_TOKEN_PROD" -u unused $OPENSHIFT_REGISTRY
- docker tag $DEPLOYABLE_IMAGE $OPENSHIFT_IMAGE_PROD
- docker tag $DEPLOYABLE_IMAGE $OPENSHIFT_IMAGE_PROD_LATEST
# Create an image tag in GitLab's registry for our convenience
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
- docker tag $DEPLOYABLE_IMAGE $DEPLOYABLE_IMAGE_PROD
- docker push $DEPLOYABLE_IMAGE_PROD
- docker push $OPENSHIFT_IMAGE_PROD
- docker push $OPENSHIFT_IMAGE_PROD_LATEST
tag-for-pilot:
stage: Pilot
environment:
name: pilot
before_script:
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
script:
- docker tag $DEPLOYABLE_IMAGE $DEPLOYABLE_IMAGE_PILOT
- docker push $DEPLOYABLE_IMAGE_PILOT
when: manual
only:
- master