diff --git a/.fdroid.yml b/.fdroid.yml index 03d111c..0d04af6 100644 --- a/.fdroid.yml +++ b/.fdroid.yml @@ -12,25 +12,24 @@ RepoType: git Repo: https://github.com/andre487/AndroidMegaProxy.git Builds: - - versionName: 0.0.8 - versionCode: 8001 - commit: d314a250df796643ce9e52c60f9b061318634935 + - versionName: 0.0.10 + versionCode: 10001 + commit: v0.0.10 subdir: app ndk: 29.0.14206865 sudo: - apt-get update - apt-get install -t trixie-backports -y golang-go - apt-get install -y gcc libc-dev make openjdk-21-jdk-headless - - mkdir -p /home/runner/work/AndroidMegaProxy - - chown -R vagrant:vagrant /home/runner gradle: - yes + gradleprops: + - megaproxyVersionVariant=armeabi-v7a srclibs: - go@go1.26.3 binary: https://github.com/andre487/AndroidMegaProxy/releases/download/v%v/mega-proxy-armeabi-v7a.apk prebuild: - sdkmanager 'platforms;android-26' - - echo 'megaproxyVersionVariant=armeabi-v7a' >> ../gradle.properties build: - pushd $$go$$/src - ./make.bash @@ -38,32 +37,26 @@ Builds: - export GOROOT=$$go$$ - export GOPATH=$HOME/go - export PATH=$GOROOT/bin:$GOPATH/bin:$PATH - - rm -rf /home/runner/work/AndroidMegaProxy/AndroidMegaProxy - - cp -a .. /home/runner/work/AndroidMegaProxy/AndroidMegaProxy - - cd /home/runner/work/AndroidMegaProxy/AndroidMegaProxy/app - MEGAPROXY_ANDROID_ABI=armeabi-v7a ../scripts/build-fdroid-native.sh - - mkdir -p $OLDPWD/libs - - cp libs/megaproxy.aar $OLDPWD/libs/ - - versionName: 0.0.8 - versionCode: 8002 - commit: d314a250df796643ce9e52c60f9b061318634935 + - versionName: 0.0.10 + versionCode: 10002 + commit: v0.0.10 subdir: app ndk: 29.0.14206865 sudo: - apt-get update - apt-get install -t trixie-backports -y golang-go - apt-get install -y gcc libc-dev make openjdk-21-jdk-headless - - mkdir -p /home/runner/work/AndroidMegaProxy - - chown -R vagrant:vagrant /home/runner gradle: - yes + gradleprops: + - megaproxyVersionVariant=arm64-v8a srclibs: - go@go1.26.3 binary: https://github.com/andre487/AndroidMegaProxy/releases/download/v%v/mega-proxy-arm64-v8a.apk prebuild: - sdkmanager 'platforms;android-26' - - echo 'megaproxyVersionVariant=arm64-v8a' >> ../gradle.properties build: - pushd $$go$$/src - ./make.bash @@ -71,32 +64,26 @@ Builds: - export GOROOT=$$go$$ - export GOPATH=$HOME/go - export PATH=$GOROOT/bin:$GOPATH/bin:$PATH - - rm -rf /home/runner/work/AndroidMegaProxy/AndroidMegaProxy - - cp -a .. /home/runner/work/AndroidMegaProxy/AndroidMegaProxy - - cd /home/runner/work/AndroidMegaProxy/AndroidMegaProxy/app - MEGAPROXY_ANDROID_ABI=arm64-v8a ../scripts/build-fdroid-native.sh - - mkdir -p $OLDPWD/libs - - cp libs/megaproxy.aar $OLDPWD/libs/ - - versionName: 0.0.8 - versionCode: 8003 - commit: d314a250df796643ce9e52c60f9b061318634935 + - versionName: 0.0.10 + versionCode: 10003 + commit: v0.0.10 subdir: app ndk: 29.0.14206865 sudo: - apt-get update - apt-get install -t trixie-backports -y golang-go - apt-get install -y gcc libc-dev make openjdk-21-jdk-headless - - mkdir -p /home/runner/work/AndroidMegaProxy - - chown -R vagrant:vagrant /home/runner gradle: - yes + gradleprops: + - megaproxyVersionVariant=x86 srclibs: - go@go1.26.3 binary: https://github.com/andre487/AndroidMegaProxy/releases/download/v%v/mega-proxy-x86.apk prebuild: - sdkmanager 'platforms;android-26' - - echo 'megaproxyVersionVariant=x86' >> ../gradle.properties build: - pushd $$go$$/src - ./make.bash @@ -104,32 +91,26 @@ Builds: - export GOROOT=$$go$$ - export GOPATH=$HOME/go - export PATH=$GOROOT/bin:$GOPATH/bin:$PATH - - rm -rf /home/runner/work/AndroidMegaProxy/AndroidMegaProxy - - cp -a .. /home/runner/work/AndroidMegaProxy/AndroidMegaProxy - - cd /home/runner/work/AndroidMegaProxy/AndroidMegaProxy/app - MEGAPROXY_ANDROID_ABI=x86 ../scripts/build-fdroid-native.sh - - mkdir -p $OLDPWD/libs - - cp libs/megaproxy.aar $OLDPWD/libs/ - - versionName: 0.0.8 - versionCode: 8004 - commit: d314a250df796643ce9e52c60f9b061318634935 + - versionName: 0.0.10 + versionCode: 10004 + commit: v0.0.10 subdir: app ndk: 29.0.14206865 sudo: - apt-get update - apt-get install -t trixie-backports -y golang-go - apt-get install -y gcc libc-dev make openjdk-21-jdk-headless - - mkdir -p /home/runner/work/AndroidMegaProxy - - chown -R vagrant:vagrant /home/runner gradle: - yes + gradleprops: + - megaproxyVersionVariant=x86_64 srclibs: - go@go1.26.3 binary: https://github.com/andre487/AndroidMegaProxy/releases/download/v%v/mega-proxy-x86_64.apk prebuild: - sdkmanager 'platforms;android-26' - - echo 'megaproxyVersionVariant=x86_64' >> ../gradle.properties build: - pushd $$go$$/src - ./make.bash @@ -137,12 +118,7 @@ Builds: - export GOROOT=$$go$$ - export GOPATH=$HOME/go - export PATH=$GOROOT/bin:$GOPATH/bin:$PATH - - rm -rf /home/runner/work/AndroidMegaProxy/AndroidMegaProxy - - cp -a .. /home/runner/work/AndroidMegaProxy/AndroidMegaProxy - - cd /home/runner/work/AndroidMegaProxy/AndroidMegaProxy/app - MEGAPROXY_ANDROID_ABI=x86_64 ../scripts/build-fdroid-native.sh - - mkdir -p $OLDPWD/libs - - cp libs/megaproxy.aar $OLDPWD/libs/ VercodeOperation: - 1000 * %c + 1 @@ -153,5 +129,5 @@ VercodeOperation: AutoUpdateMode: Version UpdateCheckMode: Tags UpdateCheckData: app/build.gradle.kts|versionCodeBase = (\d+)|.|versionName = "([^"]+)" -CurrentVersion: 0.0.8 -CurrentVersionCode: 8004 +CurrentVersion: 0.0.10 +CurrentVersionCode: 10004 diff --git a/.github/release.yml b/.github/release.yml new file mode 100644 index 0000000..721e695 --- /dev/null +++ b/.github/release.yml @@ -0,0 +1,26 @@ +changelog: + exclude: + labels: + - skip-changelog + categories: + - title: Breaking changes + labels: + - breaking-change + - title: New features + labels: + - enhancement + - feature + - title: Fixes + labels: + - bug + - bugfix + - title: Documentation + labels: + - documentation + - title: Maintenance + labels: + - dependencies + - maintenance + - title: Other changes + labels: + - "*" diff --git a/.github/workflows/fdroid-recipe.yml b/.github/workflows/fdroid-recipe.yml index e80ce2d..5614cdb 100644 --- a/.github/workflows/fdroid-recipe.yml +++ b/.github/workflows/fdroid-recipe.yml @@ -32,4 +32,13 @@ jobs: uses: actions/checkout@v6 - name: Compare the recipe with fdroiddata - run: ./scripts/check-fdroid-metadata-sync.sh + env: + EVENT_NAME: ${{ github.event_name }} + run: | + if ./scripts/check-fdroid-metadata-sync.sh; then + exit 0 + fi + echo "::warning title=F-Droid recipe is out of sync::Update the fdroiddata merge request after publishing the release." + if [[ "$EVENT_NAME" != "push" ]]; then + exit 1 + fi diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 9d382a1..13b43cd 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -8,7 +8,7 @@ val releaseKeystorePath = providers.environmentVariable("MEGAPROXY_KEYSTORE_PATH val releaseKeystorePassword = providers.environmentVariable("MEGAPROXY_KEYSTORE_PASSWORD").orNull val releaseKeyAlias = providers.environmentVariable("MEGAPROXY_KEY_ALIAS").orNull val releaseKeyPassword = providers.environmentVariable("MEGAPROXY_KEY_PASSWORD").orNull -val versionCodeBase = 9 +val versionCodeBase = 10 val versionVariant = providers.gradleProperty("megaproxyVersionVariant") .orElse("universal") .get() @@ -43,7 +43,7 @@ android { // universal code below the ABI variants lets app stores prefer the // smaller compatible APK when both are available. versionCode = versionCodeBase * 1000 + versionVariantCode - versionName = "0.0.9" + versionName = "0.0.10" buildConfigField("String", "GIT_COMMIT_HASH", "\"$gitCommitHash\"") testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" if (versionVariant != "universal") { diff --git a/scripts/build-fdroid-native.sh b/scripts/build-fdroid-native.sh index acd87c1..50a6eb8 100755 --- a/scripts/build-fdroid-native.sh +++ b/scripts/build-fdroid-native.sh @@ -34,6 +34,6 @@ gomobile bind \ -target="$gomobile_target" \ -androidapi 26 \ -trimpath \ - -ldflags='-s -w -buildid=' \ + -ldflags='-s -w -buildid= -X=runtime.modinfo=' \ -o "$project_dir/app/libs/megaproxy.aar" \ ./mobile diff --git a/scripts/build-release-apks.sh b/scripts/build-release-apks.sh index 75cf0e3..665135c 100755 --- a/scripts/build-release-apks.sh +++ b/scripts/build-release-apks.sh @@ -57,8 +57,9 @@ keytool -list \ -alias "$MEGAPROXY_KEY_ALIAS" >/dev/null version_name="$(sed -nE 's/^[[:space:]]*versionName = "([^"]+)"/\1/p' "$project_dir/app/build.gradle.kts" | head -n 1)" -if [[ -z "$version_name" ]]; then - echo "Unable to determine versionName from app/build.gradle.kts" >&2 +version_code_base="$(sed -nE 's/^[[:space:]]*val versionCodeBase = ([0-9]+)/\1/p' "$project_dir/app/build.gradle.kts" | head -n 1)" +if [[ -z "$version_name" || -z "$version_code_base" ]]; then + echo "Unable to determine versionName or versionCodeBase from app/build.gradle.kts" >&2 exit 1 fi @@ -129,10 +130,10 @@ echo "Running native tests" # gomobile architecture names and their corresponding Android ABI names. targets=( - "arm64:arm64-v8a:9002" - "arm:armeabi-v7a:9001" - "amd64:x86_64:9004" - "386:x86:9003" + "arm64:arm64-v8a:$((version_code_base * 1000 + 2))" + "arm:armeabi-v7a:$((version_code_base * 1000 + 1))" + "amd64:x86_64:$((version_code_base * 1000 + 4))" + "386:x86:$((version_code_base * 1000 + 3))" ) # A clean checkout has no app/libs/megaproxy.aar. Gradle resolves local AAR @@ -149,7 +150,7 @@ echo "Building initial native AAR for $first_android_abi" -target="android/$first_go_arch" \ -androidapi 26 \ -trimpath \ - -ldflags="-s -w -buildid=" \ + -ldflags="-s -w -buildid= -X=runtime.modinfo=" \ -o ../app/libs/megaproxy.aar \ ./mobile ) @@ -177,7 +178,7 @@ for target in "${targets[@]}"; do -target="android/$go_arch" \ -androidapi 26 \ -trimpath \ - -ldflags="-s -w -buildid=" \ + -ldflags="-s -w -buildid= -X=runtime.modinfo=" \ -o ../app/libs/megaproxy.aar \ ./mobile ) @@ -213,7 +214,7 @@ echo "Building optimized native AAR for the universal APK" -target=android \ -androidapi 26 \ -trimpath \ - -ldflags="-s -w -buildid=" \ + -ldflags="-s -w -buildid= -X=runtime.modinfo=" \ -o ../app/libs/megaproxy.aar \ ./mobile ) @@ -232,7 +233,7 @@ if [[ ! -f "$built_apk" ]]; then fi cp "$built_apk" "$universal_apk" verify_release_apk "$universal_apk" -verify_release_version_code "$universal_apk" 9000 +verify_release_version_code "$universal_apk" "$((version_code_base * 1000))" ( cd "$MEGAPROXY_RELEASE_DIR" diff --git a/scripts/build-release-bundle.sh b/scripts/build-release-bundle.sh index 8a66829..570f67e 100755 --- a/scripts/build-release-bundle.sh +++ b/scripts/build-release-bundle.sh @@ -99,7 +99,7 @@ echo "Building universal native AAR for the App Bundle" -target=android \ -androidapi 26 \ -trimpath \ - -ldflags="-linkmode=external -buildid= -extldflags=-Wl,--build-id=sha1" \ + -ldflags="-linkmode=external -buildid= -X=runtime.modinfo= -extldflags=-Wl,--build-id=sha1" \ -o ../app/libs/megaproxy.aar \ ./mobile )