mirror of
https://github.com/bolucat/Archive.git
synced 2025-12-24 13:28:37 +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.25.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 }}
|
||
|