build: add beta release channel

This commit is contained in:
smp46
2026-07-23 20:20:36 +10:00
parent 68ebf191fe
commit 5611db86a4
3 changed files with 23 additions and 7 deletions
+2
View File
@@ -27,6 +27,8 @@ jobs:
type=semver,pattern={{version}},prefix=v
type=semver,pattern={{major}}.{{minor}},prefix=v
type=semver,pattern={{major}},prefix=v
type=raw,value=latest,enable=${{ github.event_name == 'workflow_dispatch' || (github.event_name == 'release' && !github.event.release.prerelease) }}
type=raw,value=beta,enable=${{ github.event_name == 'release' && github.event.release.prerelease }}
- name: Login to Docker Hub
uses: docker/login-action@v3
+19 -7
View File
@@ -11,26 +11,38 @@ jobs:
issues: write
pull-requests: write
steps:
- name: Environment Setup
- name: Swap PR labels
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}
IS_PRERELEASE: ${{ github.event.release.prerelease }}
run: |
# 1. Find all merged PRs with the 'awaiting release' label
pr_numbers=$(gh pr list --state merged --label "awaiting release" --json number --jq '.[].number')
if [ "$IS_PRERELEASE" = "true" ]; then
echo "Processing pre-release..."
FROM_LABEL="awaiting release"
TO_LABEL="in beta"
else
echo "Processing regular release..."
FROM_LABEL="in beta"
TO_LABEL="released"
fi
# 1. Find all merged PRs with the source label
pr_numbers=$(gh pr list --state merged --label "$FROM_LABEL" --limit 1000 --json number --jq '.[].number')
if [ -z "$pr_numbers" ]; then
echo "No PRs found with 'awaiting release' label."
echo "No PRs found with '$FROM_LABEL' label."
exit 0
fi
# 2. Loop through each PR to swap the labels
for pr in $pr_numbers; do
echo "Updating labels for PR #$pr"
echo "Updating labels for PR #$pr (moving from '$FROM_LABEL' to '$TO_LABEL')"
# Remove the old label
gh pr edit $pr --remove-label "awaiting release"
gh pr edit $pr --remove-label "$FROM_LABEL"
# Add the new label
gh pr edit $pr --add-label "released"
gh pr edit $pr --add-label "$TO_LABEL"
done
+2
View File
@@ -7,6 +7,8 @@
"version": "conventional-changelog -p conventionalcommits -i CHANGELOG.md -o CHANGELOG.md && git add CHANGELOG.md",
"release:patch": "cd backend && npm version patch --commit-hooks false && cd ../frontend && npm version patch --commit-hooks false && cd .. && git add . && npm version patch --force -m 'release: %s' && git push && git push --tags",
"release:minor": "cd backend && npm version minor --commit-hooks false && cd ../frontend && npm version minor --commit-hooks false && cd .. && git add . && npm version minor --force -m 'release: %s' && git push && git push --tags",
"release:beta:patch": "cd backend && npm version prerelease --preid beta --commit-hooks false && cd ../frontend && npm version prerelease --preid beta --commit-hooks false && cd .. && git add . && npm version prerelease --preid beta --force -m 'release: %s' && git push && git push --tags",
"release:beta:minor": "cd backend && npm version preminor --preid beta --commit-hooks false && cd ../frontend && npm version preminor --preid beta --commit-hooks false && cd .. && git add . && npm version preminor --preid beta --force -m 'release: %s' && git push && git push --tags",
"deploy:dev": "docker buildx build --push --tag smp46/pingvin-share-x:development --platform linux/amd64,linux/arm64 ."
},
"prettier": {