nightly-release #386
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: 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 "[email protected]" | |
- 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.21" | |
- 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 }} | |