Repository navigation
Move store releases to store-release v0.3.0 - #84
Merged
Merged
Conversation
Re-render ios-release.yml, android-release.yml and store-checks.yml with store-release's own renderer (run.py callers render) at v0.3.0, commit 3e580dc136d0ede17e8f4d12e9385fb512d02faf. The callers' jobs, conditions, inputs, permissions and secrets are unchanged; only the ten pins, the docs link, the Android verification comment and the marketing_version hint differ, which matches store-release's examples/verceltics callers. store/store-release.toml is unchanged: v0.3.0 needs no config edits for the verceltics flow. store/README.md now points at the v0.3.0 docs; the shared signing identity's renewal notes moved to provenance.md in v0.3.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves Verceltics' App Store and Google Play release pipeline from store-release v0.2.0 to v0.3.0 (
3e580dc136d0ede17e8f4d12e9385fb512d02faf;gh api repos/apoorvdarshan/store-release/git/ref/tags/v0.3.0returns that commit). The v0.3.0 changelog has Impactrelease-path, so this PR is validated with dispatches before merging.Changes in this PR
ios-release.yml,android-release.yml,store-checks.yml: re-rendered with store-release's own renderer:run.py callers render --platform ios|android|checks --sha 3e580dc136d0ede17e8f4d12e9385fb512d02faf --version 0.3.0 --app-repository apoorvdarshan/verceltics. With the SHA filled in, they are byte-identical to store-release v0.3.0'sexamples/verceltics/callers/.@0b298d3e… # v0.2.0to@3e580dc1… # v0.3.0.tree/v0.3.0/docs), themarketing_versionhint (e.g. 1.2instead of Fud AI's7.2), the Android caller's verification comment (it now points atdocs/verification.md), and the Store checks comment.if:conditions, inputs, permissions, concurrency and the explicit secret mapping are unchanged:tests,prepare,build,wait-for-build,app-store-connect,github-release,store-plan(iOS);gates,quality,release,store-plan(Android);checks,store-release(Store checks). No job is namedweb,androidorcatalog, so the required checks still come only fromci.ymland CodeQL.store/store-release.toml: unchanged. v0.3.0 needs no config edit for this app. The file is still byte-identical to store-release v0.3.0'sexamples/verceltics/store-release.toml; its header comment still links the v0.2.0 config docs, the same as the example (schema 1 has not changed).store/README.md: says v0.3.0 and links the v0.3.0 docs. v0.3.0 moved the shared CI signing identity's renewal steps out ofsecrets.md, so that link now goes toprovenance.md#facts-that-only-concern-the-six-apps.No switch, variable, secret or ruleset changes. To roll back, revert this PR: the v0.2.0 commit stays valid because tags never move.
What v0.2.0 → v0.3.0 changes for Verceltics
How every job gets this repo's files. job-setup now runs a separate step for the lazy blob fetch of each job's sparse checkout. That step passes the job's read-only
GITHUB_TOKENto that one git command as environment config (GIT_CONFIG_*, never.git/configor argv), viafetch-app-files.sh. Verceltics is public, so every job fetches the same files as before (paths --job …is unchanged for this config). The change only matters for private repositories. Every job of both pipelines goes through it.The iOS store plan when the App Store version does not exist yet (the case this app always validates:
marketing_versionis the next, unapproved version, andIOS_CREATE_VERSIONis on). v0.2.0's ported-flow plan said "IOS_CREATE_VERSION would create it" and stopped with CLEAN, without running any later check. v0.3.0 runs every check a tag run makes that needs no App Store version:Products.storekitandBillingModels.kt);ios_metadata.py check --listingand the tag's What's New fromRELEASE_NOTES.md);IOS_SUBMIT_REVIEWon.It then lists, in a line and a
::notice, what only the created version can show: its state, listing and What's New localizations, its place in the review draft, and the catalog products that go to review with it. For an existing version it now also runs the catalog and local-file checks before the preflight.The flow names. The default flow is now called
standard(fud-aiis still accepted). The reusable workflows now testSTORE_RELEASE_*_FLOW != 'standard'instead of!= 'fud-ai'. Forflow = "verceltics"they select exactly the same ported steps as before.Config validation.
android.whats_new.version_fileis now refused (the verceltics flow used to accept it and ignore it); this config does not set it.ios.build.runneris a new optional key; it is not set, so the build job still runs onxcode-27.Store checks. The new skip-when-the-table-is-missing logic applies to the standard flow only. Verceltics' Store checks still run its ported
ios pr-checksandandroid pr-checkswith every switch on.Changes that do not affect this app:
run.py initand the templates;store_release/flows/;canary --expect;Local checks (store-release v0.3.0 checkout, Python 3.13, hash-locked requirements)
caller check --pr: callers match store-release v0.3.0 (ios-release.yml, android-release.yml, store-checks.yml); the v0.3.0 tag points at3e580dc136d0ede17e8f4d12e9385fb512d02faf.pins check: 10 store-release pins are3e580dc… # v0.3.0; the v0.3.0 tag points at that commit.config check --files(17 files checked);yanked check;catalog check(iOS and Android: 7 products each);release-notes --check-headings;ios pr-checks;android pr-checks.Validation
These are
workflow_dispatchruns on this branch: build, sign and verify plus the read-only store plan. Nothing was uploaded and nothing was written to App Store Connect, Google Play or GitHub Releases. The head is71cd7a8: this PR's commita96b47cwithmain(c9dbeb3, a wrangler bump inweb/) merged in. Both heads were validated, with the same results.marketing_version=2.1.171cd7a871cd7a8marketing_version=2.1.1a96b47ca96b47ciOS
3e580dc); its selftest passed (287 tests).caller check --runtime: 6 pins match and the release concurrency queues; the v0.3.0 tag points at the pin. The version is not yanked.scripts/ci/release_gate_tests.shpassed (10 tests).Products.storekit.com.apoorvdarshan.verceltics 2.1.1 (43), with export complianceNO.altool --validate-appreported "No errors validating archive" ("validated 2.1.1 (43) with App Store Connect — nothing uploaded").wait-for-build,app-store-connectandgithub-releasewere skipped.Android
caller check --runtimepassed and the version is not yanked. It resolvedmode=validate,build=true,github_release=false,play_upload=false.BillingModels.kt.com.apoorvdarshan.verceltics 1.0 (44), signed by the pinned upload keyfe735c7c…61f1ef.The read-only token fetch
Every job ran job-setup's new "Check out this job's files of the app" step (
fetch-app-files.sh, with the job's token masked): prepare, build and store-plan on iOS; gates, release and store-plan on Android. The later steps read the files it fetched: the prepare checks, the catalog checks, the archive, the Gradle build and both plans.Store plans, with today's repository variables
iOS (the same on both heads):
Android (the same on both heads):
Both plans match the repository variables exactly.
IOS_UPLOAD_SCREENSHOTSisfalse,IOS_UPLOAD_CREATIVE_ASSETSis unset and everyANDROID_*switch isfalse, so screenshots, creative assets and Play appear nowhere in them.The iOS problem shows the v0.3.0 fix working; it is not a pipeline defect.
RELEASE_NOTES.mdhas only## ios-v2.1. WithIOS_UPLOAD_WHATS_NEWon, a realios-v2.1.1tag run would stop in prepare with exactly this message, before it creates the version or builds anything. For the same version and switches, v0.2.0's plan saidstore-plan: CLEANwithout running the check (39507930078). The problem goes away once the 2.1.1 release adds its## ios-v2.1.1notes, which is step 2 of the release procedure instore/README.md. This PR does not add release notes.🤖 Generated with Claude Code