chore(release): 1.8.2 — build 35 #12
Workflow file for this run
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
| 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" |