1212
1313# 添加权限配置
1414permissions :
15- contents : write
16- pages : write
17- id-token : write
15+ contents : write # Needed for checkout and for softprops/action-gh-release to create releases
16+ pages : write # Needed for actions/deploy-pages
17+ id-token : write # Needed for actions/deploy-pages
1818
1919jobs :
2020 build :
2121 runs-on : ubuntu-latest
2222
2323 steps :
2424 - name : 检出代码
25- uses : actions/checkout@v1
25+ uses : actions/checkout@v4
2626
2727 - name : 设置Node.js环境
28- uses : actions/setup-node@v1
28+ uses : actions/setup-node@v4
2929 with :
30- node-version : ' 16' # 使用Node.js 16,更稳定
30+ node-version : ' 18'
31+ cache : ' npm'
3132
3233 - name : 修复npm依赖问题
3334 run : |
@@ -51,11 +52,11 @@ jobs:
5152 - name : 创建发布文件
5253 run : npm run build:release
5354
54- - name : 上传构建产物
55- uses : actions/upload-artifact@v1
55+ - name : 上传构建产物 (整个dist目录)
56+ uses : actions/upload-artifact@v4
5657 with :
57- name : built-extension
58- path : dist
58+ name : built-extension-dist # Artifact包含整个dist目录结构
59+ path : dist/ # 上传dist目录及其所有内容
5960
6061 # 构建和部署GitHub Pages
6162 deploy-pages :
@@ -71,54 +72,59 @@ jobs:
7172
7273 steps :
7374 - name : 检出代码
74- uses : actions/checkout@v1
75+ uses : actions/checkout@v4 # Checkout is fine here, not strictly necessary if only using artifacts
7576
76- - name : 下载构建产物
77- uses : actions/download-artifact@v1
77+ - name : 下载构建产物 (built-extension-dist)
78+ uses : actions/download-artifact@v4
7879 with :
79- name : built-extension
80+ name : built-extension-dist
81+ path : temp-download # 下载到 temp-download, 里面会有 dist 目录
8082
8183 - name : 准备页面内容
8284 run : |
83- # 确保目录存在
8485 mkdir -p docs/website/assets/images
8586 mkdir -p docs/website/assets/videos
8687
87- # 复制最新的扩展文件到演示站点
88- cp -r release/* docs/website/ || echo "release目录不存在"
89-
90- # 创建重定向到最新版本文件的链接
91- VERSION=$(cat release/version-info.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[", ]//g' || echo "0.1.0")
92- cp release/pro-color-v${VERSION}.zip docs/website/pro-color-latest.zip || echo "复制ZIP文件失败"
93- cp release/pro-color-v${VERSION}.crx docs/website/pro-color-latest.crx || echo "复制CRX文件失败"
94-
95- # 复制版本信息
96- cp release/version-info.json docs/website/version.json || echo "复制版本信息失败"
97-
98- # 查看目录结构
99- echo "当前目录结构:"
100- ls -la
101- echo "构建产物目录:"
102- ls -la release || echo "release目录不存在"
103- ls -la dist || echo "dist目录不存在"
104- echo "站点目录:"
105- ls -la docs/website || echo "docs/website目录为空"
88+ echo "检查下载的构建产物路径:"
89+ ls -R temp-download
90+
91+ # 源文件在 temp-download/dist/release
92+ SOURCE_RELEASE_DIR="temp-download/dist/release"
93+
94+ if [ -d "$SOURCE_RELEASE_DIR" ]; then
95+ cp -r "$SOURCE_RELEASE_DIR"/* docs/website/ || echo "从 $SOURCE_RELEASE_DIR 复制文件失败"
96+
97+ VERSION_INFO_PATH="docs/website/version-info.json"
98+ if [ -f "$VERSION_INFO_PATH" ]; then
99+ VERSION=$(cat "$VERSION_INFO_PATH" | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[", ]//g')
100+ else
101+ echo "警告: $VERSION_INFO_PATH 未找到,使用默认版本。"
102+ VERSION="0.0.0"
103+ fi
104+
105+ cp "docs/website/pro-color-v${VERSION}.zip" docs/website/pro-color-latest.zip || echo "创建 pro-color-latest.zip 失败"
106+ cp "docs/website/pro-color-v${VERSION}.crx" docs/website/pro-color-latest.crx || echo "创建 pro-color-latest.crx 失败"
107+ # version.json 已经被 cp -r 复制过去了
108+ else
109+ echo "错误: 源目录 $SOURCE_RELEASE_DIR 未找到!"
110+ exit 1
111+ fi
106112
107113 # 配置GitHub Pages
108114 - name : 设置Pages
109115 id : pages
110- uses : actions/configure-pages@v1
116+ uses : actions/configure-pages@v4
111117
112118 # 打包页面内容
113119 - name : 打包页面内容
114- uses : actions/upload-pages-artifact@v1
120+ uses : actions/upload-pages-artifact@v3
115121 with :
116122 path : docs/website
117123
118124 # 部署到GitHub Pages
119125 - name : 部署到GitHub Pages
120126 id : deployment
121- uses : actions/deploy-pages@v1
127+ uses : actions/deploy-pages@v4
122128
123129 # 只在标签推送时进行发布
124130 release :
@@ -128,12 +134,13 @@ jobs:
128134
129135 steps :
130136 - name : 检出代码
131- uses : actions/checkout@v1
137+ uses : actions/checkout@v4 # For git log in changelog
132138
133- - name : 下载构建产物
134- uses : actions/download-artifact@v1
139+ - name : 下载构建产物 (built-extension-dist)
140+ uses : actions/download-artifact@v4
135141 with :
136- name : built-extension
142+ name : built-extension-dist
143+ path : ./ # 下载到工作区根目录, 会创建 dist/release, dist/zip 等
137144
138145 - name : 获取版本号
139146 id : get_version
@@ -160,20 +167,20 @@ jobs:
160167 fi
161168
162169 # 将更新日志内容设置为步骤输出
163- CHANGELOG =$(cat CHANGELOG.md)
164- echo "CHANGELOG <<EOF" >> $GITHUB_OUTPUT
165- echo "$CHANGELOG " >> $GITHUB_OUTPUT
170+ CHANGELOG_CONTENT =$(cat CHANGELOG.md)
171+ echo "CHANGELOG_BODY <<EOF" >> $GITHUB_OUTPUT # Use a different name for output
172+ echo "$CHANGELOG_CONTENT " >> $GITHUB_OUTPUT
166173 echo "EOF" >> $GITHUB_OUTPUT
167174
168175 - name : 创建GitHub Release
169176 uses : softprops/action-gh-release@v1
170177 with :
171178 tag_name : ${{ github.ref }}
172179 name : Pro Color v${{ steps.get_version.outputs.VERSION }}
173- body : ${{ steps.changelog.outputs.CHANGELOG }}
180+ body : ${{ steps.changelog.outputs.CHANGELOG_BODY }}
174181 draft : false
175182 prerelease : false
176183 files : |
177- release/pro-color-v${{ steps.get_version.outputs.VERSION }}.zip
178- release/pro-color-v${{ steps.get_version.outputs.VERSION }}.crx
179- release/version-info.json
184+ dist/ release/pro-color-v${{ steps.get_version.outputs.VERSION }}.zip
185+ dist/ release/pro-color-v${{ steps.get_version.outputs.VERSION }}.crx
186+ dist/ release/version-info.json
0 commit comments