Skip to content

fix: stop overlay on drag handle triple tap #17

fix: stop overlay on drag handle triple tap

fix: stop overlay on drag handle triple tap #17

Workflow file for this run

name: Android Release
on:
workflow_dispatch:
inputs:
tag:
description: Release tag to publish (for example, v0.2.1)
required: true
type: string
push:
tags:
- 'v*'
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
concurrency:
group: android-release-${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref_name }}
cancel-in-progress: false
env:
RELEASE_TAG: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref_name }}
steps:
- name: Validate release tag
shell: bash
run: |
if [[ ! "${RELEASE_TAG}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "Expected release tag in vX.Y.Z format, got: ${RELEASE_TAG}" >&2
exit 1
fi
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ env.RELEASE_TAG }}
fetch-depth: 0
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'
cache: gradle
- name: Grant Gradle wrapper execute permission
run: chmod +x gradlew
- name: Verify release notes file
shell: bash
run: |
release_notes_path="docs/releases/${RELEASE_TAG}.md"
if [[ ! -f "${release_notes_path}" ]]; then
echo "Missing release notes file: ${release_notes_path}" >&2
exit 1
fi
- name: Verify tag is reachable from main
shell: bash
run: |
git fetch --no-tags origin refs/heads/main:refs/remotes/origin/main
if ! git merge-base --is-ancestor HEAD origin/main; then
echo "Release tag ${RELEASE_TAG} must point to a commit reachable from origin/main" >&2
exit 1
fi
- name: Restore release keystore
shell: bash
run: |
mkdir -p keystore
echo "$ANDROID_KEYSTORE_BASE64" | base64 --decode > keystore/MediaFloat-release.jks
cat > keystore.properties <<EOF
storeFile=keystore/MediaFloat-release.jks
storePassword=${ANDROID_STORE_PASSWORD}
keyAlias=${ANDROID_KEY_ALIAS}
keyPassword=${ANDROID_KEY_PASSWORD}
EOF
env:
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
ANDROID_STORE_PASSWORD: ${{ secrets.ANDROID_STORE_PASSWORD }}
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}
- name: Bump versionCode for release
shell: bash
run: |
# Extract versionName from build.gradle.kts
VERSION_NAME=$(grep 'versionName' app/build.gradle.kts | sed 's/.*= *"\(.*\)"/\1/')
# Increment versionCode by 1
CURRENT_CODE=$(grep 'versionCode' app/build.gradle.kts | sed 's/.*= *\([0-9]*\)/\1/')
NEW_CODE=$((CURRENT_CODE + 1))
# Update build.gradle.kts
sed -i "s/versionCode = $CURRENT_CODE/versionCode = $NEW_CODE/" app/build.gradle.kts
echo "Bumped versionCode from $CURRENT_CODE to $NEW_CODE for $VERSION_NAME"
- name: Run release checks
run: ./gradlew :app:testDebugUnitTest :app:assembleRelease :app:bundleRelease -Pkotlin.incremental=false
- name: Prepare release artifact
run: |
mkdir -p release-artifacts
cp app/build/outputs/apk/release/app-release.apk release-artifacts/MediaFloat-android-${RELEASE_TAG}-signed.apk
cp app/build/outputs/bundle/release/app-release.aab release-artifacts/MediaFloat-android-${RELEASE_TAG}-signed.aab
- name: Publish GitHub release assets
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ env.RELEASE_TAG }}
body_path: docs/releases/${{ env.RELEASE_TAG }}.md
fail_on_unmatched_files: true
files: |
release-artifacts/MediaFloat-android-${{ env.RELEASE_TAG }}-signed.apk
release-artifacts/MediaFloat-android-${{ env.RELEASE_TAG }}-signed.aab