-
Notifications
You must be signed in to change notification settings - Fork 8
/
.gitlab-ci.yml
133 lines (121 loc) · 4.42 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
stages:
- docker-dev
- deploy-dev
- deploy-new-prd
- deploy-test
#- deploy-staging
- docker-prd
- deploy-prd
variables:
DOCKER_PM_PATH: ./src/Services/MASA.PM.Service.Admin/Dockerfile
DOCKER_UI_PATH: ./src/Web/MASA.PM.Web.Admin/Dockerfile
NEW_IMAGE_PM_DEV: $CI_ALI_REGISTRY_DOMAIN/masastack/masa-pm-service-admin:dev-$CI_PIPELINE_ID
NEW_IMAGE_PM_UI_DEV: $CI_ALI_REGISTRY_DOMAIN/masastack/masa-pm-ui-admin:dev-$CI_PIPELINE_ID
NEW_IMAGE_PM: $CI_ALI_REGISTRY_DOMAIN/masastack/masa-pm-service-admin:$CI_COMMIT_TAG
NEW_IMAGE_PM_UI: $CI_ALI_REGISTRY_DOMAIN/masastack/masa-pm-ui-admin:$CI_COMMIT_TAG
NAMESPACE_DEV: masastack-dev
NAMESPACE_TEST: masastack-test
NAMESPACE_STAGING: masastack-staging
NAMESPACE_PRD: masastack
NAMESPACE_SEC: masa-to-sec
docker-dev:
stage: docker-dev
tags:
- linux-shell
before_script:
- docker login -u $CI_ALI_REGISTRY_USER -p $CI_ALI_REGISTRY_PASSWD $CI_ALI_REGISTRY_DOMAIN
only:
- main
script:
- docker build -f $DOCKER_PM_PATH -t $NEW_IMAGE_PM_DEV .
- docker push $NEW_IMAGE_PM_DEV
- docker build -f $DOCKER_UI_PATH -t $NEW_IMAGE_PM_UI_DEV .
- docker push $NEW_IMAGE_PM_UI_DEV
after_script:
- docker rmi $NEW_IMAGE_PM_DEV
- docker rmi $NEW_IMAGE_PM_UI_DEV
deploy-dev:
stage: deploy-dev
image: registry.cn-hangzhou.aliyuncs.com/masa/library:kubectl-shell-v1.21.1
only:
- main
script:
- echo $KUBE_CONFIG_NEW_YDY | base64 -d > ./config
- echo $CI_PIPELINE_ID
- kubectl --kubeconfig ./config set image deployment/pm pm=$NEW_IMAGE_PM_UI_DEV -n $NAMESPACE_DEV
- kubectl --kubeconfig ./config set image deployment/pm-service pm-service=$NEW_IMAGE_PM_DEV -n $NAMESPACE_DEV
retry: 2
deploy-sec:
stage: deploy-dev
image: registry.cn-hangzhou.aliyuncs.com/masa/library:kubectl-shell-v1.21.1
only:
- main
script:
- echo $KUBE_CONFIG_NEW_YDY | base64 -d > ./config
- echo $CI_PIPELINE_ID
- kubectl --kubeconfig ./config set image deployment/pm pm=$NEW_IMAGE_PM_UI_DEV -n $NAMESPACE_SEC
- kubectl --kubeconfig ./config set image deployment/pm-service pm-service=$NEW_IMAGE_PM_DEV -n $NAMESPACE_SEC
retry: 2
deploy-new-prd:
stage: deploy-new-prd
image: registry.cn-hangzhou.aliyuncs.com/masa/library:kubectl-shell-v1.21.1
only:
- main
script:
- echo $KUBE_CONFIG_LSD_PRD_YDY | base64 -d > ./config
- echo $CI_COMMIT_ID
- kubectl --kubeconfig ./config set image deployment/pm pm=$NEW_IMAGE_PM_UI_DEV -n $NAMESPACE_PRD
- kubectl --kubeconfig ./config set image deployment/pm-service pm-service=$NEW_IMAGE_PM_DEV -n $NAMESPACE_PRD
retry: 2
when: manual
deploy-test:
stage: deploy-test
image: registry.cn-hangzhou.aliyuncs.com/masa/library:kubectl-shell-v1.21.1
only:
- main
script:
- echo $KUBE_CONFIG_NEW_YDY | base64 -d > ./config
- echo $CI_PIPELINE_ID
- kubectl --kubeconfig ./config set image deployment/pm pm=$NEW_IMAGE_PM_UI_DEV -n $NAMESPACE_TEST
- kubectl --kubeconfig ./config set image deployment/pm-service pm-service=$NEW_IMAGE_PM_DEV -n $NAMESPACE_TEST
retry: 2
when: manual
# deploy-staging:
# stage: deploy-staging
# image: registry.cn-hangzhou.aliyuncs.com/masa/library:kubectl-shell-v1.21.1
# only:
# - main
# script:
# - echo $KUBE_CONFIG_NEW_YDY | base64 -d > ./config
# - echo $CI_PIPELINE_ID
# - kubectl --kubeconfig ./config set image deployment/pm pm=$NEW_IMAGE_PM_UI_DEV -n $NAMESPACE_STAGING
# - kubectl --kubeconfig ./config set image deployment/pm-service pm-service=$NEW_IMAGE_PM_DEV -n $NAMESPACE_STAGING
# retry: 2
# when: manual
docker-prd:
stage: docker-prd
tags:
- linux-shell
image: registry.cn-hangzhou.aliyuncs.com/masa/library:kubectl-shell-v1.21.1
only:
- tags
script:
- docker build -f $DOCKER_PM_PATH -t $NEW_IMAGE_PM .
- docker push $NEW_IMAGE_PM
- docker build -f $DOCKER_UI_PATH -t $NEW_IMAGE_PM_UI .
- docker push $NEW_IMAGE_PM_UI
after_script:
- docker rmi $NEW_IMAGE_PM
- docker rmi $NEW_IMAGE_PM_UI
deploy-prd:
stage: deploy-prd
image: registry.cn-hangzhou.aliyuncs.com/masa/library:kubectl-shell-v1.21.1
only:
- tags
script:
- echo $KUBE_CONFIG_LSD_PRD_YDY | base64 -d > ./config
- echo $CI_COMMIT_TAG
- kubectl --kubeconfig ./config set image deployment/pm pm=$NEW_IMAGE_PM_UI -n $NAMESPACE_PRD
- kubectl --kubeconfig ./config set image deployment/pm-service pm-service=$NEW_IMAGE_PM -n $NAMESPACE_PRD
retry: 2
when: manual