[GH-ISSUE #5] CI & Automatic Updates #6

Closed
opened 2026-05-05 04:40:46 -06:00 by gitea-mirror · 22 comments
Owner

Originally created by @the0neyouseek on GitHub (Jan 2, 2018).
Original GitHub issue: https://github.com/MonitorControl/MonitorControl/issues/5

Originally assigned to: @the0neyouseek, @JoniVR, @waydabber on GitHub.

This issue is to simplify the debug and release process :

  • Add a ci service to compile and deploy the new releases to github.
  • Add an auto-update feature (with options to enable/disable the auto check for new releases) with something like @macmade/GitHubUpdates
Originally created by @the0neyouseek on GitHub (Jan 2, 2018). Original GitHub issue: https://github.com/MonitorControl/MonitorControl/issues/5 Originally assigned to: @the0neyouseek, @JoniVR, @waydabber on GitHub. This issue is to simplify the debug and release process : - [ ] Add a ci service to compile and deploy the new releases to github. - [ ] Add an auto-update feature (with options to enable/disable the auto check for new releases) with something like [@macmade/GitHubUpdates](https://github.com/macmade/GitHubUpdates)
gitea-mirror 2026-05-05 04:40:46 -06:00
Author
Owner

@JoniVR commented on GitHub (May 8, 2019):

I think an auto-update feature would be awesome!
I can look into implementing this if you want.

I'd suggest the following things to be in there:

  • Automatically look for updates on app launch
  • Add a button "Check for updates..." to the menulet
  • Add a setting to enable/disable checking for updates on launch

Is there a specific CI service you'd prefer?
I'm personally only experienced with TravisCI but I'm fine with whatever.

<!-- gh-comment-id:490609888 --> @JoniVR commented on GitHub (May 8, 2019): I think an auto-update feature would be awesome! I can look into implementing this if you want. I'd suggest the following things to be in there: * Automatically look for updates on app launch * Add a button "Check for updates..." to the menulet * Add a setting to enable/disable checking for updates on launch Is there a specific CI service you'd prefer? I'm personally only experienced with TravisCI but I'm fine with whatever.
Author
Owner

@the0neyouseek commented on GitHub (May 8, 2019):

@JoniVR Hi,
I've used CircleCI which works great with macOS/iOS but anything is fine for me (We could also add a bagde to the readme)

For automatic updates I've found this :

<!-- gh-comment-id:490611871 --> @the0neyouseek commented on GitHub (May 8, 2019): @JoniVR Hi, I've used CircleCI which works great with macOS/iOS but anything is fine for me (We could also add a bagde to the readme) For automatic updates I've found this : - https://github.com/macmade/GitHubUpdates - https://github.com/sparkle-project/Sparkle
Author
Owner

@JoniVR commented on GitHub (May 8, 2019):

I've used CircleCI which works great with macOS/iOS but anything is fine for me

CircleCI seems to be the more populair choice these days yes. I'm fine with that.

(We could also add a badge to the readme)

Yup, would be useful.

For automatic updates I've found this :

I wasn't aware of GitHubUpdates before, I've seen Sparkle before. I think Sparkle is generally more used and more supported, however, it looks like GitHubUpdates is a lot easier to implement. So I'm not sure, I found a nice article on using sparkle with github though.

<!-- gh-comment-id:490615243 --> @JoniVR commented on GitHub (May 8, 2019): > I've used CircleCI which works great with macOS/iOS but anything is fine for me CircleCI seems to be the more populair choice these days yes. I'm fine with that. > (We could also add a badge to the readme) Yup, would be useful. > For automatic updates I've found this : > > * https://github.com/macmade/GitHubUpdates > * https://github.com/sparkle-project/Sparkle I wasn't aware of GitHubUpdates before, I've seen Sparkle before. I think Sparkle is generally more used and more supported, however, it looks like GitHubUpdates is a lot easier to implement. So I'm not sure, I found a [nice article](https://yiqiu.me/2015/11/19/sparkle-update-on-github/) on using sparkle with github though.
Author
Owner

@the0neyouseek commented on GitHub (May 8, 2019):

I also think that Sparkle is the safe bet here as GithubUpdates doesn't seem maintained 👍

<!-- gh-comment-id:490619303 --> @the0neyouseek commented on GitHub (May 8, 2019): I also think that Sparkle is the safe bet here as GithubUpdates doesn't seem maintained 👍
Author
Owner

@JoniVR commented on GitHub (Apr 2, 2020):

For the CI part, if/when we get to it, Github CI seems to be pretty good now from my experience, maybe that would be a better option now?

<!-- gh-comment-id:607827619 --> @JoniVR commented on GitHub (Apr 2, 2020): For the CI part, if/when we get to it, Github CI seems to be pretty good now from my experience, maybe that would be a better option now?
Author
Owner

@the0neyouseek commented on GitHub (Apr 2, 2020):

💯% agree with that

Le jeu. 2 avr. 2020 à 14:53, Joni Van Roost notifications@github.com a
écrit :

For the CI part, if/when we get to it, Github CI seems to be pretty good
now from my experience, maybe that would be a better option now?


You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/the0neyouseek/MonitorControl/issues/5#issuecomment-607827619,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA6SZV4RYYV4BXHNMTVBSPDRKSDENANCNFSM4EKB5KZQ
.

<!-- gh-comment-id:607987944 --> @the0neyouseek commented on GitHub (Apr 2, 2020): 💯% agree with that Le jeu. 2 avr. 2020 à 14:53, Joni Van Roost <notifications@github.com> a écrit : > For the CI part, if/when we get to it, Github CI seems to be pretty good > now from my experience, maybe that would be a better option now? > > — > You are receiving this because you were assigned. > Reply to this email directly, view it on GitHub > <https://github.com/the0neyouseek/MonitorControl/issues/5#issuecomment-607827619>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/AA6SZV4RYYV4BXHNMTVBSPDRKSDENANCNFSM4EKB5KZQ> > . >
Author
Owner

@waydabber commented on GitHub (Sep 29, 2021):

I added sparkle 2 for updates.

<!-- gh-comment-id:930072038 --> @waydabber commented on GitHub (Sep 29, 2021): I added sparkle 2 for updates.
Author
Owner

@the0neyouseek commented on GitHub (Sep 29, 2021):

@waydabber Did you find a way to auto-generate the AppCast xml file ?

<!-- gh-comment-id:930079762 --> @the0neyouseek commented on GitHub (Sep 29, 2021): @waydabber Did you find a way to auto-generate the AppCast xml file ?
Author
Owner

@waydabber commented on GitHub (Sep 29, 2021):

Nope, I just added the app side of the things but did not work on automation at all so there is room for improvement. :)

<!-- gh-comment-id:930082330 --> @waydabber commented on GitHub (Sep 29, 2021): Nope, I just added the app side of the things but did not work on automation at all so there is room for improvement. :)
Author
Owner

@waydabber commented on GitHub (Sep 29, 2021):

But as far as I see the appcast xml can easily be edited manually so we could put together a script that automates everything from signing to publishing. But since I could not even apply for an Apple developer membership (somehow my application failed instantly after I enrolled and I should 'contact Apple' but the form offered is broken), I can't even sign or notarize the app so I have hard time trying out the whole process. I hope you or @JoniVR will help. It would be nice if 4.0.0 betas and then stable versions could auto-update (I recommend having a separate beta and stable appcast channel).

<!-- gh-comment-id:930086816 --> @waydabber commented on GitHub (Sep 29, 2021): But as far as I see the appcast xml can easily be edited manually so we could put together a script that automates everything from signing to publishing. But since I could not even apply for an Apple developer membership (somehow my application failed instantly after I enrolled and I should 'contact Apple' but the form offered is broken), I can't even sign or notarize the app so I have hard time trying out the whole process. I hope you or @JoniVR will help. It would be nice if 4.0.0 betas and then stable versions could auto-update (I recommend having a separate beta and stable appcast channel).
Author
Owner

@the0neyouseek commented on GitHub (Sep 29, 2021):

@waydabber I was planning on adapting this script I found :
https://github.com/lwouis/alt-tab-macos/blob/master/scripts/update_appcast.sh

For signing @JoniVR could you invite @waydabber and I to your development team in App Store Connect ? This would allow us to sign and notarize the app I think

<!-- gh-comment-id:930089325 --> @the0neyouseek commented on GitHub (Sep 29, 2021): @waydabber I was planning on adapting this script I found : https://github.com/lwouis/alt-tab-macos/blob/master/scripts/update_appcast.sh For signing @JoniVR could you invite @waydabber and I to your development team in [App Store Connect](https://appstoreconnect.apple.com/access/users) ? This would allow us to sign and notarize the app I think
Author
Owner

@waydabber commented on GitHub (Sep 29, 2021):

Nice, a script like that would work nicely with the appcast. It would be really great if there were be a simple scripted process to build and publish the app, both as pre-release and release!

<!-- gh-comment-id:930091998 --> @waydabber commented on GitHub (Sep 29, 2021): Nice, a script like that would work nicely with the appcast. It would be really great if there were be a simple scripted process to build and publish the app, both as pre-release and release!
Author
Owner

@the0neyouseek commented on GitHub (Sep 29, 2021):

We could use Fastlane for that

<!-- gh-comment-id:930096389 --> @the0neyouseek commented on GitHub (Sep 29, 2021): We could use [Fastlane](https://github.com/fastlane/fastlane) for that
Author
Owner

@JoniVR commented on GitHub (Sep 29, 2021):

For signing @JoniVR could you invite @waydabber and I to your development team in App Store Connect ? This would allow us to sign and notarize the app I think

IIRC from my work place, an organisational account requires a D.U.N.S number, which requires a legal entity, not sure though. See:
https://developer.apple.com/programs/enroll/

I'd be happy to help with everything else. I agree Sparkle is pretty important.

<!-- gh-comment-id:930100275 --> @JoniVR commented on GitHub (Sep 29, 2021): > For signing @JoniVR could you invite @waydabber and I to your development team in [App Store Connect](https://appstoreconnect.apple.com/access/users) ? This would allow us to sign and notarize the app I think IIRC from my work place, an organisational account requires a D.U.N.S number, which requires a legal entity, not sure though. See: https://developer.apple.com/programs/enroll/ I'd be happy to help with everything else. I agree Sparkle is pretty important.
Author
Owner

@the0neyouseek commented on GitHub (Sep 29, 2021):

@JoniVR Can you not add users to your personal account (if that's what you use to sign) and restrict access using roles ?

<!-- gh-comment-id:930117581 --> @the0neyouseek commented on GitHub (Sep 29, 2021): @JoniVR Can you not add users to your personal account (if that's what you use to sign) and restrict access using roles ?
Author
Owner

@JoniVR commented on GitHub (Sep 29, 2021):

I think I might be able to do it through App Store connect, judging by:
https://help.apple.com/developer-account/#/dev3e8818774

That would require registering the bundle identifier in App Store Connect though. I'll look into it.

<!-- gh-comment-id:930424602 --> @JoniVR commented on GitHub (Sep 29, 2021): I think I might be able to do it through App Store connect, judging by: https://help.apple.com/developer-account/#/dev3e8818774 That would require registering the bundle identifier in App Store Connect though. I'll look into it.
Author
Owner

@JoniVR commented on GitHub (Sep 29, 2021):

Reopened because I want to keep this visible until we get it all up-and-running if you don't mind.

<!-- gh-comment-id:930514692 --> @JoniVR commented on GitHub (Sep 29, 2021): Reopened because I want to keep this visible until we get it all up-and-running if you don't mind.
Author
Owner

@JoniVR commented on GitHub (Sep 29, 2021):

Nice, a script like that would work nicely with the appcast. It would be really great if there were be a simple scripted process to build and publish the app, both as pre-release and release!

Theoretically, We should be able to create a Github workflow that will be triggered when creating a tag, and then make it create a release based on that, updating appcast etc, but that might be quite a lot of work. Good news is that Apple created a better tool for notarising this year, still have to look into that too.

<!-- gh-comment-id:930515841 --> @JoniVR commented on GitHub (Sep 29, 2021): > Nice, a script like that would work nicely with the appcast. It would be really great if there were be a simple scripted process to build and publish the app, both as pre-release and release! Theoretically, We should be able to create a Github workflow that will be triggered when creating a tag, and then make it create a release based on that, updating appcast etc, but that might be quite a lot of work. Good news is that [Apple created a better tool for notarising this year](https://developer.apple.com/videos/play/wwdc2021/10261/), still have to look into that too.
Author
Owner

@waydabber commented on GitHub (Sep 29, 2021):

Reopened because I want to keep this visible until we get it all up-and-running if you don't mind.

Yes of course, I just bulk closed all with the done tag.

<!-- gh-comment-id:930561162 --> @waydabber commented on GitHub (Sep 29, 2021): > Reopened because I want to keep this visible until we get it all up-and-running if you don't mind. Yes of course, I just bulk closed all with the done tag.
Author
Owner

@waydabber commented on GitHub (Sep 30, 2021):

sidenote - here are some ideas and existing solutions to make Sparkle work from GitHub:

https://github.com/sparkle-project/Sparkle/issues/648

<!-- gh-comment-id:931261403 --> @waydabber commented on GitHub (Sep 30, 2021): sidenote - here are some ideas and existing solutions to make Sparkle work from GitHub: https://github.com/sparkle-project/Sparkle/issues/648
Author
Owner

@JoniVR commented on GitHub (Sep 30, 2021):

Notes on current sparkle to-do (for tracking purposes, step-by-step):

  • Manual implementation using appcast.xml inside /docs folder1
  • Automation of appcast update through ci workflow (detect when release is created and update appcast.xml through CI) -> store version etc in xcconfig file.
  • Add different Sparkle channels (stable/beta) along with a toggle in preferences.
  • Automation of the rest of the signing, notarisation & deployment process, trigger through git tag?
  • See if members can be added to my developer account for signing etc.

  1. This is using the github-pages branch, don't remove this branch for now as we'll use it to update the appcast.xml without Pull Requests for releases. ↩︎

<!-- gh-comment-id:931721945 --> @JoniVR commented on GitHub (Sep 30, 2021): Notes on current sparkle to-do (for tracking purposes, step-by-step): - [x] Manual implementation using appcast.xml inside /docs folder[^1] - [ ] Automation of appcast update through ci workflow (detect when release is created and update appcast.xml through CI) -> store version etc in xcconfig file. - [ ] Add different Sparkle channels (stable/beta) along with a toggle in preferences. - [ ] Automation of the rest of the signing, notarisation & deployment process, trigger through git tag? - [ ] See if members can be added to my developer account for signing etc. [^1]: This is using the `github-pages` branch, don't remove this branch for now as we'll use it to update the `appcast.xml` without Pull Requests for releases.
Author
Owner

@stale[bot] commented on GitHub (Oct 26, 2022):

Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require attention? This issue may be closed if no further activity occurs. Thank you for your contributions.

<!-- gh-comment-id:1292680498 --> @stale[bot] commented on GitHub (Oct 26, 2022): Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require attention? This issue may be closed if no further activity occurs. Thank you for your contributions.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/MonitorControl#6
No description provided.