Merge pull request #599 from Sjoerd-Bo3/fix/live-activity-reliability… #30
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
| # ----------------------------------------------------------------------------- | |
| # Workflow: `auto_version_dev.yml` | |
| # | |
| # Description: | |
| # This GitHub Actions workflow automatically manages and increments the | |
| # `APP_DEV_VERSION` defined in `Config.xcconfig` on every push to `dev` branch. | |
| # This version is used for internal tracking and diagnostics (e.g. in | |
| # Crashlytics) and follows a 4-digit semantic versioning format: | |
| # `MAJOR.MINOR.PATCH.FEATURE`. | |
| # | |
| # Versioning Logic: | |
| # - Reads the base version from `APP_VERSION = x.y.z` | |
| # - Reads the last internal dev version from `APP_DEV_VERSION` | |
| # | |
| # Behavior: | |
| # - If `APP_DEV_VERSION` matches `APP_VERSION` (e.g. both are `0.5.0`), | |
| # it assumes the first dev push after a release and sets `APP_DEV_VERSION` | |
| # to `APP_VERSION.1` (e.g. `0.5.0.1`) | |
| # - If `APP_DEV_VERSION` is already in 4-digit form (e.g. `0.5.0.3`), | |
| # it increments the fourth digit (e.g. → `0.5.0.4`) | |
| # | |
| # Example Progression: | |
| # - Release sets `APP_VERSION = 0.5.0`, `APP_DEV_VERSION = 0.5.0` | |
| # - First push to `dev`: → `APP_DEV_VERSION = 0.5.0.1` | |
| # - Second push to `dev`: → `APP_DEV_VERSION = 0.5.0.2` | |
| # - ... | |
| # | |
| # Commit Handling: | |
| # The updated value is committed and pushed back to the `dev` branch. | |
| # - The bump commit includes the `[skip ci]` tag in its message | |
| # - This prevents the workflow from re-triggering itself in a loop | |
| # | |
| # | |
| # Prerequisites: | |
| # - `APP_VERSION` must be present in `Config.xcconfig` in the form `x.y.z` | |
| # - `APP_DEV_VERSION` must either match `APP_VERSION` or be `x.y.z.w` | |
| # - GitHub Actions must have write permission to push to `dev` | |
| # - This workflow only runs when the repository owner is `nightscout` | |
| # ----------------------------------------------------------------------------- | |
| name: zzz [DO NOT RUN] Bump APP_DEV_VERSION on dev push | |
| on: | |
| push: | |
| branches: | |
| - dev | |
| jobs: | |
| bump-dev-version: | |
| if: github.repository_owner == 'nightscout' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repo | |
| uses: actions/checkout@v4 | |
| with: | |
| token: ${{ secrets.TRIO_TOKEN_AUTOBUMP }} | |
| - name: Set up Git | |
| run: | | |
| git config --global user.name "github-actions[bot]" | |
| git config --global user.email "github-actions[bot]@users.noreply.github.com" | |
| - name: Bump APP_DEV_VERSION | |
| run: | | |
| FILE=Config.xcconfig | |
| # Read current APP_VERSION | |
| BASE_VERSION=$(grep '^APP_VERSION' "$FILE" | cut -d '=' -f2 | xargs) | |
| # Read existing APP_DEV_VERSION, if any | |
| DEV_LINE=$(grep '^APP_DEV_VERSION' "$FILE" || echo "") | |
| if [ -z "$DEV_LINE" ]; then | |
| CURRENT_DEV_VERSION="$BASE_VERSION" | |
| else | |
| CURRENT_DEV_VERSION=$(echo "$DEV_LINE" | cut -d '=' -f2 | xargs) | |
| fi | |
| echo "APP_VERSION = $BASE_VERSION" | |
| echo "APP_DEV_VERSION = $CURRENT_DEV_VERSION" | |
| # Decide next dev version | |
| if [ "$CURRENT_DEV_VERSION" = "$BASE_VERSION" ]; then | |
| # First post-release commit to dev → bump to .1 | |
| NEW_DEV_VERSION="${BASE_VERSION}.1" | |
| if [ -z "$DEV_LINE" ]; then | |
| echo "APP_DEV_VERSION = $NEW_DEV_VERSION" >> "$FILE" | |
| else | |
| sed -i -E "s|^APP_DEV_VERSION *= *.*|APP_DEV_VERSION = $NEW_DEV_VERSION|" "$FILE" | |
| fi | |
| else | |
| # Already in .X form → bump last digit | |
| IFS='.' read -r MAJOR MINOR PATCH FEATURE <<< "$CURRENT_DEV_VERSION" | |
| FEATURE=$((FEATURE + 1)) | |
| NEW_DEV_VERSION="$MAJOR.$MINOR.$PATCH.$FEATURE" | |
| sed -i -E "s|^APP_DEV_VERSION *= *.*|APP_DEV_VERSION = $NEW_DEV_VERSION|" "$FILE" | |
| fi | |
| echo "NEW APP_DEV_VERSION = $NEW_DEV_VERSION" | |
| echo "NEW_DEV_VERSION=$NEW_DEV_VERSION" >> $GITHUB_ENV | |
| - name: Commit and push updated dev version | |
| run: | | |
| git add Config.xcconfig | |
| git commit -m "CI: Bump APP_DEV_VERSION to $NEW_DEV_VERSION [skip ci]" | |
| git push |