From e47c8c15d4ce96302c38a348773b53c44fd0de8e Mon Sep 17 00:00:00 2001 From: Codex Date: Sun, 5 Jul 2026 17:10:54 +0000 Subject: [PATCH] Simplify Gitea Android workflow --- .gitea/workflows/android.yaml | 144 ++++++---------------------------- 1 file changed, 22 insertions(+), 122 deletions(-) diff --git a/.gitea/workflows/android.yaml b/.gitea/workflows/android.yaml index e6306c5..7da1fd8 100644 --- a/.gitea/workflows/android.yaml +++ b/.gitea/workflows/android.yaml @@ -1,47 +1,19 @@ -name: Android APK +name: Gitea Android APK -on: - push: - branches: - - main - tags: - - "v*" - pull_request: - workflow_dispatch: - inputs: - publish_release: - description: "Create or update a GitHub Release" - required: true - default: "false" - type: choice - options: - - "false" - - "true" - -permissions: - contents: write +on: [push] jobs: build: runs-on: ubuntu-latest - env: - PUBLISH_RELEASE: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') || inputs.publish_release == 'true' }} - steps: - name: Checkout uses: actions/checkout@v4 - - name: Set version - shell: bash + - name: Show runner environment run: | - if [[ "${GITHUB_REF}" == refs/tags/v* ]]; then - VERSION_NAME="${GITHUB_REF_NAME#v}" - else - VERSION_NAME="0.1.${GITHUB_RUN_NUMBER}" - fi - VERSION_CODE=$((1000 + GITHUB_RUN_NUMBER)) - echo "VERSION_NAME=${VERSION_NAME}" >> "${GITHUB_ENV}" - echo "VERSION_CODE=${VERSION_CODE}" >> "${GITHUB_ENV}" + pwd + java -version || true + ls -la - name: Set up JDK uses: actions/setup-java@v4 @@ -52,109 +24,37 @@ jobs: - name: Set up Android SDK uses: android-actions/setup-android@v3 - - name: Install Android packages - shell: bash - run: sdkmanager "platforms;android-35" "build-tools;35.0.0" "platform-tools" - - name: Set up Gradle uses: gradle/actions/setup-gradle@v4 with: gradle-version: "8.10.2" - - name: Configure signing - id: signing - shell: bash - env: - ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} - ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} - ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }} - ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }} + - name: Install Android packages + run: sdkmanager "platforms;android-35" "build-tools;35.0.0" "platform-tools" + + - name: Set version run: | - if [[ -z "${ANDROID_KEYSTORE_BASE64}" ]]; then - echo "signed=false" >> "${GITHUB_OUTPUT}" - exit 0 - fi - echo "${ANDROID_KEYSTORE_BASE64}" | base64 -d > release.jks - { - echo "storeFile=release.jks" - echo "storePassword=${ANDROID_KEYSTORE_PASSWORD}" - echo "keyAlias=${ANDROID_KEY_ALIAS}" - echo "keyPassword=${ANDROID_KEY_PASSWORD}" - } > signing.properties - echo "signed=true" >> "${GITHUB_OUTPUT}" + VERSION_NAME="0.1.${GITHUB_RUN_NUMBER:-0}" + VERSION_CODE=$((2000 + ${GITHUB_RUN_NUMBER:-0})) + echo "VERSION_NAME=${VERSION_NAME}" >> "${GITHUB_ENV}" + echo "VERSION_CODE=${VERSION_CODE}" >> "${GITHUB_ENV}" - name: Build APK - shell: bash run: | - if [[ "${{ steps.signing.outputs.signed }}" == "true" ]]; then - BUILD_TASK=":app:assembleRelease" - else - BUILD_TASK=":app:assembleDebug" - fi - gradle "${BUILD_TASK}" \ + gradle :app:assembleDebug \ -PversionCode="${VERSION_CODE}" \ -PversionName="${VERSION_NAME}" \ - -PrepoSlug="${GITHUB_REPOSITORY}" + -PrepoSlug="neatstudio/tmux-browser-android" - - name: Prepare artifacts - shell: bash + - name: Prepare artifact run: | mkdir -p release APK_PATH="$(find app/build/outputs/apk -name '*.apk' | sort | tail -n 1)" - cp "${APK_PATH}" "release/tmux-android.apk" - cp "${APK_PATH}" "release/tmux-android-${VERSION_NAME}.apk" - SHA256="$(sha256sum release/tmux-android.apk | awk '{print $1}')" - APK_URL="https://github.com/${GITHUB_REPOSITORY}/releases/latest/download/tmux-android.apk" - RELEASE_PAGE_URL="https://github.com/${GITHUB_REPOSITORY}/releases/latest" - cat > release/latest.json << JSON - { - "versionCode": ${VERSION_CODE}, - "versionName": "${VERSION_NAME}", - "apkUrl": "${APK_URL}", - "sha256": "${SHA256}", - "releasePageUrl": "${RELEASE_PAGE_URL}", - "minSdk": 26 - } - JSON + cp "${APK_PATH}" release/tmux-android-gitea.apk + sha256sum release/tmux-android-gitea.apk - - name: Upload workflow artifact + - name: Upload artifact uses: actions/upload-artifact@v4 with: - name: tmux-android-${{ env.VERSION_NAME }} - path: | - release/tmux-android.apk - release/tmux-android-${{ env.VERSION_NAME }}.apk - release/latest.json - - - name: Require signing for release publishing - if: env.PUBLISH_RELEASE == 'true' && steps.signing.outputs.signed != 'true' - shell: bash - run: | - echo "Release publishing requires ANDROID_KEYSTORE_BASE64 and signing secrets." >&2 - exit 1 - - - name: Publish GitHub Release - if: env.PUBLISH_RELEASE == 'true' - shell: bash - env: - GH_TOKEN: ${{ github.token }} - run: | - if [[ "${GITHUB_REF}" == refs/tags/v* ]]; then - TAG="${GITHUB_REF_NAME}" - else - TAG="v${VERSION_NAME}" - git config user.name "github-actions[bot]" - git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - git tag -f "${TAG}" - git push -f origin "${TAG}" - fi - - if gh release view "${TAG}" >/dev/null 2>&1; then - gh release upload "${TAG}" release/tmux-android.apk release/latest.json --clobber - else - gh release create "${TAG}" release/tmux-android.apk release/latest.json \ - --latest \ - --title "tmux Android ${VERSION_NAME}" \ - --notes "Android APK for tmux-ui remote testing." - fi - + name: tmux-android-gitea + path: release/tmux-android-gitea.apk