Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI & Automatic Updates #5

Closed
2 tasks
the0neyouseek opened this issue Jan 2, 2018 · 22 comments
Closed
2 tasks

CI & Automatic Updates #5

the0neyouseek opened this issue Jan 2, 2018 · 22 comments
Assignees
Labels
Status: Abandoned Issue will not be worked on anymore (reason in comment) Status: In progress Issue currently being worked on Type: Feature Request Issue is a new feature proposal

Comments

@the0neyouseek
Copy link
Member

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
@the0neyouseek the0neyouseek added the Type: Enhancement Issue is an app enhancement label Jan 2, 2018
@the0neyouseek the0neyouseek added this to the Version 1.2 milestone Jan 2, 2018
@the0neyouseek the0neyouseek self-assigned this Jan 2, 2018
@the0neyouseek the0neyouseek changed the title Continuous Integration & Deployement Continuous Integration & Deployment Jan 2, 2018
@the0neyouseek the0neyouseek modified the milestones: Version 1.2, Version 1.3 Feb 21, 2018
@JoniVR
Copy link
Member

JoniVR commented 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.

@the0neyouseek
Copy link
Member Author

@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 :

@JoniVR
Copy link
Member

JoniVR commented 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.

@the0neyouseek
Copy link
Member Author

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

@the0neyouseek the0neyouseek removed this from the Version 1.4 milestone May 23, 2019
@JoniVR
Copy link
Member

JoniVR commented 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?

@the0neyouseek
Copy link
Member Author

the0neyouseek commented Apr 2, 2020 via email

@JoniVR JoniVR changed the title Continuous Integration & Deployment CI & Automatic Updates Aug 2, 2021
@waydabber waydabber added Type: Feature Request Issue is a new feature proposal and removed Type: Enhancement Issue is an app enhancement labels Aug 21, 2021
@waydabber waydabber assigned waydabber and unassigned the0neyouseek Sep 29, 2021
@waydabber waydabber added the Status: Done Work on this issue is complete. Will be available on next release label Sep 29, 2021
@waydabber waydabber added this to Done in v4.0.0 Sep 29, 2021
@waydabber
Copy link
Member

I added sparkle 2 for updates.

@the0neyouseek
Copy link
Member Author

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

@waydabber
Copy link
Member

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

@waydabber
Copy link
Member

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).

@the0neyouseek
Copy link
Member Author

the0neyouseek commented 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

@waydabber
Copy link
Member

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!

@the0neyouseek
Copy link
Member Author

We could use Fastlane for that

@JoniVR
Copy link
Member

JoniVR commented 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.

@the0neyouseek
Copy link
Member Author

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

@JoniVR JoniVR mentioned this issue Sep 29, 2021
@JoniVR
Copy link
Member

JoniVR commented 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.

@waydabber waydabber added this to the 4.0.0 milestone Sep 29, 2021
@JoniVR JoniVR reopened this Sep 29, 2021
@JoniVR
Copy link
Member

JoniVR commented Sep 29, 2021

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

@JoniVR
Copy link
Member

JoniVR commented 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.

@waydabber
Copy link
Member

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.

@waydabber waydabber added Type: Enhancement Issue is an app enhancement Type: Feature Request Issue is a new feature proposal Status: In progress Issue currently being worked on and removed Status: Done Work on this issue is complete. Will be available on next release Type: Feature Request Issue is a new feature proposal Type: Enhancement Issue is an app enhancement labels Sep 29, 2021
@waydabber waydabber moved this from Done to In progress in v4.0.0 Sep 29, 2021
@waydabber
Copy link
Member

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

sparkle-project/Sparkle#648

@JoniVR
Copy link
Member

JoniVR commented 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.

Footnotes

  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.

@waydabber waydabber removed this from the 4.0.0 milestone Oct 26, 2021
@waydabber waydabber removed this from In progress in v4.0.0 Nov 28, 2021
@stale
Copy link

stale bot commented 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.

@stale stale bot added the Status: Abandoned Issue will not be worked on anymore (reason in comment) label Oct 26, 2022
@stale stale bot closed this as completed Nov 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Abandoned Issue will not be worked on anymore (reason in comment) Status: In progress Issue currently being worked on Type: Feature Request Issue is a new feature proposal
Projects
None yet
Development

No branches or pull requests

3 participants