2.17.1 — re-cut 2.17.0 after the release pipeline dropped it (#109)
Some checks failed
Some checks failed
Reviewed-on: https://codeberg.org/jlmakiola/calendula/pulls/109
This commit is contained in:
@@ -209,33 +209,6 @@ jobs:
|
|||||||
if: env.IS_RELEASE == 'true'
|
if: env.IS_RELEASE == 'true'
|
||||||
run: ./gradlew assembleRelease
|
run: ./gradlew assembleRelease
|
||||||
|
|
||||||
# Play takes an App Bundle, not the APK, so it is a second artifact from
|
|
||||||
# the same source and the same signing config — not a repackage of the
|
|
||||||
# APK. The release key signs it, but Play only ever treats that key as the
|
|
||||||
# *upload* key: Play App Signing re-signs with Google's own key before
|
|
||||||
# delivery. A Play install and an F-Droid install therefore carry
|
|
||||||
# different signatures and cannot update each other. That divergence is a
|
|
||||||
# deliberate, documented choice (docs/RELEASING.md), not an accident.
|
|
||||||
#
|
|
||||||
# Nothing here touches the F-Droid path: the AAB is never copied into the
|
|
||||||
# repo, never attached to a release, and its build cannot change the APK
|
|
||||||
# that was already produced above.
|
|
||||||
#
|
|
||||||
# AGP embeds the R8 mapping in the bundle's BUNDLE-METADATA, so Play gets
|
|
||||||
# deobfuscated stacktraces without a separate mapping upload.
|
|
||||||
- name: Build release AAB
|
|
||||||
if: env.IS_RELEASE == 'true'
|
|
||||||
run: ./gradlew bundleRelease
|
|
||||||
|
|
||||||
- name: Hand the AAB to the Play job
|
|
||||||
if: env.IS_RELEASE == 'true'
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: release-aab-${{ needs.detect.outputs.version }}
|
|
||||||
path: app/build/outputs/bundle/release/app-release.aab
|
|
||||||
if-no-files-found: error
|
|
||||||
retention-days: 14
|
|
||||||
|
|
||||||
- name: Setup F-Droid Server Tools
|
- name: Setup F-Droid Server Tools
|
||||||
run: |
|
run: |
|
||||||
SUDO=""
|
SUDO=""
|
||||||
@@ -511,6 +484,49 @@ jobs:
|
|||||||
done
|
done
|
||||||
echo "Published $TAG to Codeberg."
|
echo "Published $TAG to Codeberg."
|
||||||
|
|
||||||
|
# Play takes an App Bundle, not the APK, so it is a second artifact from
|
||||||
|
# the same source and the same signing config — not a repackage of the
|
||||||
|
# APK. The release key signs it, but Play only ever treats that key as the
|
||||||
|
# *upload* key: Play App Signing re-signs with Google's own key before
|
||||||
|
# delivery. A Play install and an F-Droid install therefore carry
|
||||||
|
# different signatures and cannot update each other. That divergence is a
|
||||||
|
# deliberate, documented choice (docs/RELEASING.md), not an accident.
|
||||||
|
#
|
||||||
|
# Built LAST and `continue-on-error`, both deliberately: everything above
|
||||||
|
# has already shipped by this point, and nothing Play-related may put that
|
||||||
|
# at risk. Sitting mid-job without continue-on-error, this block took the
|
||||||
|
# whole 2.17.0 release down with it — no F-Droid publish, no tag, no
|
||||||
|
# Codeberg mirror — over an artifact upload. A failure here now costs the
|
||||||
|
# Play upload and nothing else.
|
||||||
|
#
|
||||||
|
# Nothing here touches the F-Droid path: the AAB is never copied into the
|
||||||
|
# repo, never attached to a release, and its build cannot change the APK
|
||||||
|
# published above.
|
||||||
|
#
|
||||||
|
# AGP embeds the R8 mapping in the bundle's BUNDLE-METADATA, so Play gets
|
||||||
|
# deobfuscated stacktraces without a separate mapping upload.
|
||||||
|
- name: Build release AAB
|
||||||
|
if: env.IS_RELEASE == 'true'
|
||||||
|
continue-on-error: true
|
||||||
|
run: ./gradlew bundleRelease
|
||||||
|
|
||||||
|
# NOT actions/upload-artifact@v4: it runs @actions/artifact v2, which
|
||||||
|
# refuses to start whenever GITHUB_SERVER_URL is not github.com — it reads
|
||||||
|
# any other forge as an unsupported GHES instance and fails before it ever
|
||||||
|
# talks to the server (go-gitea/gitea#36024). Gitea 1.25 serves the v4
|
||||||
|
# artifact API fine; only the client-side check is wrong. This fork is that
|
||||||
|
# client with the check removed. Pinned to a commit, not the v4 branch: a
|
||||||
|
# third-party action in the signing pipeline must not change under us.
|
||||||
|
- name: Hand the AAB to the Play job
|
||||||
|
if: env.IS_RELEASE == 'true'
|
||||||
|
continue-on-error: true
|
||||||
|
uses: https://github.com/ChristopherHX/gitea-upload-artifact@81f940d004763f986ba3582c007fd842dd5cb0d7 # v4
|
||||||
|
with:
|
||||||
|
name: release-aab-${{ needs.detect.outputs.version }}
|
||||||
|
path: app/build/outputs/bundle/release/app-release.aab
|
||||||
|
if-no-files-found: error
|
||||||
|
retention-days: 14
|
||||||
|
|
||||||
# Google Play channel.
|
# Google Play channel.
|
||||||
#
|
#
|
||||||
# A separate job, on purpose, running only AFTER the F-Droid publish and both
|
# A separate job, on purpose, running only AFTER the F-Droid publish and both
|
||||||
@@ -570,9 +586,11 @@ jobs:
|
|||||||
|| { echo "PLAY_SERVICE_ACCOUNT_JSON is not a valid service-account JSON." >&2; exit 1; }
|
|| { echo "PLAY_SERVICE_ACCOUNT_JSON is not a valid service-account JSON." >&2; exit 1; }
|
||||||
echo "configured=true" >> "$GITHUB_OUTPUT"
|
echo "configured=true" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
# Same GHES-detection problem as the upload side, same fix — see the
|
||||||
|
# handoff step in the release job.
|
||||||
- name: Download the AAB
|
- name: Download the AAB
|
||||||
if: steps.key.outputs.configured == 'true'
|
if: steps.key.outputs.configured == 'true'
|
||||||
uses: actions/download-artifact@v4
|
uses: https://github.com/ChristopherHX/gitea-download-artifact@75635f32b4c1c41c4b3d64e8f85210112ed4c9c7 # v4
|
||||||
with:
|
with:
|
||||||
name: release-aab-${{ needs.detect.outputs.version }}
|
name: release-aab-${{ needs.detect.outputs.version }}
|
||||||
path: dist
|
path: dist
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
## [2.17.0] — 2026-07-30
|
## [2.17.1] — 2026-07-30
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- Settings → Calendars now says what is different about a calendar instead of
|
- Settings → Calendars now says what is different about a calendar instead of
|
||||||
|
|||||||
@@ -28,8 +28,8 @@ android {
|
|||||||
// which builds this version and then creates the matching vX.Y.Z tag +
|
// which builds this version and then creates the matching vX.Y.Z tag +
|
||||||
// release itself (versionCode is pinned to MAJOR*10000 + MINOR*100 +
|
// release itself (versionCode is pinned to MAJOR*10000 + MINOR*100 +
|
||||||
// PATCH from versionName, e.g. 2.7.2 -> 20702). See docs/RELEASING.md.
|
// PATCH from versionName, e.g. 2.7.2 -> 20702). See docs/RELEASING.md.
|
||||||
versionCode = 21700
|
versionCode = 21701
|
||||||
versionName = "2.17.0"
|
versionName = "2.17.1"
|
||||||
|
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -113,7 +113,13 @@ the only one that gets a different artifact and a different signature.
|
|||||||
**Artifact.** Play takes an **App Bundle** (`bundleRelease`), not the APK. It is
|
**Artifact.** Play takes an **App Bundle** (`bundleRelease`), not the APK. It is
|
||||||
a second output of the same source and the same signing config — never a
|
a second output of the same source and the same signing config — never a
|
||||||
repackage of the published APK, which stays untouched so the F-Droid
|
repackage of the published APK, which stays untouched so the F-Droid
|
||||||
reproducibility guarantee is unaffected. `dependenciesInfo` stays disabled for
|
reproducibility guarantee is unaffected. The bundle is built at the very **end**
|
||||||
|
of the `release` job, after everything else has shipped, and both it and the
|
||||||
|
handoff to the `play` job are `continue-on-error` — nothing Play-related may
|
||||||
|
take down a release that is already published. The handoff uses a patched
|
||||||
|
`upload-artifact`/`download-artifact` fork pinned to a commit: the official v4
|
||||||
|
actions read any non-github.com forge as an unsupported GHES instance and refuse
|
||||||
|
to run on Gitea (go-gitea/gitea#36024). `dependenciesInfo` stays disabled for
|
||||||
the bundle too; Play's "app dependencies" report is optional and re-enabling it
|
the bundle too; Play's "app dependencies" report is optional and re-enabling it
|
||||||
would break reproducibility.
|
would break reproducibility.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user