name: Attach Debug APKs To Release on: release: types: - published jobs: build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: package_variant: [ apt-android-7, apt-android-5 ] env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - name: Clone repository uses: actions/checkout@v4 with: ref: ${{ env.GITHUB_REF }} - name: Build shell: bash {0} env: PACKAGE_VARIANT: ${{ matrix.package_variant }} run: | RELEASE_VERSION_NAME="${GITHUB_REF/refs\/tags\//}" if ! printf "%s" "${RELEASE_VERSION_NAME/v/}" | grep -qP '^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$'; then echo "The versionName '${RELEASE_VERSION_NAME/v/}' is not a valid version as per semantic version '2.0.0' spec in the format 'major.minor.patch(-prerelease)(+buildmetadata)'. https://semver.org/spec/v2.0.0.html." exit 1 fi APK_DIR_PATH="./app/build/outputs/apk/debug" APK_VERSION_TAG="$RELEASE_VERSION_NAME+${{ env.PACKAGE_VARIANT }}-github-debug" APK_BASENAME_PREFIX="termux-app_$APK_VERSION_TAG" echo "Building APKs for 'APK_VERSION_TAG' release" export TERMUX_APK_VERSION_TAG="$APK_VERSION_TAG" # Used by app/build.gradle export TERMUX_PACKAGE_VARIANT="${{ env.PACKAGE_VARIANT }}" # Used by app/build.gradle ./gradlew assembleDebug echo "Validating APKs" for abi in universal arm64-v8a armeabi-v7a x86_64 x86; do if ! test -f "$APK_DIR_PATH/${APK_BASENAME_PREFIX}_$abi.apk"; then files_found="$(ls "$APK_DIR_PATH")" echo "Failed to find built APK at '$APK_DIR_PATH/${APK_BASENAME_PREFIX}_$abi.apk'. Files found: "$'\n'"$files_found" exit 1 fi done - name: Upload APKs to GitHub artifact uses: actions/upload-artifact@v4 with: name: ${{ matrix.package_variant }} path: ./app/build/outputs/apk/debug/*.apk upload: runs-on: ubuntu-latest needs: build env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - name: Download artifact uses: actions/download-artifact@v4 - name: Upload APKs to release uses: termux/upload-release-action@v4.1.0 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: "**/*.apk" file_glob: true release_name: tag: ${{ github.event.release.tag_name }} checksums: sha256,sha512,md5