update
This commit is contained in:
@@ -0,0 +1,276 @@
|
||||
name: Release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
packages: write
|
||||
discussions: write
|
||||
issues: write
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '18'
|
||||
cache: 'npm'
|
||||
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 8
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
- name: Build project
|
||||
run: pnpm run build
|
||||
env:
|
||||
PASSWORD: ${{ secrets.PASSWORD }}
|
||||
|
||||
- name: Create Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
files: |
|
||||
.next/**/*
|
||||
public/**/*
|
||||
package.json
|
||||
README.md
|
||||
CHANGELOG.md
|
||||
LICENSE
|
||||
config.json
|
||||
next.config.js
|
||||
tailwind.config.ts
|
||||
tsconfig.json
|
||||
Dockerfile
|
||||
vercel.json
|
||||
generate_release_notes: true
|
||||
draft: false
|
||||
prerelease: false
|
||||
title: '🎉 Release ${{ github.ref_name }}'
|
||||
body: |
|
||||
## 🎉 新版本发布
|
||||
|
||||
**版本号**: ${{ github.ref_name }}
|
||||
**发布日期**: ${{ github.event.head_commit.timestamp }}
|
||||
|
||||
### 🚀 快速开始
|
||||
|
||||
#### Docker 部署(推荐)
|
||||
```bash
|
||||
docker pull ghcr.io/senshinya/moontv:${{ github.ref_name }}
|
||||
docker run -d --name moontv -p 3000:3000 --env PASSWORD=your_password ghcr.io/senshinya/moontv:${{ github.ref_name }}
|
||||
```
|
||||
|
||||
#### Vercel 部署
|
||||
- Fork 本仓库
|
||||
- 在 Vercel 中导入项目
|
||||
- 设置环境变量 PASSWORD
|
||||
- 自动部署完成
|
||||
|
||||
#### Cloudflare Pages 部署
|
||||
- Fork 本仓库
|
||||
- 在 Cloudflare Pages 中导入项目
|
||||
- 设置构建命令:`pnpm run pages:build`
|
||||
- 配置环境变量
|
||||
|
||||
### 📋 环境变量
|
||||
|
||||
| 变量 | 说明 | 默认值 |
|
||||
|------|------|--------|
|
||||
| PASSWORD | 访问密码 | 必填 |
|
||||
| NEXT_PUBLIC_STORAGE_TYPE | 存储类型 | localstorage |
|
||||
| USERNAME | 管理员账号 | 空 |
|
||||
|
||||
更多环境变量请查看 [README.md](README.md)
|
||||
|
||||
### 🔗 相关资源
|
||||
|
||||
- [项目文档](https://github.com/senshinya/moontv#readme)
|
||||
- [问题反馈](https://github.com/senshinya/moontv/issues)
|
||||
- [功能讨论](https://github.com/senshinya/moontv/discussions)
|
||||
- [贡献指南](https://github.com/senshinya/moontv/blob/main/CONTRIBUTING.md)
|
||||
|
||||
### 📝 更新日志
|
||||
|
||||
查看 [CHANGELOG.md](CHANGELOG.md) 了解详细的更新历史。
|
||||
|
||||
---
|
||||
|
||||
**注意**: 本项目仅供学习和个人使用,请遵守当地法律法规。
|
||||
|
||||
- name: Build and Push Docker Image
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
tags: |
|
||||
ghcr.io/senshinya/moontv:${{ github.ref_name }}
|
||||
ghcr.io/senshinya/moontv:latest
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
platforms: linux/amd64,linux/arm64
|
||||
|
||||
- name: Update Release with Docker Info
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
body: |
|
||||
## 🎉 新版本发布
|
||||
|
||||
**版本号**: ${{ github.ref_name }}
|
||||
**发布日期**: ${{ github.event.head_commit.timestamp }}
|
||||
|
||||
### 🐳 Docker 镜像
|
||||
|
||||
Docker 镜像已自动构建并推送到 GitHub Container Registry:
|
||||
|
||||
```bash
|
||||
# 拉取指定版本
|
||||
docker pull ghcr.io/senshinya/moontv:${{ github.ref_name }}
|
||||
|
||||
# 拉取最新版本
|
||||
docker pull ghcr.io/senshinya/moontv:latest
|
||||
|
||||
# 运行容器
|
||||
docker run -d --name moontv -p 3000:3000 --env PASSWORD=your_password ghcr.io/senshinya/moontv:${{ github.ref_name }}
|
||||
```
|
||||
|
||||
### 🚀 其他部署方式
|
||||
|
||||
#### Vercel 部署
|
||||
- Fork 本仓库
|
||||
- 在 Vercel 中导入项目
|
||||
- 设置环境变量 PASSWORD
|
||||
- 自动部署完成
|
||||
|
||||
#### Cloudflare Pages 部署
|
||||
- Fork 本仓库
|
||||
- 在 Cloudflare Pages 中导入项目
|
||||
- 设置构建命令:`pnpm run pages:build`
|
||||
- 配置环境变量
|
||||
|
||||
### 📋 环境变量
|
||||
|
||||
| 变量 | 说明 | 默认值 |
|
||||
|------|------|--------|
|
||||
| PASSWORD | 访问密码 | 必填 |
|
||||
| NEXT_PUBLIC_STORAGE_TYPE | 存储类型 | localstorage |
|
||||
| USERNAME | 管理员账号 | 空 |
|
||||
|
||||
更多环境变量请查看 [README.md](README.md)
|
||||
|
||||
### 🔗 相关资源
|
||||
|
||||
- [项目文档](https://github.com/senshinya/moontv#readme)
|
||||
- [问题反馈](https://github.com/senshinya/moontv/issues)
|
||||
- [功能讨论](https://github.com/senshinya/moontv/discussions)
|
||||
- [贡献指南](https://github.com/senshinya/moontv/blob/main/CONTRIBUTING.md)
|
||||
|
||||
### 📝 更新日志
|
||||
|
||||
查看 [CHANGELOG.md](CHANGELOG.md) 了解详细的更新历史。
|
||||
|
||||
---
|
||||
|
||||
**注意**: 本项目仅供学习和个人使用,请遵守当地法律法规。
|
||||
update_existing_release: true
|
||||
|
||||
- name: Create Discussion
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const { data: discussions } = await github.rest.discussions.create({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
title: `🎉 ${context.ref_name} 版本发布讨论`,
|
||||
body: `## 🎉 ${context.ref_name} 版本发布成功!
|
||||
|
||||
新版本已成功发布,包含以下更新:
|
||||
|
||||
### 🚀 主要特性
|
||||
- 观看历史记录功能
|
||||
- 多源聚合搜索
|
||||
- PWA 支持
|
||||
- 深色模式
|
||||
- 多用户系统
|
||||
|
||||
### 🐳 Docker 部署
|
||||
\`\`\`bash
|
||||
docker pull ghcr.io/senshinya/moontv:${context.ref_name}
|
||||
docker run -d --name moontv -p 3000:3000 --env PASSWORD=your_password ghcr.io/senshinya/moontv:${context.ref_name}
|
||||
\`\`\`
|
||||
|
||||
### 📋 环境变量
|
||||
| 变量 | 说明 | 默认值 |
|
||||
|------|------|--------|
|
||||
| PASSWORD | 访问密码 | 必填 |
|
||||
| NEXT_PUBLIC_STORAGE_TYPE | 存储类型 | localstorage |
|
||||
| USERNAME | 管理员账号 | 空 |
|
||||
|
||||
### 🔗 相关链接
|
||||
- [Release 页面](https://github.com/${context.repo.owner}/${context.repo.repo}/releases/tag/${context.ref_name})
|
||||
- [项目文档](https://github.com/${context.repo.owner}/${context.repo.repo}#readme)
|
||||
- [问题反馈](https://github.com/${context.repo.owner}/${context.repo.repo}/issues)
|
||||
|
||||
---
|
||||
|
||||
欢迎在此讨论新版本的使用体验、问题反馈和功能建议!
|
||||
|
||||
**注意**: 本项目仅供学习和个人使用,请遵守当地法律法规。`,
|
||||
category: 'ANNOUNCEMENT'
|
||||
});
|
||||
|
||||
console.log(`Discussion created: ${discussions.html_url}`);
|
||||
|
||||
- name: Comment on Issues
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
// 查找与当前版本相关的 issue
|
||||
const { data: issues } = await github.rest.issues.listForRepo({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
state: 'open',
|
||||
labels: ['enhancement', 'bug', 'feature']
|
||||
});
|
||||
|
||||
// 在相关 issue 下添加评论
|
||||
for (const issue of issues) {
|
||||
if (issue.title.toLowerCase().includes('release') ||
|
||||
issue.title.toLowerCase().includes('version') ||
|
||||
issue.body?.toLowerCase().includes('release') ||
|
||||
issue.body?.toLowerCase().includes('version')) {
|
||||
|
||||
await github.rest.issues.createComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: issue.number,
|
||||
body: `🎉 好消息!${context.ref_name} 版本已经发布,可能解决了您提到的问题。
|
||||
|
||||
请查看 [Release 页面](https://github.com/${context.repo.owner}/${context.repo.repo}/releases/tag/${context.ref_name}) 了解详细更新内容。
|
||||
|
||||
如果问题仍然存在,请提供更多详细信息,我们会继续关注。`
|
||||
});
|
||||
|
||||
console.log(`Commented on issue #${issue.number}`);
|
||||
}
|
||||
}
|
||||
|
||||
- name: Notify Success
|
||||
run: |
|
||||
echo "🎉 Release ${{ github.ref_name }} 发布成功!"
|
||||
echo "📦 Docker 镜像: ghcr.io/senshinya/moontv:${{ github.ref_name }}"
|
||||
echo "🔗 Release 页面: https://github.com/${{ github.repository }}/releases/tag/${{ github.ref_name }}"
|
||||
echo "📝 更新日志: https://github.com/${{ github.repository }}/blob/main/CHANGELOG.md"
|
||||
Reference in New Issue
Block a user