Build Release Assets #5
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Release Assets | |
on: | |
release: | |
types: [created] | |
jobs: | |
build-and-upload: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '18' | |
- name: Build Frontend | |
run: | | |
cd front | |
# 跳过 postinstall 脚本 | |
npm install --ignore-scripts | |
# 创建并配置环境文件 | |
cp .env.example .env.production | |
sed -i 's#VITE_AXIOS_BASE_URL.*#VITE_AXIOS_BASE_URL = "https://cyiapi.lmyself.ggff.net"#' .env.production | |
# 显示配置文件内容以便验证 | |
echo "Environment file content:" | |
cat .env.production | |
# 构建 | |
npm run build | |
cd dist | |
zip -r ../../frontend.zip . | |
echo "✅ Frontend build completed" | |
- name: Build Worker | |
run: | | |
cd service | |
# 从示例文件创建 wrangler.toml | |
cp wrangler.toml.example wrangler.toml | |
# 修改配置文件,使用占位符 | |
sed -i 's/database_name = ".*"/database_name = "YOUR_DATABASE_NAME"/' wrangler.toml | |
sed -i 's/database_id = ".*"/database_id = "YOUR_DATABASE_ID"/' wrangler.toml | |
sed -i 's/id = ".*"/id = "YOUR_KV_NAMESPACE_ID"/' wrangler.toml | |
sed -i 's/JWT_SECRET = ".*"/JWT_SECRET = "YOUR_JWT_SECRET"/' wrangler.toml | |
# 安装依赖并构建 | |
npm install | |
npx wrangler deploy --dry-run --outdir=dist | |
mv dist/index.js ../worker.js | |
echo "✅ Worker build completed" | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: release-assets | |
path: | | |
frontend.zip | |
worker.js | |
# 上传到版本发布 | |
- name: Upload Release Assets | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
frontend.zip | |
worker.js | |
tag_name: ${{ github.ref_name }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
# 删除旧的 latest 标签和发布(如果存在) | |
- name: Delete old latest release | |
run: | | |
gh release delete latest --yes || true | |
git push origin :refs/tags/latest || true | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# 创建/更新 latest 发布 | |
- name: Create latest release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
frontend.zip | |
worker.js | |
tag_name: latest | |
name: Latest Release | |
body: | | |
This is always updated to the latest release | |
Current version: ${{ github.ref_name }} | |
prerelease: false | |
token: ${{ secrets.GITHUB_TOKEN }} |