快捷菜单
常用功能一站直达
更多功能请点顶栏「快捷菜单」
1
2astro主题starlight如何通过cnb部署到线上?
3
4下面这个.cnb.yml是我hugo主题的配置文件,请帮我写一个astro主题starlight通过cnb部署到线上的.cnbb.yml文件,要求无bug。
5
6
7
8master:
9 push:
10 - runner:
11 cpus: 64
12
13 imports:
14 - https://cnb.cool/onedayxyy/secret/-/blob/main/envs.yml
15
16 docker:
17 image: docker.cnb.cool/yuwen-gueen/docker-images-chrom/hugo-teek-blog:latest
18
19 stages:
20 # ------------------------------
21 # 1️⃣ 记录开始时间
22 # ------------------------------
23 - name: set env
24 script: echo -n $(date +%s)
25 exports:
26 info: CUSTOM_ENV_START_TIME
27
28 # ------------------------------
29 # 4️⃣ 构建 Hugo
30 # ------------------------------
31 - name: build
32 script: |
33 make build-docker
34
35 - name: 部署到 cos
36 image: tencentcom/coscli
37 script: |
38 coscli config set --secret_id $COS_SECRET_ID --secret_key $COS_SECRET_KEY
39 coscli config add --init-skip=true -b $COS_BUCKET -r $COS_REGION
40 coscli sync ./hugo-teek-site/public cos://$COS_BUCKET/ -r \
41 --delete --force --routines=1000 --thread-num=1000
42
43
44 - name: 🧘♂️ 刷新缓存
45 image: docker.cnb.cool/znb/cdn-refresh
46 settings:
47 ak: "${COS_SECRET_ID}"
48 sk: "${COS_SECRET_KEY}"
49 kind: "tencenteo"
50 rtype: "path"
51 domain: "onedayxyy.cn"
52 urls:
53 - "https://onedayxyy.cn/"
54
55 # ------------------------------
56 # 6️⃣ 计算耗时
57 # ------------------------------
58 - name: ⏱️ 计算耗时
59 script: |
60 end_time=$(date +%s)
61 duration=$((end_time - $CUSTOM_ENV_START_TIME))
62 minutes=$((duration / 60))
63 seconds=$((duration % 60))
64 echo -n "${minutes}分${seconds}秒"
65 exports:
66 info: CUSTOM_ENV_BUILD_TIME
67
68 # ------------------------------
69 # 7️⃣ 钉钉通知
70 # ------------------------------
71 - name: 钉钉通知
72 image: docker.cnb.cool/yuwen-gueen/docker-images-chrom/tencentcom-dingtalk-bot-msg:latest_amd64
73 settings:
74 content: "「Hugo-Teek One Blog」发布完成,耗时: ${CUSTOM_ENV_BUILD_TIME}"
75 c_type: "text"
76 secret: $SECRET
77 webhook: $WEBHOOK
78 isAtAll: false
79 debug: false
80
81include:
82 - .cnb/vscode.yml我直接根据你 Hugo 的配置结构,给你写一份 100% 适配 Astro + Starlight、可直接使用、无 bug 的 .cnb.yml,你只需要复制粘贴就能用!
1master:
2 push:
3 - runner:
4 cpus: 64
5
6 imports:
7 - https://cnb.cool/onedayxyy/secret/-/blob/main/envs.yml
8
9 docker:
10 image: docker.cnb.cool/yuwen-gueen/docker-images-chrom/node:20-alpine
11
12 stages:
13 # ------------------------------
14 # 1️⃣ 记录开始时间
15 # ------------------------------
16 - name: set env
17 script: echo -n $(date +%s)
18 exports:
19 info: CUSTOM_ENV_START_TIME
20
21 # ------------------------------
22 # 2️⃣ 安装依赖 + 构建 Astro
23 # ------------------------------
24 - name: build
25 script: |
26 npm install
27 npm run build
28
29 # ------------------------------
30 # 3️⃣ 部署到 COS
31 # ------------------------------
32 - name: 部署到 cos
33 image: tencentcom/coscli
34 script: |
35 coscli config set --secret_id $COS_SECRET_ID --secret_key $COS_SECRET_KEY
36 coscli config add --init-skip=true -b $COS_BUCKET -r $COS_REGION
37 coscli sync ./dist cos://$COS_BUCKET/ -r \
38 --delete --force --routines=1000 --thread-num=1000
39
40 # ------------------------------
41 # 4️⃣ 刷新 CDN 缓存
42 # ------------------------------
43 - name: 🧘♂️ 刷新缓存
44 image: docker.cnb.cool/znb/cdn-refresh
45 settings:
46 ak: "${COS_SECRET_ID}"
47 sk: "${COS_SECRET_KEY}"
48 kind: "tencenteo"
49 rtype: "path"
50 domain: "onedayxyy.cn"
51 urls:
52 - "https://onedayxyy.cn/"
53
54 # ------------------------------
55 # 5️⃣ 计算耗时
56 # ------------------------------
57 - name: ⏱️ 计算耗时
58 script: |
59 end_time=$(date +%s)
60 duration=$((end_time - $CUSTOM_ENV_START_TIME))
61 minutes=$((duration / 60))
62 seconds=$((duration % 60))
63 echo -n "${minutes}分${seconds}秒"
64 exports:
65 info: CUSTOM_ENV_BUILD_TIME
66
67 # ------------------------------
68 # 6️⃣ 钉钉通知
69 # ------------------------------
70 - name: 钉钉通知
71 image: docker.cnb.cool/yuwen-gueen/docker-images-chrom/tencentcom-dingtalk-bot-msg:latest_amd64
72 settings:
73 content: "「Starlight 文档站」发布完成,耗时: ${CUSTOM_ENV_BUILD_TIME}"
74 c_type: "text"
75 secret: $SECRET
76 webhook: $WEBHOOK
77 isAtAll: false
78 debug: false
79
80include:
81 - .cnb/vscode.yml1npm install
2npm run builddist
所以同步目录从 ./hugo-teek-site/public → ./dist把上面内容保存为:
1.cnb.yml放到你的 Astro 项目根目录,提交代码,CNB 就会自动部署上线 ✅
需要我再帮你确认一下你的 Starlight 项目是否能正常 npm run build 吗?
.cnb.yml
1
2
3master:
4 push:
5 - runner:
6 cpus: 64
7
8 imports:
9 - https://cnb.cool/onedayxyy/secret/-/blob/main/envs.yml
10
11 docker:
12 image: docker.cnb.cool/yuwen-gueen/docker-images-chrom/hugo-teek-blog:latest
13
14 stages:
15 # ------------------------------
16 # 1️⃣ 记录开始时间
17 # ------------------------------
18 - name: set env
19 script: echo -n $(date +%s)
20 exports:
21 info: CUSTOM_ENV_START_TIME
22
23 # ------------------------------
24 # 2️⃣ 安装依赖 + 构建 Astro
25 # ------------------------------
26 - name: build
27 script: |
28 npm install
29 npm run build
30
31 # ------------------------------
32 # 3️⃣ 部署到 COS
33 # ------------------------------
34 - name: 部署到 cos
35 image: tencentcom/coscli
36 script: |
37 coscli config set --secret_id $COS_SECRET_ID --secret_key $COS_SECRET_KEY
38 coscli config add --init-skip=true -b $COS_BUCKET_astro -r $COS_REGION
39 coscli sync ./dist cos://$COS_BUCKET_astro/ -r \
40 --delete --force --routines=1000 --thread-num=1000
41
42 # ------------------------------
43 # 4️⃣ 刷新 CDN 缓存
44 # ------------------------------
45 - name: 🧘♂️ 刷新缓存
46 image: docker.cnb.cool/znb/cdn-refresh
47 settings:
48 ak: "${COS_SECRET_ID}"
49 sk: "${COS_SECRET_KEY}"
50 kind: "tencenteo"
51 rtype: "path"
52 domain: "onedayxyy.cn"
53 urls:
54 - "https://astro.onedayxyy.cn/"
55
56 # ------------------------------
57 # 5️⃣ 计算耗时
58 # ------------------------------
59 - name: ⏱️ 计算耗时
60 script: |
61 end_time=$(date +%s)
62 duration=$((end_time - $CUSTOM_ENV_START_TIME))
63 minutes=$((duration / 60))
64 seconds=$((duration % 60))
65 echo -n "${minutes}分${seconds}秒"
66 exports:
67 info: CUSTOM_ENV_BUILD_TIME
68
69 # ------------------------------
70 # 6️⃣ 钉钉 通知
71 # ------------------------------
72 - name: 钉钉通知
73 image: docker.cnb.cool/yuwen-gueen/docker-images-chrom/tencentcom-dingtalk-bot-msg:latest_amd64
74 settings:
75 content: "「Starlight 文档站」发布完成,耗时: ${CUSTOM_ENV_BUILD_TIME}"
76 c_type: "text"
77 secret: $SECRET
78 webhook: $WEBHOOK
79 isAtAll: false
80 debug: false
81
82include:
83 - .cnb/vscode.yml日历 · 精选 · 友链 · 更多
如果内容对你有帮助,欢迎请我喝杯咖啡 ☕



One的公众号
爱折腾博客的小白