mirror of
https://github.com/kilyabin/psysonic.git
synced 2026-07-22 14:35:41 +00:00
10ca1bc051
* ci(release): sync Cargo/tauri versions after npm version on promote Keep bundle artifact names aligned with package.json by updating src-tauri/Cargo.toml and tauri.conf.json when promoting channel branches. Made-with: Cursor * ci(release): sync Cargo/tauri in post-release dev bump PR Run the same package.json→Tauri sync after bumping main to the next -dev version so local builds match auto-generated PR contents.
67 lines
2.4 KiB
YAML
67 lines
2.4 KiB
YAML
name: Promote main to next
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
validate-main:
|
|
uses: ./.github/workflows/validate-main-green-ci.yml
|
|
with:
|
|
branch: main
|
|
required_contexts: ci-ok|ci-main / ci-ok
|
|
|
|
promote:
|
|
needs: validate-main
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
fetch-depth: 0
|
|
ref: next
|
|
- name: setup node
|
|
uses: actions/setup-node@v5
|
|
with:
|
|
node-version: lts/*
|
|
- name: fast-forward next to main
|
|
run: |
|
|
set -euo pipefail
|
|
git fetch origin main next
|
|
# Reset channel branch to main snapshot, then create a fresh RC bump commit.
|
|
git reset --hard origin/main
|
|
- name: bump package version to next RC
|
|
run: |
|
|
set -euo pipefail
|
|
git fetch --tags origin
|
|
CURRENT_VERSION="$(node -p 'require("./package.json").version')"
|
|
BASE_VERSION="$(node -p 'const v=require("./package.json").version; const m=v.match(/^(\d+\.\d+\.\d+)/); if(!m){throw new Error("Invalid version: "+v)}; m[1]')"
|
|
MAX_RC="$(git tag -l "app-v${BASE_VERSION}-rc.*" | sed -E 's/.*-rc\.([0-9]+)$/\1/' | sort -n | tail -n1)"
|
|
if [[ -z "$MAX_RC" ]]; then
|
|
NEXT_RC=1
|
|
else
|
|
NEXT_RC=$((MAX_RC + 1))
|
|
fi
|
|
TARGET_VERSION="${BASE_VERSION}-rc.${NEXT_RC}"
|
|
if [[ "$CURRENT_VERSION" == "$TARGET_VERSION" ]]; then
|
|
echo "package.json already uses $TARGET_VERSION"
|
|
exit 0
|
|
fi
|
|
npm version --no-git-tag-version "$TARGET_VERSION"
|
|
- name: sync Tauri version from package.json
|
|
run: node scripts/sync-tauri-version-from-package.js
|
|
- name: commit RC version bump
|
|
run: |
|
|
set -euo pipefail
|
|
git config user.name "github-actions[bot]"
|
|
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
git add package.json package-lock.json src-tauri/Cargo.toml src-tauri/tauri.conf.json
|
|
if git diff --cached --quiet; then
|
|
echo "No version bump changes to commit."
|
|
exit 0
|
|
fi
|
|
NEW_VERSION="$(node -p 'require("./package.json").version')"
|
|
git commit -m "chore(release): bump next channel to ${NEW_VERSION}"
|
|
- name: push next
|
|
run: git push --force-with-lease origin HEAD:next
|