@dazhicheng/common 1.0.14 → 1.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitlab-ci.yml +80 -53
- package/Dockerfile +5 -32
- package/package.json +1 -1
package/.gitlab-ci.yml
CHANGED
|
@@ -1,74 +1,101 @@
|
|
|
1
1
|
stages:
|
|
2
|
+
- build
|
|
2
3
|
- MR_TEST
|
|
3
|
-
-
|
|
4
|
-
- test
|
|
5
|
-
- sit
|
|
4
|
+
- deploy
|
|
6
5
|
|
|
7
6
|
variables:
|
|
8
7
|
DOCKER_BUILDKIT: 1
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
# 构建锚点 ----------------------------------------------------------------
|
|
10
|
+
.build_template: &build_template
|
|
11
|
+
stage: build
|
|
12
|
+
image: node:20-alpine
|
|
13
|
+
script:
|
|
14
|
+
- npm install -g pnpm
|
|
15
|
+
- pnpm install
|
|
16
|
+
- pnpm up:dzc
|
|
17
|
+
- pnpm "build:${NODE_ENV}"
|
|
18
|
+
artifacts:
|
|
19
|
+
paths:
|
|
20
|
+
- dist/
|
|
21
|
+
expire_in: 1 day
|
|
22
|
+
|
|
23
|
+
# 部署锚点(通用脚本直接写在这里,不需要项目覆盖) -------------------------
|
|
24
|
+
.deploy_template: &deploy_template
|
|
25
|
+
stage: deploy
|
|
26
|
+
image: docker:20.10.20
|
|
27
|
+
script:
|
|
28
|
+
- docker build --build-arg NODE_ENV=$NODE_ENV -t $IMAGE_NAME:latest .
|
|
29
|
+
- docker stop $IMAGE_NAME || true
|
|
30
|
+
- docker rm $IMAGE_NAME || true
|
|
31
|
+
- docker run -d --name $IMAGE_NAME --restart always -p $HOST_PORT:$CONTAINER_PORT $IMAGE_NAME:latest
|
|
32
|
+
- docker image prune -f || true
|
|
33
|
+
|
|
34
|
+
# MR 验证 -----------------------------------------------------------------
|
|
35
|
+
MR 构建验证:
|
|
11
36
|
stage: MR_TEST
|
|
12
37
|
image: docker:20.10.20
|
|
13
38
|
tags:
|
|
14
39
|
- MR_TEST
|
|
40
|
+
needs: [构建_dev]
|
|
15
41
|
script:
|
|
16
|
-
|
|
17
|
-
- docker
|
|
18
|
-
# 验证镜像构建成功
|
|
19
|
-
- docker images | grep a-fulfillment-mr-test
|
|
42
|
+
- docker build --build-arg NODE_ENV=dev -t mr-test:mr-$CI_MERGE_REQUEST_IID .
|
|
43
|
+
- docker images | grep mr-test
|
|
20
44
|
rules:
|
|
21
45
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop"
|
|
22
46
|
|
|
47
|
+
# 项目级 deploy jobs 注入点 ------------------------------------------------
|
|
48
|
+
构建_dev:
|
|
49
|
+
<<: *build_template
|
|
50
|
+
variables:
|
|
51
|
+
NODE_ENV: dev
|
|
52
|
+
rules:
|
|
53
|
+
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop"
|
|
54
|
+
- if: $CI_COMMIT_BRANCH == "develop"
|
|
55
|
+
|
|
56
|
+
构建_test:
|
|
57
|
+
<<: *build_template
|
|
58
|
+
variables:
|
|
59
|
+
NODE_ENV: test
|
|
60
|
+
only: [test]
|
|
61
|
+
|
|
23
62
|
开发环境发版:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
tags:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
- docker image prune -f || true
|
|
33
|
-
only:
|
|
34
|
-
- develop
|
|
63
|
+
<<: *deploy_template
|
|
64
|
+
needs: [构建_dev]
|
|
65
|
+
tags: [develop]
|
|
66
|
+
resource_group: deploy-develop
|
|
67
|
+
variables:
|
|
68
|
+
NODE_ENV: dev
|
|
69
|
+
<<<开发环境发版>>>
|
|
70
|
+
only: [develop]
|
|
35
71
|
|
|
36
72
|
开发环境发版_107:
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
tags:
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
- docker image prune -f || true
|
|
46
|
-
only:
|
|
47
|
-
- develop
|
|
73
|
+
<<: *deploy_template
|
|
74
|
+
needs: [构建_dev]
|
|
75
|
+
tags: [develop_107]
|
|
76
|
+
resource_group: deploy-develop_107
|
|
77
|
+
variables:
|
|
78
|
+
NODE_ENV: dev
|
|
79
|
+
<<<开发环境发版_107>>>
|
|
80
|
+
only: [develop]
|
|
48
81
|
|
|
49
|
-
# 测试环境 -----------------------------------------------------------------------------------------------
|
|
50
82
|
测试环境发版:
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
tags:
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
- docker image prune -f || true
|
|
60
|
-
only:
|
|
61
|
-
- test
|
|
83
|
+
<<: *deploy_template
|
|
84
|
+
needs: [构建_test]
|
|
85
|
+
tags: [test]
|
|
86
|
+
resource_group: deploy-test
|
|
87
|
+
variables:
|
|
88
|
+
NODE_ENV: test
|
|
89
|
+
<<<测试环境发版>>>
|
|
90
|
+
only: [test]
|
|
62
91
|
|
|
63
92
|
测试环境发版_107:
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
tags:
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
only:
|
|
74
|
-
- test
|
|
93
|
+
<<: *deploy_template
|
|
94
|
+
needs: [构建_test]
|
|
95
|
+
tags: [test_107]
|
|
96
|
+
resource_group: deploy-test_107
|
|
97
|
+
variables:
|
|
98
|
+
NODE_ENV: test
|
|
99
|
+
<<<测试环境发版_107>>>
|
|
100
|
+
only: [test]
|
|
101
|
+
<<<deploy_jobs>>>
|
package/Dockerfile
CHANGED
|
@@ -1,33 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
FROM
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
# 安装 pnpm 并配置镜像源
|
|
7
|
-
RUN npm install -g pnpm && \
|
|
8
|
-
pnpm config set registry https://registry.npmmirror.com
|
|
9
|
-
|
|
10
|
-
ARG NODE_ENV=dev
|
|
11
|
-
|
|
12
|
-
# 先复制依赖文件并安装依赖
|
|
13
|
-
COPY . .
|
|
14
|
-
# COPY package*.json pnpm-lock.yaml* pnpm-workspace.yaml ./
|
|
15
|
-
# COPY scripts/sync-common.mjs ./scripts/
|
|
16
|
-
RUN pnpm install
|
|
17
|
-
|
|
18
|
-
# 再复制全部源代码,进行构建
|
|
19
|
-
RUN pnpm "build:${NODE_ENV}"
|
|
20
|
-
|
|
21
|
-
# 阶段 2:部署到 Nginx
|
|
22
|
-
FROM nginx:stable-alpine
|
|
23
|
-
|
|
24
|
-
ARG NODE_ENV=dev
|
|
25
|
-
|
|
26
|
-
# 复制 Nginx 配置
|
|
27
|
-
COPY --from=builder /app/nginx_${NODE_ENV}.conf /etc/nginx/conf.d/default.conf
|
|
28
|
-
|
|
29
|
-
# 复制构建产物
|
|
30
|
-
COPY --from=builder /app/dist /usr/share/nginx/html
|
|
31
|
-
|
|
32
|
-
# 启动 Nginx
|
|
1
|
+
|
|
2
|
+
FROM nginx:stable-alpine
|
|
3
|
+
ARG NODE_ENV=dev
|
|
4
|
+
COPY "nginx_${NODE_ENV}.conf" /etc/nginx/conf.d/default.conf
|
|
5
|
+
COPY dist/ /usr/share/nginx/html
|
|
33
6
|
CMD ["nginx", "-g", "daemon off;"]
|