| Summary: | Daily releases in the stable KDE F-Droid Repo | ||
|---|---|---|---|
| Product: | [Applications] KDE Itinerary | Reporter: | Gerion <gerion.entrup> |
| Component: | general | Assignee: | Volker Krause <vkrause> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Other | ||
| OS: | Android 9.x | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Gerion
2021-10-08 18:19:27 UTC
Right, this is a limitation of binary-factory.kde.org does Android builds for the F-Droid repos at the moment, and affects all our Android apps. The builds happen unconditionally every 24h with whatever changes are available by then (which can include updates to underlying components as well, not just the application itself). Having this in the F-Droid mainline repository would solve this (as updates there are a manual process), but getting in there is non-trivial unfortunately. Is it possible to enable a conditional build (as a workaround)? I have digged around a little bit in the binary-factory-tooling git and saw the pipeline which I assume is executed (craft/pipeline-templates/android.pipeline). According to the jenkins doc a stage can have an additional "when" directive that would enable a build only under certain conditions (https://www.jenkins.io/doc/book/pipeline/syntax/#when). However, there is no "steps" in the KDE receipt, so I'm not sure, if this the correct documentation. A possible way to get the last deployed version is to query the F-Droid-Repo itself (for example `curl -s https://cdn.kde.org/android/stable-releases/fdroid/repo/index.xml | xmllint --format --xpath '/fdroid/application[@id="org.kde.itinerary"]/package/version/text()' - | head -n 1`). Maybe one stage in the pipeline can execute this, query the current version, set an ENVIRONMENT_VARIABLE that is evaluated by the later stages in a when directive. The versioncode is really high. Is it updated every build? If yes, I understand, why F-Droid thinks that the package is new every time. If you want a daily build, it may also be enough to produce the same version code. The F-Droid part of the Jenkins pipeline is here: https://invent.kde.org/sysadmin/binary-factory-tooling/-/blob/master/craft/pipeline-templates/android.pipeline The version code update is here: https://invent.kde.org/pim/itinerary/-/blob/master/src/app/android/build.gradle#L27 It's quite possible there are ways to do this better :) Solved since some time with the switch to the Gitlab CI pipeline. |