@@ -377,14 +377,40 @@ jobs:
377377 build-windows,
378378 ]
379379 runs-on : ubuntu-latest
380- if : startsWith(github.ref, 'refs/tags/v')
380+ # Create releases for: version tags OR main/master branch pushes
381+ if : startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master'
381382
382383 permissions :
383384 contents : write
384385
385386 steps :
386387 - name : Checkout code
387388 uses : actions/checkout@v4
389+ with :
390+ fetch-depth : 0 # Fetch all history for proper versioning
391+
392+ - name : Generate release version
393+ id : version
394+ run : |
395+ if [[ "${{ github.ref }}" == refs/tags/v* ]]; then
396+ # For tags, use the tag name
397+ VERSION="${GITHUB_REF#refs/tags/}"
398+ IS_PRERELEASE=false
399+ if [[ "$VERSION" == *"beta"* ]] || [[ "$VERSION" == *"alpha"* ]]; then
400+ IS_PRERELEASE=true
401+ fi
402+ else
403+ # For main/master branch, create development release
404+ BRANCH_NAME="${GITHUB_REF#refs/heads/}"
405+ SHORT_SHA=$(git rev-parse --short HEAD)
406+ TIMESTAMP=$(date +%Y%m%d-%H%M%S)
407+ VERSION="dev-${BRANCH_NAME}-${SHORT_SHA}-${TIMESTAMP}"
408+ IS_PRERELEASE=true
409+ fi
410+ echo "version=${VERSION}" >> $GITHUB_OUTPUT
411+ echo "is_prerelease=${IS_PRERELEASE}" >> $GITHUB_OUTPUT
412+ echo "Release version: ${VERSION}"
413+ echo "Is prerelease: ${IS_PRERELEASE}"
388414
389415 - name : Download all artifacts
390416 uses : actions/download-artifact@v4
@@ -397,34 +423,55 @@ jobs:
397423 - name : Prepare release assets
398424 run : |
399425 mkdir -p release-assets
426+ VERSION="${{ steps.version.outputs.version }}"
400427
401428 # Android APKs
402- cp artifacts/android-apk/app-arm64-v8a-release.apk release-assets/Dester-Android-arm64-v8a.apk || true
403- cp artifacts/android-apk/app-armeabi-v7a-release.apk release-assets/Dester-Android-armeabi-v7a.apk || true
404- cp artifacts/android-apk/app-x86_64-release.apk release-assets/Dester-Android-x86_64.apk || true
429+ cp artifacts/android-apk/app-arm64-v8a-release.apk release-assets/Dester-${VERSION}- Android-arm64-v8a.apk || true
430+ cp artifacts/android-apk/app-armeabi-v7a-release.apk release-assets/Dester-${VERSION}- Android-armeabi-v7a.apk || true
431+ cp artifacts/android-apk/app-x86_64-release.apk release-assets/Dester-${VERSION}- Android-x86_64.apk || true
405432
406433 # Android AAB
407- cp artifacts/android-aab/app-release.aab release-assets/Dester-Android.aab || true
434+ cp artifacts/android-aab/app-release.aab release-assets/Dester-${VERSION}- Android.aab || true
408435
409436 # Android TV
410- cp artifacts/android-tv-apk/app-androidtv-release.apk release-assets/Dester-AndroidTV-arm64.apk || true
437+ cp artifacts/android-tv-apk/app-androidtv-release.apk release-assets/Dester-${VERSION}- AndroidTV-arm64.apk || true
411438
412439 # macOS
413- cp artifacts/macos-installer/Dester-macOS.dmg release-assets/ || true
414- cp artifacts/macos-installer/Dester-macOS.zip release-assets/ || true
440+ cp artifacts/macos-installer/Dester-macOS.dmg release-assets/Dester-${VERSION}-macOS.dmg || true
441+ cp artifacts/macos-installer/Dester-macOS.zip release-assets/Dester-${VERSION}-macOS.zip || true
415442
416443 # Linux
417- cp artifacts/linux-archive/Dester-Linux-x64.tar.gz release-assets/ || true
444+ cp artifacts/linux-archive/Dester-Linux-x64.tar.gz release-assets/Dester-${VERSION}-Linux-x64.tar.gz || true
418445
419446 # Windows
420- cp artifacts/windows-archive/Dester-Windows-x64.zip release-assets/ || true
447+ cp artifacts/windows-archive/Dester-Windows-x64.zip release-assets/Dester-${VERSION}-Windows-x64.zip || true
448+
449+ - name : Delete existing development release (if exists)
450+ if : steps.version.outputs.is_prerelease == 'true' && !startsWith(github.ref, 'refs/tags/v')
451+ run : |
452+ # Delete previous development releases to avoid clutter
453+ gh release delete "${{ steps.version.outputs.version }}" --yes || true
454+ git push origin :refs/tags/${{ steps.version.outputs.version }} || true
455+ env :
456+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
421457
422458 - name : Create GitHub Release
423- uses : softprops/action-gh-release@v1
459+ uses : softprops/action-gh-release@v2
424460 with :
425461 files : release-assets/*
462+ tag_name : ${{ steps.version.outputs.version }}
463+ name : ${{ steps.version.outputs.version }}
426464 draft : false
427- prerelease : ${{ contains(github.ref, 'beta') || contains(github.ref, 'alpha') }}
465+ prerelease : ${{ steps.version.outputs.is_prerelease }}
428466 generate_release_notes : true
467+ body : |
468+ ${{ startsWith(github.ref, 'refs/tags/v') && '🎉 Official Release' || '🚧 Development Build' }}
469+
470+ **Build Information:**
471+ - Commit: ${{ github.sha }}
472+ - Branch: ${{ github.ref_name }}
473+ - Workflow: ${{ github.run_number }}
474+
475+ ${{ !startsWith(github.ref, 'refs/tags/v') && '⚠️ This is an automated development build. For stable releases, see tagged versions.' || '' }}
429476 env :
430477 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments