Skip to content

chore(release): 1.8.2 — build 35 #12

chore(release): 1.8.2 — build 35

chore(release): 1.8.2 — build 35 #12

Workflow file for this run

name: Version Check
# Runs when a release tag is pushed. Can't block the tag (it already exists),
# but turns the run red if the version in the tag, ios/project.yml and the
# CHANGELOG don't agree — catching a forgotten bump before you cut the release.
on:
push:
tags: ["v[0-9]+.[0-9]+.[0-9]+"]
permissions:
contents: read
jobs:
version-check:
name: Version Check
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v7
- name: Tag matches project.yml and CHANGELOG
run: |
V="${GITHUB_REF_NAME#v}"
echo "Releasing version: $V"
# App and widget are versioned separately in project.yml — require BOTH
# to match the tag, or a forgotten widget bump ships a skewed extension
# (a bare grep -q passes as soon as either target matches, #84).
matches="$(grep -c "CFBundleShortVersionString: \"$V\"" ios/project.yml)" || true
[ "$matches" -eq 2 ] \
|| { echo "::error::ios/project.yml must carry CFBundleShortVersionString \"$V\" in BOTH targets (app + widget); found $matches"; exit 1; }
# The tag cannot encode the build number, but app and widget must agree on it.
builds="$(grep "CFBundleVersion:" ios/project.yml | sort -u | wc -l)"
[ "$builds" -eq 1 ] \
|| { echo "::error::ios/project.yml CFBundleVersion differs between app and widget targets"; exit 1; }
grep -q "^## \[$V\]" CHANGELOG.md \
|| { echo "::error::CHANGELOG.md has no '## [$V]' section for tag $V"; exit 1; }
echo "OK — tag, ios/project.yml (both targets) and CHANGELOG.md all agree on $V"