Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
182 commits
Select commit Hold shift + click to select a range
cb1f3c3
Add Apple Watch companion app on clean upstream dev base
aug0211 May 3, 2026
41982e7
Complications, visual cleanup, speed/data improvements
aug0211 May 8, 2026
5ba2bc7
Fix Nightscout JWT extraction, cache JWTs, send return-notification
aug0211 May 8, 2026
549499a
Add lines to graph and mini graph for this time prior days
afshopify Dec 10, 2025
fbe81eb
Add tappable zoom buttons to main view
afshopify Dec 10, 2025
f2e4e4f
Fix SwiftFormat lint errors across Watch and Widget targets
aug0211 May 8, 2026
43d8f7e
White space cleanup
aug0211 May 8, 2026
502b31f
FPU remote from watch - missed commit
aug0211 May 8, 2026
7380183
Refresh device status on bolus screen load
aug0211 May 8, 2026
182fb81
Increase max carb, fat, protein remote entries
aug0211 May 8, 2026
0cd6e9b
Resolve a prior missed commit for missing added carbs
aug0211 May 8, 2026
4b91b56
Add Trio smoothed BG display option
aug0211 May 9, 2026
c0641b3
Fix Updated/TDD/Smoothed BG info table on sparse devicestatus
aug0211 May 9, 2026
85f886d
Restore graph value labels at 3h zoom after smoothing-line addition
aug0211 May 9, 2026
18f5108
Fix Updated/TDD/Smoothed BG rows blank on app cold launch
aug0211 May 9, 2026
9a7575b
Fix SwiftFormat lint errors
aug0211 May 9, 2026
be7d6ee
Fix stale/missing "TDD", "Smoothed BG", and "Updated" in info table
aug0211 May 10, 2026
e6327c7
Move release flow to PR-based and add CODEOWNERS for branch protectio…
bjorkert May 30, 2026
105d4fb
CI: Bump dev version to 6.1.1 [skip ci]
github-actions[bot] May 30, 2026
ce983de
Diagnose and skip rogue Nightscout profile records (#635)
bjorkert May 30, 2026
a013829
CI: Bump dev version to 6.1.2 [skip ci]
github-actions[bot] May 30, 2026
8e700ac
Prevent stale foreground-restart latch from tearing down freshly rene…
bjorkert May 31, 2026
7215653
CI: Bump dev version to 6.1.3 [skip ci]
github-actions[bot] May 31, 2026
439b389
Recover Live Activity after APNs 410 token expiry (#657)
bjorkert May 31, 2026
dcb54f6
CI: Bump dev version to 6.1.4 [skip ci]
github-actions[bot] May 31, 2026
91f95cf
Auto-restart Live Activity when iOS sends .ended (#659)
bjorkert May 31, 2026
5e1e244
CI: Bump dev version to 6.1.5 [skip ci]
github-actions[bot] May 31, 2026
012a154
Deduplicate Dexcom Share readings to fix delta always showing zero (#…
bjorkert May 31, 2026
4fab79e
CI: Bump dev version to 6.1.6 [skip ci]
github-actions[bot] May 31, 2026
221e11c
Remove storyboard, migrate to SwiftUI layout (#608)
bjorkert Jun 12, 2026
3f9b6cd
Suppress silent passive notifications in willPresent handler (#655)
bjorkert Jun 14, 2026
89d4fa4
Bump fastlane to 2.235.0 and jwt to 3.2.0 (CVE-2026-45363) (#663)
bjorkert Jun 14, 2026
2f8608d
Fix BG history truncation caused by duplicate readings from multiple …
bjorkert Jun 14, 2026
a9d7330
Match Trio's override/temp-target colors for non-Loop backends (#668)
bjorkert Jun 14, 2026
566c61a
Quick-Pick Boluses and Meals for remote commands (#603)
bjorkert Jun 14, 2026
350e3af
Add Nightscout WebSocket support for real-time data updates (#606)
bjorkert Jun 14, 2026
985e8b2
Default debug logging on and prompt for description when sharing logs…
bjorkert Jun 14, 2026
0841b1b
Add optional yesterday BG comparison line to main graph (#665)
bjorkert Jun 14, 2026
25650a7
Scale info data table text with Dynamic Type (#667)
bjorkert Jun 15, 2026
33d6eb9
CI: Bump dev version to 6.1.7 [skip ci]
github-actions[bot] Jun 15, 2026
d03e438
ITMS-91061 - privacy manifest for Charts framework (#666)
luborjurena Jun 16, 2026
4f67724
CI: Bump dev version to 6.1.8 [skip ci]
github-actions[bot] Jun 16, 2026
2c0ceda
Remove the Nightscout-based remote command path (#618)
bjorkert Jun 16, 2026
17991b7
CI: Bump dev version to 6.1.9 [skip ci]
github-actions[bot] Jun 16, 2026
3aeeeb0
Cap prediction cone to shortest predBG array length (#653)
quarktwain Jun 16, 2026
d333202
CI: Bump dev version to 6.1.10 [skip ci]
github-actions[bot] Jun 16, 2026
86fd005
CI: Re-run lint when a PR's base branch changes (#676)
bjorkert Jun 17, 2026
d6ce283
CI: Bump dev version to 6.1.11 [skip ci]
github-actions[bot] Jun 17, 2026
5fc2c4e
Remove empty Nightscout group from project file (#675)
bjorkert Jun 17, 2026
3e63929
CI: Bump dev version to 6.1.12 [skip ci]
github-actions[bot] Jun 17, 2026
310de67
Move release flow to PR-based and add CODEOWNERS for branch protectio…
bjorkert May 30, 2026
828fcde
CI: Bump dev version to 6.1.1 [skip ci]
github-actions[bot] May 30, 2026
f36b8a9
Diagnose and skip rogue Nightscout profile records (#635)
bjorkert May 30, 2026
f62e712
CI: Bump dev version to 6.1.2 [skip ci]
github-actions[bot] May 30, 2026
ee48e3e
Prevent stale foreground-restart latch from tearing down freshly rene…
bjorkert May 31, 2026
17582b0
CI: Bump dev version to 6.1.3 [skip ci]
github-actions[bot] May 31, 2026
39d3d39
Recover Live Activity after APNs 410 token expiry (#657)
bjorkert May 31, 2026
3eee687
CI: Bump dev version to 6.1.4 [skip ci]
github-actions[bot] May 31, 2026
f792d74
Auto-restart Live Activity when iOS sends .ended (#659)
bjorkert May 31, 2026
478328b
CI: Bump dev version to 6.1.5 [skip ci]
github-actions[bot] May 31, 2026
19905bb
Deduplicate Dexcom Share readings to fix delta always showing zero (#…
bjorkert May 31, 2026
f7f731e
CI: Bump dev version to 6.1.6 [skip ci]
github-actions[bot] May 31, 2026
a1e8e95
Remove storyboard, migrate to SwiftUI layout (#608)
bjorkert Jun 12, 2026
b0ce2d1
Suppress silent passive notifications in willPresent handler (#655)
bjorkert Jun 14, 2026
b363c13
Bump fastlane to 2.235.0 and jwt to 3.2.0 (CVE-2026-45363) (#663)
bjorkert Jun 14, 2026
99cd60e
Fix BG history truncation caused by duplicate readings from multiple …
bjorkert Jun 14, 2026
51fe214
Match Trio's override/temp-target colors for non-Loop backends (#668)
bjorkert Jun 14, 2026
de98f2e
Quick-Pick Boluses and Meals for remote commands (#603)
bjorkert Jun 14, 2026
ed6ec77
Add Nightscout WebSocket support for real-time data updates (#606)
bjorkert Jun 14, 2026
cf69cfa
Default debug logging on and prompt for description when sharing logs…
bjorkert Jun 14, 2026
2d8e8f9
Add optional yesterday BG comparison line to main graph (#665)
bjorkert Jun 14, 2026
919b772
Scale info data table text with Dynamic Type (#667)
bjorkert Jun 15, 2026
8dda66f
CI: Bump dev version to 6.1.7 [skip ci]
github-actions[bot] Jun 15, 2026
33e67cb
ITMS-91061 - privacy manifest for Charts framework (#666)
luborjurena Jun 16, 2026
7ce2bcf
CI: Bump dev version to 6.1.8 [skip ci]
github-actions[bot] Jun 16, 2026
1717823
Remove the Nightscout-based remote command path (#618)
bjorkert Jun 16, 2026
f02eece
CI: Bump dev version to 6.1.9 [skip ci]
github-actions[bot] Jun 16, 2026
fa31b21
Cap prediction cone to shortest predBG array length (#653)
quarktwain Jun 16, 2026
7e71f59
CI: Bump dev version to 6.1.10 [skip ci]
github-actions[bot] Jun 16, 2026
f27be2a
CI: Re-run lint when a PR's base branch changes (#676)
bjorkert Jun 17, 2026
ab43544
CI: Bump dev version to 6.1.11 [skip ci]
github-actions[bot] Jun 17, 2026
0ef8881
Remove empty Nightscout group from project file (#675)
bjorkert Jun 17, 2026
6479c0c
CI: Bump dev version to 6.1.12 [skip ci]
github-actions[bot] Jun 17, 2026
9d2cea6
update version to 6.2.0 [skip ci]
marionbarker Jun 21, 2026
5c5ff91
update version to 6.2.0 [skip ci]
marionbarker Jun 21, 2026
a0b0747
Sanitize Nightscout token to prevent WebSocket crash on launch (#688)
bjorkert Jun 23, 2026
cdf0cf9
CI: Bump dev version to 6.2.1 [skip ci]
github-actions[bot] Jun 23, 2026
5c5833f
Add search to the alarms list (#694)
bjorkert Jul 8, 2026
ccd1d0f
CI: Bump dev version to 6.2.2 [skip ci]
github-actions[bot] Jul 8, 2026
094c9dd
Add search filter to the Add Alarm sheet (#681)
bjorkert Jul 8, 2026
1b35124
CI: Bump dev version to 6.2.3 [skip ci]
github-actions[bot] Jul 8, 2026
4422a1e
Fix stale snooze state in alarm list (#678)
bjorkert Jul 8, 2026
29291b5
CI: Bump dev version to 6.2.4 [skip ci]
github-actions[bot] Jul 8, 2026
2acd81b
Prefer structured ISF/CR from device status over reason string (#677)
bjorkert Jul 9, 2026
bd8fefb
CI: Bump dev version to 6.2.5 [skip ci]
github-actions[bot] Jul 9, 2026
4dc778e
Bump fastlane to 2.237.0 (#701)
bjorkert Jul 10, 2026
e80408a
CI: Bump dev version to 6.2.6 [skip ci]
github-actions[bot] Jul 10, 2026
9bcb49b
Restore LF_DEVELOPMENT_TEAM build setting in project file
bjorkert Jul 11, 2026
3a07157
Merge remote-tracking branch 'origin/dev' into auggie-smoothing
bjorkert Jul 11, 2026
9f0a82f
Use cyan for smoothed BG line to distinguish it from the grey yesterd…
bjorkert Jul 11, 2026
290e020
Only clear the forecast when the data source changes (#707)
bjorkert Jul 17, 2026
d2de165
CI: Bump dev version to 6.2.7 [skip ci]
github-actions[bot] Jul 17, 2026
043349f
Remove migration step 1 and the legacy UserDefaults framework it kept…
bjorkert Jul 18, 2026
c57c14a
CI: Bump dev version to 6.2.8 [skip ci]
github-actions[bot] Jul 18, 2026
68a309f
Add Nightscout database size info row and alarm (#697)
bjorkert Jul 18, 2026
6faecca
CI: Bump dev version to 6.2.9 [skip ci]
github-actions[bot] Jul 18, 2026
b6c81a8
Migrate charts to Swift Charts (#704)
bjorkert Jul 19, 2026
d2118f1
CI: Bump dev version to 6.2.10 [skip ci]
github-actions[bot] Jul 19, 2026
3c7bf26
release.sh: verify latest script before running (#682)
bjorkert Jul 19, 2026
5553ded
CI: Bump dev version to 6.2.11 [skip ci]
github-actions[bot] Jul 19, 2026
7c76156
release.sh: set gh pr repo explicitly (#685)
bjorkert Jul 19, 2026
c3391b5
CI: Bump dev version to 6.2.12 [skip ci]
github-actions[bot] Jul 19, 2026
01e0786
release.sh: drop [skip ci] from version bump; allow manual tag_on_mai…
bjorkert Jul 19, 2026
d347bfc
Add directional/charging skip toggles to Low, High and Battery alarms…
bjorkert Jul 19, 2026
14196db
CI: Bump dev version to 6.2.13 [skip ci]
github-actions[bot] Jul 19, 2026
36fe25b
Mark scheduled runs with nothing to build as cancelled instead of suc…
bjorkert Jul 19, 2026
685a06b
CI: Bump dev version to 6.2.14 [skip ci]
github-actions[bot] Jul 19, 2026
b752eac
Use NightscoutUtils.constructURL for the Nightscout web viewer URL (#…
bjorkert Jul 19, 2026
30da679
CI: Bump dev version to 6.2.15 [skip ci]
github-actions[bot] Jul 19, 2026
c0eceda
Add fallbacks for missing TDD and timestamp in devicestatus (#709)
bjorkert Jul 19, 2026
070f79a
CI: Bump dev version to 6.2.16 [skip ci]
github-actions[bot] Jul 19, 2026
600ca4c
Format Rec. Bolus with the pump's bolus increment (#700)
bjorkert Jul 19, 2026
0537a14
CI: Bump dev version to 6.2.17 [skip ci]
github-actions[bot] Jul 19, 2026
05bd6bd
Remove pre-iOS 18 Live Activity code paths (#711)
bjorkert Jul 19, 2026
390cd38
CI: Bump dev version to 6.2.18 [skip ci]
github-actions[bot] Jul 19, 2026
590024f
Gate startup on storage readiness for Before-First-Unlock recovery (#…
bjorkert Jul 19, 2026
ac18d68
CI: Bump dev version to 6.2.19 [skip ci]
github-actions[bot] Jul 19, 2026
cdaa672
Add custom alarm sounds (#699)
bjorkert Jul 19, 2026
c0a636d
CI: Bump dev version to 6.2.20 [skip ci]
github-actions[bot] Jul 19, 2026
26b8cdf
Add dismissable top banner for Nightscout, Dexcom, and heartbeat issu…
bjorkert Jul 19, 2026
d520f23
CI: Bump dev version to 6.2.21 [skip ci]
github-actions[bot] Jul 19, 2026
afc1c64
Add search to the Menu (#695)
bjorkert Jul 19, 2026
1895d10
CI: Bump dev version to 6.2.22 [skip ci]
github-actions[bot] Jul 19, 2026
c56d0b3
Add color thresholds to the Info Display (#693)
bjorkert Jul 19, 2026
3cae07c
CI: Bump dev version to 6.2.23 [skip ci]
github-actions[bot] Jul 19, 2026
eb15e4c
Add new section to export APNS setting (#714)
codebymini Jul 19, 2026
48a2a65
CI: Bump dev version to 6.2.24 [skip ci]
github-actions[bot] Jul 19, 2026
f5f2e47
release.sh: use merge-commit for release PRs to preserve release note…
bjorkert Jul 19, 2026
76a6aa4
CI: Bump dev version to 6.2.25 [skip ci]
github-actions[bot] Jul 19, 2026
b05f27c
Bug fix: carb dots overlapping SMB dots on the chart (#650)
aug0211 Jul 20, 2026
0501faf
Migrate main LoopFollow target to a synchronized folder group (#702)
bjorkert Jul 20, 2026
9b09a58
CI: Bump dev version to 6.2.26 [skip ci]
github-actions[bot] Jul 20, 2026
e103cdb
Fix Mac Catalyst build: guard liveActivity keywords case (#715)
bjorkert Jul 20, 2026
6587480
CI: Bump dev version to 6.2.27 [skip ci]
github-actions[bot] Jul 20, 2026
a34a46f
Remove unneeded UIKit imports (#713)
bjorkert Jul 20, 2026
8bd6575
CI: Bump dev version to 6.2.28 [skip ci]
github-actions[bot] Jul 20, 2026
7937e19
Parameterize bundle ID and build workflow for identical sister-repo c…
bjorkert Jul 20, 2026
62832ef
CI: Bump dev version to 6.2.29 [skip ci]
github-actions[bot] Jul 20, 2026
411c7af
Add first-run onboarding guide (#673)
bjorkert Jul 20, 2026
6f5a658
CI: Bump dev version to 6.2.30 [skip ci]
github-actions[bot] Jul 20, 2026
81d8fd4
Extend predictive low alarm to Trio (#680)
bjorkert Jul 20, 2026
1cf603f
CI: Bump dev version to 6.2.31 [skip ci]
github-actions[bot] Jul 20, 2026
b06efbf
Fix graph settings not honored on the small graph (#717)
bjorkert Jul 21, 2026
fad8089
CI: Bump dev version to 6.2.32 [skip ci]
github-actions[bot] Jul 21, 2026
924d888
Move main chart in realtime while dragging on the small graph (#718)
bjorkert Jul 21, 2026
56f5b24
CI: Bump dev version to 6.2.33 [skip ci]
github-actions[bot] Jul 21, 2026
9093e74
Draw temp targets at the BG level they target instead of in the overr…
bjorkert Jul 23, 2026
162cd83
CI: Bump dev version to 6.2.34 [skip ci]
github-actions[bot] Jul 23, 2026
d8151a9
Show active override and temp target with remaining time on the Live …
bjorkert Jul 23, 2026
71bd417
CI: Bump dev version to 6.2.35 [skip ci]
github-actions[bot] Jul 23, 2026
7f13537
Use Trio's colors for the forecast curves (#723)
bjorkert Jul 24, 2026
fccbdc1
CI: Bump dev version to 6.2.36 [skip ci]
github-actions[bot] Jul 24, 2026
f128d24
Clear stored predBGs when clearing the OpenAPS forecast (#724)
bjorkert Jul 25, 2026
6b35250
CI: Bump dev version to 6.2.37 [skip ci]
github-actions[bot] Jul 25, 2026
0dacf22
update version to 7.0.0
marionbarker Jul 25, 2026
89183a4
Reconcile main lineage for v7.0.0
marionbarker Jul 25, 2026
5604c91
Merge pull request #725 from loopandlearn/release/v7.0.0
marionbarker Jul 25, 2026
73aaf02
Fix Advanced Settings graph toggles not hiding chart elements (#729)
bjorkert Jul 29, 2026
d9f7b2a
CI: Bump dev version to 7.0.1 [skip ci]
github-actions[bot] Jul 29, 2026
639f8c6
Fix main graph locking up after system-cancelled gestures (#733)
bjorkert Jul 29, 2026
d9f5974
CI: Bump dev version to 7.0.2 [skip ci]
github-actions[bot] Jul 29, 2026
e0a63bc
Port Apple Watch support to current dev
aug0211 Aug 11, 2026
fdbf1e2
Merge auggie-watch-dev-sync into auggie-watch
aug0211 Aug 11, 2026
2662d58
Merge pull request #50 from aug0211/auggie-watch
aug0211 Aug 11, 2026
6516d19
Merge pull request #51 from aug0211/auggie-tappable-zoom-buttons
aug0211 Aug 11, 2026
b056d34
Merge pull request #52 from aug0211/auggie-increase-max-carbs-fpu-remote
aug0211 Aug 11, 2026
7298cc1
Merge upstream dev and port prior-day time markers
aug0211 Aug 11, 2026
e5bcf5b
Merge pull request #53 from aug0211/auggie-same-time-prior-day-lines
aug0211 Aug 11, 2026
de65015
Merge upstream/dev into auggie-smoothing
aug0211 Aug 11, 2026
908d7c1
Merge pull request #54 from aug0211/auggie-smoothing
aug0211 Aug 11, 2026
d22e710
Port tappable zoom controls to Swift Charts
aug0211 Aug 11, 2026
896f731
Restore zoom button sizing and spacing
aug0211 Aug 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Code owners for LoopFollow.
# Owners listed here are automatically requested for review on PRs and,
# when "Require review from Code Owners" is enabled in branch protection,
# their approval is required before a PR can be merged.

* @marionbarker @bjorkert @codebymini
22 changes: 21 additions & 1 deletion .github/workflows/auto_version_dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,21 +35,40 @@ on:

jobs:
bump-version:
if: github.repository_owner == 'loopandlearn'
if: ${{ !github.event.repository.fork }}
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
token: ${{ secrets.LOOPFOLLOW_TOKEN_AUTOBUMP }}
fetch-depth: 0

- name: Skip if Config.xcconfig was changed in this push
id: check
run: |
BEFORE="${{ github.event.before }}"
if [ -z "$BEFORE" ] || [ "$BEFORE" = "0000000000000000000000000000000000000000" ]; then
echo "skip=false" >> "$GITHUB_OUTPUT"
echo "No previous SHA on this push; not skipping."
exit 0
fi
if git diff "$BEFORE..HEAD" -- Config.xcconfig | grep -qE '^\+LOOP_FOLLOW_MARKETING_VERSION'; then
echo "skip=true" >> "$GITHUB_OUTPUT"
echo "LOOP_FOLLOW_MARKETING_VERSION was set in this push (likely a release sync); skipping auto-bump."
else
echo "skip=false" >> "$GITHUB_OUTPUT"
fi

- name: Set up Git
if: steps.check.outputs.skip != 'true'
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"

- name: Bump dev version number in Config.xcconfig
if: steps.check.outputs.skip != 'true'
run: |
FILE=Config.xcconfig

Expand Down Expand Up @@ -85,6 +104,7 @@ jobs:
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV

- name: Commit and push changes
if: steps.check.outputs.skip != 'true'
run: |
git add Config.xcconfig
git commit -m "CI: Bump dev version to $NEW_VERSION [skip ci]"
Expand Down
36 changes: 30 additions & 6 deletions .github/workflows/build_LoopFollow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,10 +131,10 @@ jobs:
if: steps.workflow-permission.outputs.has_permission != 'true'
run: |
echo "### :calendar: Scheduled Sync and Build Disabled :mobile_phone_off:" >> $GITHUB_STEP_SUMMARY
echo "You have not yet configured the scheduled sync and build for LoopFollow's browser build." >> $GITHUB_STEP_SUMMARY
echo "Synchronizing your fork of <code>LoopFollow</code> with the upstream repository <code>loopandlearn/LoopFollow</code> will be skipped." >> $GITHUB_STEP_SUMMARY
echo "If you want to enable automatic builds and updates for your LoopFollow, please follow the instructions \
under the following path <code>LoopFollow/fastlane/testflight.md</code>." >> $GITHUB_STEP_SUMMARY
echo "You have not yet configured the scheduled sync and build for ${{ github.event.repository.name }}'s browser build." >> $GITHUB_STEP_SUMMARY
echo "Synchronizing your fork of <code>${{ github.event.repository.name }}</code> with the upstream repository <code>${{ env.UPSTREAM_REPO }}</code> will be skipped." >> $GITHUB_STEP_SUMMARY
echo "If you want to enable automatic builds and updates for your ${{ github.event.repository.name }}, please follow the instructions \
under the following path <code>${{ github.event.repository.name }}/fastlane/testflight.md</code>." >> $GITHUB_STEP_SUMMARY

# Set a logic flag if this is the second instance of this day-of-week in this month
- name: Check if this is the second time this day-of-week happens this month
Expand All @@ -148,6 +148,30 @@ jobs:
echo "is_second_instance=false" >> "$GITHUB_OUTPUT"
fi

# When a scheduled run finds nothing new to build, cancel the run so it shows
# as "cancelled" instead of "success" — a green check should always mean a
# new build was made.
cancel_when_no_build:
needs: check_status
name: Cancel run when there is nothing to build
runs-on: ubuntu-latest
permissions:
actions: write
if: |
github.event_name == 'schedule' &&
!(vars.SCHEDULED_BUILD != 'false' && needs.check_status.outputs.IS_SECOND_IN_MONTH == 'true') &&
!(vars.SCHEDULED_SYNC != 'false' && needs.check_status.outputs.NEW_COMMITS == 'true')
steps:
- name: Cancel the run
env:
GH_TOKEN: ${{ github.token }}
run: |
echo "Repository is up to date and no monthly build is due — cancelling this run so it is not reported as a successful build." >> "$GITHUB_STEP_SUMMARY"
gh run cancel ${{ github.run_id }} --repo ${{ github.repository }}
# Keep the job alive until the cancellation lands, so the run ends as
# "cancelled" rather than completing successfully first.
sleep 300

# Checks if Distribution certificate is present and valid, optionally nukes and
# creates new certs if the repository variable ENABLE_NUKE_CERTS == 'true'
# only run if a build is planned
Expand All @@ -161,7 +185,7 @@ jobs:
(vars.SCHEDULED_BUILD != 'false' && needs.check_status.outputs.IS_SECOND_IN_MONTH == 'true') ||
(vars.SCHEDULED_SYNC != 'false' && needs.check_status.outputs.NEW_COMMITS == 'true' )

# Builds LoopFollow
# Builds the app
build:
name: Build
needs: [check_certs, check_status]
Expand Down Expand Up @@ -203,7 +227,7 @@ jobs:
- name: Sync clock
run: sudo sntp -sS time.windows.com

# Build signed LoopFollow IPA file
# Build signed IPA file
- name: Fastlane Build & Archive
run: bundle exec fastlane build_LoopFollow
env:
Expand Down
7 changes: 7 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ run-name: Lint (${{ github.head_ref || github.ref_name }})

on:
pull_request:
# 'edited' so the lint re-runs when a PR's base branch is changed; otherwise
# retargeting (e.g. main -> dev) leaves the required SwiftFormat check with no
# run on the new base and the PR stays blocked indefinitely.
types: [opened, synchronize, reopened, edited]
workflow_dispatch:

concurrency:
Expand All @@ -15,6 +19,9 @@ permissions:
jobs:
swiftformat:
name: SwiftFormat
# Run on open/sync/reopen always; on 'edited' only when the base branch
# actually changed, so routine title/description edits don't re-lint.
if: ${{ github.event.action != 'edited' || github.event.changes.base != null }}
runs-on: ubuntu-latest
container: swift:6.0
steps:
Expand Down
72 changes: 72 additions & 0 deletions .github/workflows/tag_on_main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# -----------------------------------------------------------------------------
# Workflow: Tag release on push to main
#
# Description:
# Creates an annotated git tag whenever main advances to a release version
# (X.Y.0). The version is read from LOOP_FOLLOW_MARKETING_VERSION in
# Config.xcconfig and the tag name is `v<version>`.
#
# Triggered by: any push to main (release PR merge).
# Skips if: the version on main is not X.Y.0 (e.g. a hotfix that didn't bump
# minor/major), or if the tag already exists.
# -----------------------------------------------------------------------------

name: Tag release on main

on:
push:
branches:
- main
# Manual fallback: if the push-triggered run was ever skipped (e.g. a commit
# with [skip ci] landing on main), the tag can be created by dispatching this
# workflow against main. It is idempotent — it skips if the tag already exists.
workflow_dispatch:

jobs:
tag:
if: ${{ !github.event.repository.fork }}
runs-on: ubuntu-latest
permissions:
contents: write

steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
fetch-depth: 0

- name: Extract version from Config.xcconfig
id: version
run: |
VERSION=$(grep -E "^LOOP_FOLLOW_MARKETING_VERSION[[:space:]]*=" Config.xcconfig | awk '{print $3}')
if [ -z "$VERSION" ]; then
echo "::error::Could not find LOOP_FOLLOW_MARKETING_VERSION in Config.xcconfig"
exit 1
fi
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
echo "Found version: $VERSION"

- name: Skip non-release versions (only X.Y.0 is tagged)
id: check
run: |
VERSION="${{ steps.version.outputs.version }}"
if [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.0$ ]]; then
echo "is_release=true" >> "$GITHUB_OUTPUT"
else
echo "is_release=false" >> "$GITHUB_OUTPUT"
echo "Version $VERSION is not a release version (X.Y.0); skipping tag."
fi

- name: Create and push tag if missing
if: steps.check.outputs.is_release == 'true'
run: |
TAG="v${{ steps.version.outputs.version }}"
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
if git rev-parse "$TAG" >/dev/null 2>&1; then
echo "Tag $TAG already exists; skipping."
else
git tag -a "$TAG" -m "$TAG"
git push origin "$TAG"
echo "Created and pushed tag $TAG"
fi
2 changes: 1 addition & 1 deletion .github/workflows/warn_main_pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:

jobs:
warn:
if: github.repository_owner == 'loopandlearn'
if: ${{ !github.event.repository.fork }}
runs-on: ubuntu-latest

permissions:
Expand Down
2 changes: 1 addition & 1 deletion Config.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@
unique_id = ${DEVELOPMENT_TEAM}

//Version (DEFAULT)
LOOP_FOLLOW_MARKETING_VERSION = 6.1.0
LOOP_FOLLOW_MARKETING_VERSION = 7.0.2
4 changes: 1 addition & 3 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
source "https://rubygems.org"
gem "fastlane", "2.233.1"
gem "json", ">=2.19.2"
gem "addressable", ">=2.9.0"
gem "fastlane", "2.237.0"
Loading
Loading