@@ -165,13 +165,48 @@ jobs:
165165 npx electron-forge make --arch=arm64 --platform=darwin ${{ env.PROD == 'false' && '--mode=staging' || '' }}
166166 npx tsx scripts/merge-yml.ts
167167
168+ - name : Resolve desktop build version
169+ if : runner.os == 'macOS' && github.event.inputs.store == 'true'
170+ id : desktop_build_version
171+ shell : bash
172+ run : |
173+ set -euo pipefail
174+
175+ build_version="${{ github.event.inputs.build_version }}"
176+
177+ if [ -n "$build_version" ]; then
178+ echo "Using provided desktop build version: $build_version"
179+ echo "build_version=$build_version" >> "$GITHUB_OUTPUT"
180+ exit 0
181+ fi
182+
183+ git fetch --tags --force
184+
185+ latest_tag="$(git tag -l 'desktop-build/v*' --sort=-v:refname | head -n 1)"
186+ if [ -z "$latest_tag" ]; then
187+ last_build=110
188+ else
189+ last_build="${latest_tag#desktop-build/v}"
190+ fi
191+
192+ build_version=$((last_build + 1))
193+ build_tag="desktop-build/v${build_version}"
194+
195+ git config user.name "github-actions[bot]"
196+ git config user.email "github-actions[bot]@users.noreply.github.com"
197+ git tag "$build_tag"
198+ git push origin "$build_tag"
199+
200+ echo "Reserved desktop build version: ${build_version}"
201+ echo "build_version=$build_version" >> "$GITHUB_OUTPUT"
202+
168203 - name : Build - Mac App Store
169204 if : runner.os == 'macOS' && github.event.inputs.store == 'true'
170205 env :
171206 OSX_SIGN_KEYCHAIN_PATH : ${{ runner.temp }}/app-signing.keychain-db
172207 OSX_SIGN_IDENTITY : ${{ secrets.OSX_SIGN_IDENTITY_MAS }}
173208 OSX_SIGN_PROVISIONING_PROFILE_PATH : ${{ runner.temp }}/build_pp.provisionprofile
174- BUILD_VERSION : ${{ github.event.inputs .build_version }}
209+ BUILD_VERSION : ${{ steps.desktop_build_version.outputs .build_version }}
175210 working-directory : apps/desktop
176211 run : pnpm build:electron-forge:mas
177212
0 commit comments