CI & Automatic Updates
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
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.
@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
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 on using sparkle with github though.
I also think that Sparkle is the safe bet here as GithubUpdates doesn't seem maintained 👍
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?
💯% agree with that
Le jeu. 2 avr. 2020 à 14:53, Joni Van Roost [email protected] 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 .
I added sparkle 2 for updates.
@waydabber Did you find a way to auto-generate the AppCast xml file ?
Nope, I just added the app side of the things but did not work on automation at all so there is room for improvement. :)
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).
@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
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!
We could use Fastlane for that
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.
@JoniVR Can you not add users to your personal account (if that's what you use to sign) and restrict access using roles ?
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.
Reopened because I want to keep this visible until we get it all up-and-running if you don't mind.
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.
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.
sidenote - here are some ideas and existing solutions to make Sparkle work from GitHub:
https://github.com/sparkle-project/Sparkle/issues/648
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.
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.