Skip to content

Reproducible Build fails for v2.5.9 #2243

Description

@IzzySoft

Could it be that latest-version.yaml is out of sync?

     XML ELEM START [lineno=2, name='manifest', #attributes=7]
-      ATTR: http://schemas.android.com/apk/res/android:versionCode=420509001
+      ATTR: http://schemas.android.com/apk/res/android:versionCode=420509000
       ATTR: http://schemas.android.com/apk/res/android:versionName='2.5.9'

off-by-one. Same then in DEX:

 |: const-string v0, "User-Agent"
-|: const-string v8, "Owntracks-Android/oss/420509001"
+|: const-string v8, "Owntracks-Android/oss/420509000"
 |: invoke-virtual {v2, v0, v8}, Lokhttp3/Request$Builder;.header:(Ljava/lang/String;Ljava/lang/String;)V

plus a couple more differences. Now, even if we adjust that in latest-version.yaml by increasing it by one, that seems to be ignored: I see the very same sha256sums for our builds as before. In your GHA I see you now use fastlane to evaluate versionCode – but I see it nowhere taken from nor written to the version file.

So is the VERSION_CODE environment variable still honored? Where can we take it from? The values in latest-version.yaml seem way of:

versionName: 2.5.7
versionCode: 420507014

I see there's logic in your build.gradle to calculate versionCode – but I don't see how that could end up in 420509001, unless "manually" overridden by the environment variable – which in our build, didn't seem to have any effect (aaaargh! because the one we ended up with from latest-version.yaml was lower). Gnaa… Sorry, but this way we cannot reach RB – we need to have the same settings. If you override things manually, we'd need to do the same, which cannot be automated.

So can we agree upon release builds NOT having any "manual overrides"? Especially with "flaky builds" like here (where 10 builds in a row produce 2 or more different APKs), such things are hard to track down. This one took me more than an hour now – and it was not the only failed build today 😢

OK, finally succeeded by explicitly exporting the VERSION_CODE you used. That means, the next release again needs adjustments (at least if you again manually override)…

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-more-infoA little more info requested from the submitter

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions