mirror of
https://github.com/bolucat/Archive.git
synced 2026-04-23 00:17:16 +08:00
72 lines
2.0 KiB
YAML
72 lines
2.0 KiB
YAML
name: nightly-release
|
|
|
|
on:
|
|
schedule:
|
|
# 每天 UTC 时间 00:00 自动触发构建
|
|
- cron: "0 0 * * *"
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
create-nightly-release:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0 # 确保获取所有历史和标签
|
|
|
|
- name: Configure Git
|
|
run: |
|
|
git config user.name "GitHub Actions"
|
|
git config user.email "actions@github.com"
|
|
|
|
- name: Get latest version and create nightly tag
|
|
id: get_version
|
|
run: |
|
|
# 获取最新的非 nightly 版本标签
|
|
latest_version=$(git describe --tags --abbrev=0 --exclude="*-next")
|
|
|
|
# 增加补丁版本号
|
|
nightly_version=$(echo $latest_version | awk -F. '{$NF = $NF + 1;} 1' | sed 's/ /./g')
|
|
|
|
# 创建 nightly 标签
|
|
nightly_tag="${nightly_version}-next"
|
|
echo "NIGHTLY_TAG=${nightly_tag}" >> $GITHUB_OUTPUT
|
|
|
|
# 删除远程的旧 nightly tag(如果存在)
|
|
git push origin :refs/tags/*-next || true
|
|
|
|
# 删除本地的旧 nightly tag(如果存在)
|
|
git tag -d $(git tag -l '*-next') || true
|
|
|
|
# 创建新的 nightly tag
|
|
git tag $nightly_tag
|
|
|
|
# 强制推送新的 nightly tag
|
|
git push origin $nightly_tag --force
|
|
|
|
- name: Delete Old GitHub Release
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
NIGHTLY_TAG: ${{ steps.get_version.outputs.NIGHTLY_TAG }}
|
|
run: |
|
|
gh release delete $NIGHTLY_TAG --yes || true
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version: "1.26.1"
|
|
|
|
- name: Get dependencies
|
|
run: go mod download
|
|
|
|
- name: GoReleaser Action
|
|
uses: goreleaser/goreleaser-action@v5
|
|
with:
|
|
version: v1.26.2
|
|
args: release --clean
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GORELEASER_GITHUB_TOKEN }}
|
|
GORELEASER_CURRENT_TAG: ${{ steps.get_version.outputs.NIGHTLY_TAG }}
|
|
|