Skip to content

Nightly Build dicts

Nightly Build dicts #3

name: Nightly Build dicts
on:
workflow_dispatch: # 手动触发
schedule:
- cron: "0 14 * * *" # 每天晚上 10 点
# - cron: "0 14 * * 1" #一周一次
jobs:
nightly-release:
runs-on: ubuntu-22.04
steps:
# 检出代码
- name: Checkout repository
uses: actions/checkout@v4
# 打包词库文件
- name: Pack cn_dicts
run: |
mkdir -p dist
echo "Packing cn_dicts..."
if [ -d "cn_dicts" ]; then
zip -r dist/cn_dicts.zip cn_dicts
echo "Packing completed: dist/cn_dicts.zip"
else
echo "Error: cn_dicts folder does not exist."
exit 1
fi
# 删除旧的 Release 和 Tag(如果存在)
- name: Delete existing Nightly Release
continue-on-error: true # 忽略删除失败的错误
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const tag = "dict-nightly";
try {
// 检查现有的 Release
const releases = await github.rest.repos.listReleases({
owner: context.repo.owner,
repo: context.repo.repo
});
const existingRelease = releases.data.find(r => r.tag_name === tag);
if (existingRelease) {
console.log(`Deleting existing Release with ID: ${existingRelease.id}`);
await github.rest.repos.deleteRelease({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: existingRelease.id
});
} else {
console.log("No existing Release found.");
}
// 删除现有的 Tag
console.log(`Deleting tag: ${tag}`);
await github.rest.git.deleteRef({
owner: context.repo.owner,
repo: context.repo.repo,
ref: `tags/${tag}`
});
} catch (error) {
console.log(`Error deleting Release or Tag: ${error.message}`);
}
# 创建新的 Release
- name: Create new Release
uses: "softprops/action-gh-release@v2"
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag_name: dict-nightly
name: "每夜构建-词库更新"
body: |
- `cn_dicts.zip`:最新的中文词库文件。
files: dist/cn_dicts.zip
make_latest: true # 强制标记为最新版本