You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/browser/automatic.md
+78-47Lines changed: 78 additions & 47 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,11 +12,18 @@ The instructions provided for building with a browser include settings to automa
12
12
* **inactive** means stable code (no new commit within the last 60 days)
13
13
* **disables actions** means the Build Action shows up as disabled
14
14
15
+
!!! warning "Browser Build Disabled"
16
+
We do not know why, but GitHub is disabling the Build Loop Action for LoopWorkspace even though the repository is not stale.
17
+
18
+
* We think it is associated with running too many builds at a busy time that requested too many runners (virtual computers)
19
+
* The redesigned build action for v3.8.2 should alleviate this
20
+
* We also plan to reach out to GitHub after people have transitioned to the v3.8.2 build schedule
21
+
15
22
### What Manual Action is Required?
16
23
17
-
For any repository that is stable, like the *Loop* app, you may need to take manual action to keep automatic builds flowing every month.
24
+
For any repository that shows the build action disabled, you should enable the action and do a manual build.
18
25
19
-
* Put a calendar reminder to check every month on the 2nd day of the month (or later)
26
+
* Put a calendar reminder to check every month on the 15th day of the month (or later)
20
27
* Check that *TestFlight* has a new build of the *Loop* (or other) app
21
28
* If not, go to your repository to see if the build action is disabled
22
29
* If necessary, enable the build action at your repository as shown in the graphic below and then launch a manual build
@@ -27,6 +34,10 @@ This keeps the most recent version of your app available in *TestFlight* for you
27
34
28
35
> Builds in *TestFlight* are good for 90 days before they [expire](../operation/features/notifications.md#loop-app-expiration-notification){: target="_blank" }.
29
36
37
+
Your build may fail for other reasons - most common is forgetting to sign your updated license agreement or not adding the variable needed to get automatic annual certification renewal.
38
+
39
+
* Head over to [Errors with Browser](bb-errors.md){: target="_blank" }
40
+
30
41
## What is Automatic
31
42
32
43
These events are automatically scheduled:
@@ -50,11 +61,51 @@ You still need to **take these actions** to ensure a recent build of the *Loop*
50
61
* Check your *GitHub* action if you ever get an email saying an automatic action failed
51
62
* Look at your *TestFlight* app on the second of every month to make sure a new build is available for you to install when you are ready
52
63
64
+
### Modified Design for Build Action
65
+
66
+
The modified design for the build action found in `Loop v3.8.2` and newer is documented in this section.
67
+
68
+
#### Updated Build Features
69
+
70
+
The code that controls the build process was streamlined and enhanced. It runs every Sunday at a time when *GitHub* is not impacted. The portion of the action that decides whether to build or not completes in a few seconds.
71
+
72
+
**Build when**
73
+
74
+
* updates are detected
75
+
* it is the second Sunday of the month
76
+
77
+
**Other features**
78
+
79
+
* remove the concept of alive branches
80
+
* remove the requirement that your fork name match the upstream repository name
81
+
* enable any branch in your fork to be updated if the upstream repository has the same branch
82
+
* if you choose to have a special branch in your fork set to default, the automatic check for updates works for that special branch
83
+
84
+
85
+
??? question "Do you want to know more? (Click to open/close)"
86
+
**Build Action Redesign**
87
+
88
+
When GitHub allowed the use of alive branches with automatic addition of commits to the branch, there were extra steps in the build yml file and limitations to which branches would be updated.
89
+
90
+
* These steps kept your fork from getting stale
91
+
* GitHub will disable your build actions if no commits have been added for 60 days
92
+
93
+
Because this trick is no longer allowed, the creation and use of alive branches was removed. That opened the door to streamline and enhance the build action capabilities.
94
+
95
+
If you want to follow the detailed design steps taken to reach this new version, see the following LoopFollow PR. (Most people do not need to know this).
96
+
97
+
* [LoopFollow PR 465: Shift GitHub to check for updates every Sunday and build 2nd Saturday of each month](https://github.com/loopandlearn/LoopFollow/pull/465)
98
+
* [LoopFollow PR 470: Update the GitHub build schedule to every Sunday](https://github.com/loopandlearn/LoopFollow/pull/470)
* [LoopFollow PR 480: Expand and streamline build action](https://github.com/loopandlearn/LoopFollow/pull/480)
101
+
53
102
### Successful Weekly Action
54
103
55
-
Normally, you will see a successful `build action` once a week. This happens every Wednesday.
104
+
Normally, you will see a successful `build action` once a week. This happens every Sunday (as soon as your version is 3.8.2 or newer).
105
+
106
+
> Previously the build action would run every Wed or the first of the month, when GitHub resources were impacted.
56
107
57
-
If there are no updates to the `main` branch, your actions show a very short, successful `build action` as shown in the graphic below. It only takes about a minute because the logic says - no update then skip the build.
108
+
If there are no updates to the `main` branch, your actions show a very short, successful `build action` as shown in the graphic below. It only takes a few seconds because the logic says - if no update was detected and it is not the second Sunday, then skip checking the certificates and skip the build.
58
109
59
110

60
111
@@ -64,7 +115,9 @@ In that case, you should check your favorite information site to find out what t
64
115
65
116
### Successful Monthly Action
66
117
67
-
On the first day of every month, you will see a successful `build action`. The purpose of this build is to provide a recent version of the app in *TestFlight* so you are never in a situation where you have no app on your phone.
118
+
On the second Sunday of every month, you will see a longer `build action`. The purpose of this build is to provide a recent version of the app in *TestFlight* so you are never in a situation where you have no app on your phone.
119
+
120
+
> Previously the build action would run every Wed or the first of the month, when GitHub resources were impacted.
68
121
69
122
!!! important "You Get No Warning if Repository Build Action is Disabled"
70
123
If your build action is disabled, no build actually happens, no warning email is sent and a green checkmark (✅) appears beside a very short build action in which the actual build was skipped.
@@ -75,35 +128,16 @@ You start getting [Notifications](../operation/features/notifications.md#loop-ap
75
128
76
129
### What are the `alive branches`?
77
130
78
-
The automatic update and build feature is embedded in the build_loop.yml code and uses the GitHub scheduling feature to trigger actions to run automatically.
79
-
80
-
One or more branches are added to your repository that start with the name `alive`. Don't worry about these. They are automatically created so GitHub will keep building your app automatically.
81
-
82
-
* GitHub keeps track of repositories
83
-
* If there is no activity in a given repository in 60 days, GitHub disables Actions
84
-
* If your Actions are disabled, you don't get automatic builds
85
-
* Clever people developed a work around for this
86
-
87
-
You may see branches called `alive`, `alive-dev` or `alive-main` in your repository.
88
-
89
-
The `alive` branches are there so at least one commit per month is added to an `alive` branch in your repository. That keeps your repository active to allow the automatic update and build process.
90
-
91
-
The `alive` branches are only used for the keep-alive functions. Do not build using an `alive` branch. Most people will build using the default branch of `main`.
92
-
93
-
#### Automatic Creation of `alive branch`
131
+
In April 2025, GitHub disallowed using the build action to automatically add commits to `alive branches`. This trick was previously used to keep your fork active even when the upstream repository was stable.
94
132
95
-
The `alive` branch you need is created automatically when you run the `Build Loop` action.
133
+
Once you update to v3.8.2 or newer, references to `alive branches` are removed from the build action.
96
134
97
-
!!! warning "I got an error regarding a branch with `alive` in the name"
98
-
* Sometimes you get an error about an `alive` branch
99
-
* If you do get an error, simply delete the branch and run the `Build Loop` action again
100
-
* Use this [GitHub link](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository#deleting-a-branch) or ask for help when deleting a branch
101
-
* You can delete every branch that starts with the name `alive`
102
-
* Leave the other branches alone unless a mentor directs you to take action
135
+
> * If you have alive branches (`alive`, `alive-dev` or `alive-main`) you may delete them if you choose
136
+
* Only delete alive branches after your default branch is updated to the new version
103
137
104
138
## Automatic Certificates
105
139
106
-
Automatic renewal of certificates is included in `Loop 3.6.0`.
140
+
Automatic renewal of certificates is included in `Loop 3.6.0` and newer versions.
107
141
108
142
### Requirements
109
143
@@ -134,22 +168,20 @@ Some Open-Source apps, in particular `Trio`, `LoopCaregiver`, `LoopFollow`, `Loo
134
168
135
169
### Open-Source App Schedule
136
170
137
-
!!! information "Changes are Coming"
138
-
We are in process of modifying when **planned** builds happen.
171
+
With the release of `Loop 3.8.2` and newer, the build schedule is updated.
139
172
140
-
The *LoopFollow* app and *Trio* app are already changed. This change will propagate to other apps in the Open-Source ecosystem.
173
+
**New schedule - there will be one automatic run of the build action each week on Sunday.**
141
174
142
-
New method - there will be one automatic run of the build action each week on Sunday.
175
+
* If no updated code is detected, the build will be skipped unless it is the **second Sunday** of the month
176
+
* If updated code is detected, the new version of the app will be built and uploaded to TestFlight
143
177
144
-
* If it is the second Sunday of the month, the app will be built and uploaded to TestFlight
145
-
* If updated code is detected, the new version of the app will be built and uploaded to TestFlight
146
-
* If no updated code is detected, the build will be skipped (except for the second Sunday of the month)
178
+
The table below indicates **planned** time for the automatic build schedule. GitHub will start the build action no earlier than the stated time but it can be delayed depending on activity at GitHub.
147
179
148
-
The table below indicates **planned** time for the automatic build schedule. For apps not yet changed to the new method, the weekly runs are on Wednesday and the monthly runs are on the 1st of each month.
180
+
>For apps not yet changed to the new method, the weekly runs are on Wednesday and the monthly runs are on the 1st of each month.
149
181
150
182
| Open-Source App | AutoCerts? | Weekly<br>UTC | Once a Month<br>UTC |
| <spantranslate="no">LoopFollow</span> |✅| 10:17 | same |
155
187
| <spantranslate="no">LoopFollow_Second</span> |✅| 10:27 | same |
@@ -202,7 +234,7 @@ This is an optional step. If you are happy with the automatic sync and update, y
202
234
203
235
Note that the weekly and monthly `Build Loop` actions will continue, but the actions are modified if one or more of these variables is set to false. **A successful Action Log will still appear, even if no automatic activity happens**.
204
236
205
-
* If you want to manually decide when to update your repository to the latest commit, but you want the monthly builds and keep-alive to continue:
237
+
* If you want to manually decide when to update your repository to the latest commit, but you want the monthly builds to continue:
206
238
* create the variable `SCHEDULED_SYNC` and set it to false
207
239
* either do not create the variable `SCHEDULED_BUILD` or set it to true
208
240
* If you are building the `dev branch` at a time when there is a lot of activity in that branch, you may want this configuration
@@ -214,10 +246,10 @@ This is an optional step. If you are happy with the automatic sync and update, y
| `true` (or N/A) | `true` (or N/A) | This is the default:<br>keep-alive, weekly update check (auto update/build), monthly build with auto update|
218
-
| `false` | `true` (or N/A) | keep-alive, monthly build, no auto update |
219
-
| `true` (or N/A) | `false` | keep-alive, weekly update check with auto update, only builds if update detected |
220
-
| `false` | `false` | no automatic activity, no keep-alive|
249
+
| `true` (or N/A) | `true` (or N/A) | This is the default:<br>weekly update check (auto update/build), monthly build with auto update|
250
+
| `false` | `true` (or N/A) | monthly build, no auto update |
251
+
| `true` (or N/A) | `false` | weekly update check with auto update, only builds if update detected |
252
+
| `false` | `false` | no automatic activity|
221
253
222
254
### How to configure a variable
223
255
@@ -241,10 +273,9 @@ Your build will run on the following conditions:
241
273
- Default behaviour:
242
274
- Run weekly, every Wednesday at 08:00 UTC to check for changes; if there are changes, it will update your repository and build
243
275
- Run monthly, every first of the month at 06:00 UTC, if there are changes, it will update your repository; regardless of changes, it will build
244
-
- Each time the action runs, it makes a keep-alive commit to the `alive` branch if necessary
245
-
- If you disable any automation (both variables set to `false`), no updates, keep-alive or building happens when `Build Loop` runs
246
-
- If you disabled just scheduled synchronization (`SCHEDULED_SYNC` set to`false`), it will only run once a month, on the first of the month, no update will happen; keep-alive will run
247
-
- If you disabled just scheduled build (`SCHEDULED_BUILD` set to`false`), it will run once weekly, every Wednesday, to check for changes; if there are changes, it will update and build; keep-alive will run
276
+
- If you disable any automation (both variables set to `false`), no updates or building happens when `Build Loop` runs
277
+
- If you disable only scheduled synchronization (`SCHEDULED_SYNC` set to`false`), the build action runs weekly but your fork is not updated and the monthly build uses the current version of your fork
278
+
- If you disable only scheduled build (`SCHEDULED_BUILD` set to`false`), the build action runs weekly to check for changes; if there are changes, it will update and build
Copy file name to clipboardExpand all lines: docs/browser/bb-errors.md
-23Lines changed: 0 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -154,26 +154,6 @@ Ignore the warnings - this does not affect the build.
154
154
155
155
## Rebuild Errors: Quick Reference
156
156
157
-
### `Check Upstream and Keep Alive` Error
158
-
159
-
!!! important "`Check Upstream and Keep Alive` Error"
160
-
**Error**: Your Browser Build fails and when you click on the link, you see
161
-
162
-
* **`Check Upstream and Keep Alive`** failed
163
-
164
-
**Consequence**: any required sync of your fork is skipped and build is skipped
165
-
166
-
**Solution**:
167
-
168
-
* Manually sync your fork of the repository: [Update `Fork`](bb-update.md#update-fork){: target="_blank" }
169
-
* Manually start your build: [Build](bb-update.md#build-the-app){: target="_blank" }
170
-
171
-
**Details about what happened**:
172
-
173
-
On 21 April 2025, *GitHub* removed one of the third-party repositories that we used to keep automatic building going without action on your part. The repository was removed because it was in violation of the *GitHub* terms of service. *GitHub* disables automatic actions for repositories that have been inactive (no commits added in 60 days). For stable apps, like the *Loop* app, this third-party repository enabled a workaround to keep the builds happening.
174
-
175
-
This affected all the Open-Source apps in our community - Loop, LoopFollow, LoopCaregiver, Trio, iAPS and xDrip4iOS. The developers in our community have restored the ability to build using the Browser Build method. Stay tuned for updates to required actions in the documentation over the next few months, before we hit the 60 day limit.
176
-
177
157
### Manual Enable for Build Action May be Required
178
158
179
159
The automatic build actions continue to happen on schedule, but starting May 2025, you may find your build action disabled by *GitHub*. (This might happen every 60 days, but it might happen sooner.) In that case, no build actually happens, no warning email is sent and a green checkmark (✅) appears beside a very short build action in which the actual build was skipped.
@@ -223,9 +203,6 @@ These are some of the most common errors to date.
223
203
1. You skipped running one of the actions
224
204
1. You need to sign a program license agreement or update a credit card at <span translate="no">Apple Developer</span>
225
205
* Be sure to read [Misleading Error Message](#misleading-error-message)
226
-
1. You got an error regarding a branch with `alive` in the name
227
-
* You can delete any branch that starts with the name `alive` and try again
228
-
* See [Automatic Creation of `alive branch`](automatic.md#automatic-creation-of-alive-branch){: target="_blank" }
0 commit comments