Skip to content

fix(ci): use version regex for SUPPLY_TRACK instead of semver is_stable#182

Merged
ErikBjare merged 1 commit into
ActivityWatch:masterfrom
TimeToBuildBob:fix/supply-track-stable-releases
Jul 12, 2026
Merged

fix(ci): use version regex for SUPPLY_TRACK instead of semver is_stable#182
ErikBjare merged 1 commit into
ActivityWatch:masterfrom
TimeToBuildBob:fix/supply-track-stable-releases

Conversation

@TimeToBuildBob

Copy link
Copy Markdown
Contributor

Problem

The release-fastlane job uses nowsprinting/check-version-format-action@v4 to determine if a tag is stable, then sets SUPPLY_TRACK accordingly:

if [[ "${{ steps.version.outputs.is_stable }}" == "true" ]]; then
  SUPPLY_TRACK="production"
else
  SUPPLY_TRACK="internal"
fi

The issue: check-version-format-action follows the semver convention where 0.x.x versions are not considered stable (they're "development" versions). Since all aw-android releases are 0.x.x, is_stable is always false, and every release goes to the Play Store internal track instead of production.

This caused the v0.14.0 release run to fail with SUPPLY_TRACK=internal, sending the AAB to the wrong track.

Fix

Replace the is_stable check with a direct regex on the tag version string:

  • X.Y.Z (no suffix) → production
  • X.Y.ZbN, X.Y.ZrcN, X.Y.ZdevYYYYMMDD, etc. → internal

This matches how the Release workflow documents it:

#   Stable:      0.14.0         → full Play Store production release
#   Beta:        0.14.0b1       → GitHub pre-release, Play Store internal track

Context

Found while investigating the failed v0.14.0 release in issue #176. The other blocker (Target SDK 35 too low) is fixed by PR #179. This PR fixes the track routing so that once #179 merges and the release is re-triggered, the AAB lands in the production track.

nowsprinting/check-version-format-action@v4 treats 0.x.x versions as
not stable (semver convention), but aw-android uses 0.x.x for production
releases. This caused SUPPLY_TRACK=internal for all releases, so Play
Store uploads went to the internal track instead of production.

Replace the is_stable check with a direct regex: X.Y.Z → production,
any pre-release suffix (b, rc, dev, alpha, beta) → internal.
@greptile-apps

greptile-apps Bot commented Jul 12, 2026

Copy link
Copy Markdown

Greptile Summary

This PR updates release track selection for Android publishing.

  • Uses the tag name instead of the semver stability output.
  • Routes bare X.Y.Z tags to the production track.
  • Routes suffixed prerelease tags to the internal track.

Confidence Score: 5/5

This looks safe to merge.

  • No blocking issues found in the changed code.
  • The release workflow creates lowercase v{version} tags that match the new parsing path.
  • The changed job still runs only for tag-based release refs.

Important Files Changed

Filename Overview
.github/workflows/build.yml Updates SUPPLY_TRACK selection to classify release tags with a direct version regex.

Reviews (1): Last reviewed commit: "fix(ci): use version regex for SUPPLY_TR..." | Re-trigger Greptile

@TimeToBuildBob

Copy link
Copy Markdown
Contributor Author

CI-green and mergeable (Greptile 5/5) — waiting only on a maintainer click.

This PR is ready to merge, but the bot has pull-only access to this repo and can't self-merge — surfacing it here so it isn't lost. The monitoring loop will stop re-flagging it now that this note is posted.

@ErikBjare ErikBjare merged commit b6ccf63 into ActivityWatch:master Jul 12, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants