@dazhicheng/common 1.0.39 → 1.0.40

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.
Files changed (2) hide show
  1. package/.gitlab-ci.yml +60 -13
  2. package/package.json +1 -1
package/.gitlab-ci.yml CHANGED
@@ -5,6 +5,10 @@ stages:
5
5
 
6
6
  variables:
7
7
  DOCKER_BUILDKIT: 1
8
+ # 加速 cache / artifact 压缩
9
+ FF_USE_FASTZIP: "true"
10
+ # 装 pnpm 走国内镜像,避免 npm 官方源拖慢(上次约 49s)
11
+ npm_config_registry: https://registry.npmmirror.com
8
12
 
9
13
  # 构建锚点 ----------------------------------------------------------------
10
14
  .build_template: &build_template
@@ -12,12 +16,22 @@ variables:
12
16
  image: node:24
13
17
  tags:
14
18
  - build
15
- script:
16
- - npm install -g pnpm@latest
19
+ cache:
20
+ key:
21
+ files:
22
+ - pnpm-lock.yaml
23
+ paths:
24
+ - .pnpm-store
25
+ policy: pull-push
26
+ before_script:
27
+ # corepack 启用最新 pnpm,比 npm install -g 快很多
28
+ - corepack enable
29
+ - corepack prepare pnpm@latest --activate
30
+ - pnpm config set store-dir .pnpm-store
17
31
  - pnpm config set registry https://registry.npmmirror.com
18
32
  - pnpm config set @dazhicheng:registry https://registry.npmjs.org
33
+ script:
19
34
  - pnpm install --no-frozen-lockfile
20
- - pnpm up:dzc
21
35
  - pnpm "build:${NODE_ENV}"
22
36
  artifacts:
23
37
  paths:
@@ -27,13 +41,38 @@ variables:
27
41
  - Dockerfile
28
42
  expire_in: 1 day
29
43
 
44
+ # develop:一次 install + 一次类型检查,再分别 vite 出两套产物
45
+ .build_develop_template: &build_develop_template
46
+ <<: *build_template
47
+ script:
48
+ - pnpm install --no-frozen-lockfile
49
+ - pnpm exec vue-tsc --noEmit
50
+ - pnpm exec vite build --mode dev
51
+ - mv dist dist-dev
52
+ - pnpm exec vite build --mode test
53
+ - mv dist dist-test
54
+ artifacts:
55
+ paths:
56
+ - dist-dev/
57
+ - dist-test/
58
+ - nginx_*.conf
59
+ - docker-entrypoint.sh
60
+ - Dockerfile
61
+ expire_in: 1 day
62
+
30
63
  # 部署锚点(通用脚本直接写在这里,不需要项目覆盖) -------------------------
31
64
  # 使用 named volume 持久化静态资源:发版时合并新构建并保留旧 hashed 文件,
32
65
  # 使已打开的旧页面仍能懒加载到旧入口资源。
66
+ # 若存在 dist-${NODE_ENV}(develop 双构建产物),先还原为 dist/ 再 docker build。
33
67
  .deploy_template: &deploy_template
34
68
  stage: deploy
35
69
  image: docker:26.1.4
36
70
  script:
71
+ - |
72
+ if [ -d "dist-${NODE_ENV}" ]; then
73
+ rm -rf dist
74
+ mv "dist-${NODE_ENV}" dist
75
+ fi
37
76
  - docker volume create ${IMAGE_NAME}-assets || true
38
77
  - docker build --build-arg NODE_ENV=$NODE_ENV -t $IMAGE_NAME:latest .
39
78
  - docker stop $IMAGE_NAME || true
@@ -66,23 +105,23 @@ MR 构建验证:
66
105
  - if: $CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "test" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "release" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "sit")
67
106
 
68
107
  # 项目级 deploy jobs 注入点 ------------------------------------------------
69
- 构建_dev:
70
- <<: *build_template
71
- resource_group: build-dev
72
- variables:
73
- NODE_ENV: dev
108
+ # develop:新 job 一次装依赖,编出两套产物
109
+ 构建_develop:
110
+ <<: *build_develop_template
111
+ resource_group: build-develop
74
112
  only: [develop]
75
113
 
114
+ # test 分支:单环境构建(产物为 dist/)
76
115
  构建_test:
77
116
  <<: *build_template
78
117
  resource_group: build-test
79
118
  variables:
80
119
  NODE_ENV: test
81
- only: [test, develop]
120
+ only: [test]
82
121
 
83
122
  开发环境发版:
84
123
  <<: *deploy_template
85
- needs: [构建_dev]
124
+ needs: [构建_develop]
86
125
  tags: [develop]
87
126
  resource_group: deploy-develop
88
127
  variables:
@@ -92,7 +131,7 @@ MR 构建验证:
92
131
 
93
132
  # 开发环境发版_107:
94
133
  # <<: *deploy_template
95
- # needs: [构建_dev]
134
+ # needs: [构建_develop]
96
135
  # tags: [develop_107]
97
136
  # resource_group: deploy-develop_107
98
137
  # variables:
@@ -102,7 +141,11 @@ MR 构建验证:
102
141
 
103
142
  测试环境发版:
104
143
  <<: *deploy_template
105
- needs: [构建_test]
144
+ needs:
145
+ - job: 构建_develop
146
+ optional: true
147
+ - job: 构建_test
148
+ optional: true
106
149
  tags: [test]
107
150
  resource_group: deploy-test
108
151
  variables:
@@ -112,7 +155,11 @@ MR 构建验证:
112
155
 
113
156
  # 测试环境发版_107:
114
157
  # <<: *deploy_template
115
- # needs: [构建_test]
158
+ # needs:
159
+ # - job: 构建_develop
160
+ # optional: true
161
+ # - job: 构建_test
162
+ # optional: true
116
163
  # tags: [test_107]
117
164
  # resource_group: deploy-test_107
118
165
  # variables:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dazhicheng/common",
3
- "version": "1.0.39",
3
+ "version": "1.0.40",
4
4
  "description": "共享配置文件",
5
5
  "type": "module",
6
6
  "types": "./src/types/index.d.ts",