Skip to content

Commit 6200779

Browse files
committed
修复: 解决action问题
1 parent 716e8f3 commit 6200779

File tree

1 file changed

+55
-48
lines changed

1 file changed

+55
-48
lines changed

.github/workflows/build-and-release.yml

Lines changed: 55 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,23 @@ on:
1212

1313
# 添加权限配置
1414
permissions:
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

1919
jobs:
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

Comments
 (0)