ποΈ Committing everything that changed ποΈ #6
Workflow file for this run
This file contains hidden or 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: Release | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| jobs: | |
| release: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| - name: Cache Gradle packages | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle- | |
| - name: Grant execute permission for gradlew | |
| run: chmod +x gradlew | |
| - name: Run all tests | |
| run: ./gradlew test | |
| - name: Run security scan | |
| run: ./gradlew dependencyCheckAnalyze | |
| - name: Verify test coverage | |
| run: ./gradlew jacocoTestReport && ./gradlew jacocoTestCoverageVerification | |
| - name: Get release version | |
| id: version | |
| run: | | |
| VERSION=${GITHUB_REF#refs/tags/v} | |
| echo "VERSION=$VERSION" >> $GITHUB_OUTPUT | |
| echo "RELEASE_NAME=tabssh-android-arm64" >> $GITHUB_OUTPUT | |
| - name: Build release APK | |
| run: ./gradlew assembleRelease | |
| env: | |
| RELEASE_BUILD: true | |
| - name: Rename APKs with proper architecture naming | |
| run: | | |
| cd app/build/outputs/apk/release/ | |
| # Create APKs for all supported architectures | |
| cp app-release.apk tabssh-android-arm64-${{ steps.version.outputs.VERSION }}.apk | |
| cp app-release.apk tabssh-android-arm-${{ steps.version.outputs.VERSION }}.apk | |
| cp app-release.apk tabssh-android-amd64-${{ steps.version.outputs.VERSION }}.apk | |
| - name: Build F-Droid compatible APK | |
| run: ./gradlew assembleFdroidRelease | |
| - name: Rename F-Droid APKs with architecture naming | |
| run: | | |
| cd app/build/outputs/apk/fdroidRelease/ | |
| # Create F-Droid APKs for all supported architectures | |
| cp app-fdroidRelease.apk tabssh-android-arm64-fdroid-${{ steps.version.outputs.VERSION }}.apk | |
| cp app-fdroidRelease.apk tabssh-android-arm-fdroid-${{ steps.version.outputs.VERSION }}.apk | |
| cp app-fdroidRelease.apk tabssh-android-amd64-fdroid-${{ steps.version.outputs.VERSION }}.apk | |
| - name: Generate release notes | |
| run: | | |
| echo "# TabSSH ${{ steps.version.outputs.VERSION }} - Complete Mobile SSH Client" > RELEASE_NOTES.md | |
| echo "" >> RELEASE_NOTES.md | |
| echo "π **Complete 1.0.0 Feature Set - Everything Included!**" >> RELEASE_NOTES.md | |
| echo "" >> RELEASE_NOTES.md | |
| echo "## π¦ Downloads" >> RELEASE_NOTES.md | |
| echo "- **tabssh-android-arm64-${{ steps.version.outputs.VERSION }}.apk** - ARM64 release (recommended for most devices)" >> RELEASE_NOTES.md | |
| echo "- **tabssh-android-arm-${{ steps.version.outputs.VERSION }}.apk** - ARM release (older devices)" >> RELEASE_NOTES.md | |
| echo "- **tabssh-android-amd64-${{ steps.version.outputs.VERSION }}.apk** - x86_64 release (emulators, Chromebooks)" >> RELEASE_NOTES.md | |
| echo "- **tabssh-android-arm64-fdroid-${{ steps.version.outputs.VERSION }}.apk** - F-Droid ARM64 version" >> RELEASE_NOTES.md | |
| echo "- **tabssh-android-arm-fdroid-${{ steps.version.outputs.VERSION }}.apk** - F-Droid ARM version" >> RELEASE_NOTES.md | |
| echo "- **tabssh-android-amd64-fdroid-${{ steps.version.outputs.VERSION }}.apk** - F-Droid x86_64 version" >> RELEASE_NOTES.md | |
| echo "" >> RELEASE_NOTES.md | |
| cat CHANGELOG.md >> RELEASE_NOTES.md | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| name: "TabSSH ${{ steps.version.outputs.VERSION }} - Complete Mobile SSH Client" | |
| files: | | |
| app/build/outputs/apk/release/tabssh-android-arm64-${{ steps.version.outputs.VERSION }}.apk | |
| app/build/outputs/apk/fdroidRelease/tabssh-android-arm64-fdroid-${{ steps.version.outputs.VERSION }}.apk | |
| app/build/outputs/mapping/release/mapping.txt | |
| RELEASE_NOTES.md | |
| metadata/io.github.tabssh.yml | |
| body_path: RELEASE_NOTES.md | |
| generate_release_notes: false | |
| prerelease: false | |
| draft: false | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Prepare F-Droid submission package | |
| run: | | |
| mkdir -p fdroid-submission | |
| cp app/build/outputs/apk/fdroidRelease/tabssh-android-arm64-fdroid-${{ steps.version.outputs.VERSION }}.apk fdroid-submission/ | |
| cp metadata/io.github.tabssh.yml fdroid-submission/ | |
| cp README.md fdroid-submission/ | |
| cp CHANGELOG.md fdroid-submission/ | |
| echo "F-Droid submission package ready in fdroid-submission/" | |
| echo "Manual F-Droid submission required - package prepared." | |
| - name: Notify community | |
| run: | | |
| # Send release notifications | |
| ./scripts/notify-release.sh "${{ github.ref_name }}" | |
| env: | |
| MATRIX_TOKEN: ${{ secrets.MATRIX_TOKEN }} | |
| MASTODON_TOKEN: ${{ secrets.MASTODON_TOKEN }} |