Skip to content

πŸ—ƒοΈ Committing everything that changed πŸ—ƒοΈ #6

πŸ—ƒοΈ Committing everything that changed πŸ—ƒοΈ

πŸ—ƒοΈ Committing everything that changed πŸ—ƒοΈ #6

Workflow file for this run

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 }}