GitHawkApp / GitHawk

The (second) best iOS app for GitHub.
http://githawk.com
MIT License
2.88k stars 385 forks source link

Alternatives to Buddybuild? #1330

Closed rnystrom closed 6 years ago

rnystrom commented 6 years ago

Just as I was getting familiar w/ it....

Existing Free Starter plans and Android app development will be discontinued on March 1, 2018.

We will almost certainly lose support for this project. Time to find a new CI. Any suggestions?

I'm reading this article which offers:

I read about Buildkite and AppCenter on Hacker News.

I'm also considering open source, self-hosted solutions so that something like this doesn't happen again:

jamala commented 6 years ago

For another self-hosted option, TeamCity(https://www.jetbrains.com/teamcity)?

diogot commented 6 years ago

Usually, CircleCI job queue for open source projects is much less crowded than TravisCI.

freak4pc commented 6 years ago

My $0.02 from managing some of the RxSwiftCommunity repos.

Travis is absolute garbage (or has become over time). Queueing is intolerable and slows down development efforts (waiting 50 minutes for a 90s build is unacceptable) and configuration is relatively annoying.

We're slowly but surely moving most repos away to CirlceCI and have been very happy with it. Queueing is really snappy and fair, and the configuration is relatively a breeze.

Also heard great things about Bitrise in that sense.

Sherlouk commented 6 years ago

Super shame about BB, be interesting to keep an eye on it as I don't think Apple would kill it - but yea

Had experience with an older version of Jenkins, as a tool it's definitely capable but would require quite a lot of maintenance/configuration and in the art of keeping things as open and collaborative probably not the best thing honestly

Also if we go for another "big" provider, we run the same risk of it just being swept up by another firm playing Monopoly

I'd be inclined to try Bitrise, my 2 cents

ElektrojungeAtWork commented 6 years ago

I’m obviously biased ;) but something like this is not gonna happen with App Center. Please get in touch in case you’re interested.

BasThomas commented 6 years ago

cc @Palleas

Sent with GitHawk

ijansch commented 6 years ago

Https://Buildozer.io supports both iOS and Android. (disclosure: I’m one of its founders)

orta commented 6 years ago

We've been using CircleCI on all Artsy iOS projects that require a mac for CI - the OSS queues haven't been an issue like travis'

sregg commented 6 years ago

I spent the whole day trying out Bitrise and App Center. So far, they don't look as easy to use and magical as BuddyBuild did... I'm happy for the BB team (and proud as I'm in Vancouver as well) but very pissed as a user... BuddyBuild was one of those services that just work, with almost no configuration needed.

rizwankce commented 6 years ago

I really liked the way how Buddybuild works. I have tired Circle CI before but there are some things to notice here is it uses Fastlane for signing and deploy to Test Flight, Automatic Signing cant be used. have to use "Manual"

rnystrom commented 6 years ago

I setup some time to chat w/ @TroubleMakerBen, AppCenter looks really nice. Gonna learn more about it and report back!

yeradis commented 6 years ago

Check https://buildkite.com/ they offer free account for OSS

benoittgt commented 6 years ago

Huge fan of bitrise here. We use it a lot with our solution https://www.appaloosa-store.com/

dipree commented 6 years ago

@sregg what exactly wasn't working for you in App Center? I'd be happy to help with anything Build specific.

sregg commented 6 years ago

@derpixeldan for instance, the Slack integration is all manual using webhooks compared to just a checkbox with BB. Also, there's no way to start a build number from a specified number (i.e. my current build number on BB). Finally, signing the iOS app didn't look as straightforward as BB's (I think I only gave them my Apple id username/password and they managed the certificate and provisioning automatically)

lukekim commented 6 years ago

I am the engineering manager at Microsoft for App Center Build. We have a great team making improvements every week and we are committed to multi-platform support.

@sregg great feedback and I think improvements in all those areas are on our backlog.

Also feel free to DM me on Twitter at https://twitter.com/0xlukekim with any issues/concerns/feedback.

freak4pc commented 6 years ago

I have to say I've been very impressed with App Center mainly in the "meta" sense of:

Don't have enough experience with it, but seems like a worthy competitor as well :)

viktorbenei commented 6 years ago

Hi everyone, I'm Viktor from https://www.bitrise.io (CTO & Co-founder).

Thank you everyone for the recommendation, it means a lot to our team!

Just wanted to say hi πŸ‘‹ and ensure you that we're of course listening, feel free to ping us any time via any of our support channels and I'm happy to answer any questions you have here as well!

sregg commented 6 years ago

Haha, I think we can start the bidding war now πŸ˜„

freak4pc commented 6 years ago

My GitHawk brings all the CIs to the yard πŸ€“

castus commented 6 years ago

There is also https://buddy.works I didn't use their service, so hard to say if they are good. They have a cool name definitely ;P

richardleggett commented 6 years ago

I moved over from BuddyBuild to Bitrise (we really want one place for our iOS and Android). It did take some reading of the docs and also some of the step's git repos, but it went pretty smoothly, took about a day alongside doing other things.

@sregg Just to mention we use the "Adjust BuildNumber" step to += 640, as we use it for versionCode and were auto-deploying from BB.

The key differences I found with Bitrise over BuddyBuild (aside from pretty much everything being GUI-based in BB) was to split up the Gradle build into multiple steps. BuddyBuild would (possibly more efficiently) build everything you'd ask for and then pull out the relevant stuff for say deployment emails or publishing to Play Store, with Bitrise you have a couple of choices that I could see: 1. split it up into multiple Build/Gradle steps, e.g. for UI/Android Tests, for your test builds [2x3=6 variants for us], one for your App/Play Store deployment artefacts, with some cleanup steps between (e.g. I change the deploy folder after to prevent emails going out where filters didn't suffice)... or 2. be comfortable with bash script and have a script step that splits up the pipe-map ENV variables so they can be used more easily in later steps.

It would also be nice to have more examples, setting the slack messages to include something like the ones that BB sent by default for e.g. it's nice to be able to customise but generally we just want to be back to writing code.

The other would be features we weren't using, tester management (we use Play Store Alpha and TestFlight), and shake for crash / crash logger (we prefer Firebase).

One of the features that is really cool is being able to not just view and edit your workflow as a .yml file, but download and run that locally with the CLI.

To be honest it's a lot more work than we were used to, that's the point in paying monthly right? But it's pretty much a one-time thing and the bonus is extra customisability. All in all though it's doing the job very well, and for a good price. I'm happy with this switch. I'm sure CircleCI is good too (we use that for our back-end).

orta commented 6 years ago

It's also worth noting, bitrise's entire infra is OSS - https://github.com/bitrise-io/bitrise.io

viktorbenei commented 6 years ago

Thanks @richardleggett for the feedback, I'll discuss this with the team!

Especially the Slack one - I think that's long overdue now to have a "fancier" (more useful) default message there, instead of requiring you to create your "dream" msg right after dropping in the step the first time. Flexibility is important, but so is the default value / setup experience (and speed). You can tweak the message after that anyway, so there's no issue with making the default more verbose.

Gradle: will discuss it with the tooling team as well, thanks for highlighting!

rnystrom commented 6 years ago

I've been kicking the can on this (slowly increasing my anxiety). Wanted to link to this blog post exploring alternatives in case there's any more info there.

I want to spend some time w/ @orta and @krausefx while in town to discuss my "north star" vision for automating this project (beyond just CI). Will report back once I muster the energy to actually work on this.

BasThomas commented 6 years ago

Thanks for the update on this @rnystrom. I feel you. πŸ˜•

viktorbenei commented 6 years ago

@rnystrom thanks for the blog post and sorry to hear you had troubles with setting up the distribution on bitrise. Not sure if you saw it but we now have built in Auto Provisioning for code signing, which once configured can manage the the iOS signing files for you automatically: https://blog.bitrise.io/ios-auto-provision-step

Anyway, just wanted to say thanks for trying out bitrise, and to let you know we're always happy to help, in case you'd give another try to bitrise. Feel free to ping me anywhere, e.g. on our Slack (http://chat.bitrise.io).

Sherlouk commented 6 years ago

@viktorbenei For what it's worth, that isn't Ryan's blog post!

viktorbenei commented 6 years ago

Ouch, my bad, it's still quite early in the morning here πŸ˜… Sorry gents and thanks @Sherlouk !

rnystrom commented 6 years ago

Actually kicked off a Bitrise job last night. Will report back!

Sent with GitHawk

rnystrom commented 6 years ago

Bitrise build is green! Just as easy to setup as BB. I think we have a winner.

Sent with GitHawk

viktorbenei commented 6 years ago

Glad to hear @rnystrom ! :)

Indeed, initial setup should be quite smooth, similar to BB. The main difference is the configuration UI after that. BB's approach was to provide a simple UI, which implies that certain things might not be possible / can not be changed, while we focused mainly on flexibility, to let you specify every aspect of the process if you like (but this comes with a certain complexity & steeper learning curve). We know that this learning curve might be too much especially for hobby projects and we're working on improving it; quite a few things planned for this year to make deploy etc. configs easier ;)

dkhamsing commented 6 years ago

https://appcenter.ms seems promising

rnystrom commented 6 years ago

In the name of transparency, here's where we are at the moment: I have both Bitrise and App Center CI building GitHawk. Both services are pretty easy to use, so I want to try out using both to deliver several beta builds and a single App Store build, documenting my process.

Here are my initial thoughts

Bitrise

Pros

Cons

App Center

Pros

Cons

viktorbenei commented 6 years ago

Thanks for sharing @rnystrom ! Just one correction, the web service component of bitrise is not open source, so it's not possible to self-host the API & web UI (yet ;)). All the tools used for running the configuration (the workflow editor, the runner CLI, ...) are open source, so you can download the build config and run it on your own Mac (or on any Mac/Linux), similar to fastlane.

Just a question, for the sake of comparison

Bitrise: Cons: No open source free plan (yet)

Does AppCenter have an open source plan? Might have missed it, AFAIK they don't have one either. I'm really just curious as couldn't find anything related on appcenter's website.

BasThomas commented 6 years ago

No GitHub status integration

That's a big ☹️

rnystrom commented 6 years ago

@viktorbenei will update! Not yet either

Sent with GitHawk

ElektrojungeAtWork commented 6 years ago

Hey folks,

Thx for the feedback and the comparison. I like that and our PMs are looking at this thread.

Automated deployment tbd (confirmed its coming)

We're currently working hard on making Distribution better. Stay tuned.

Does AppCenter have an open source plan? Might have missed it, AFAIK they don't have one either. I'm really just curious as couldn't find anything related on appcenter's website.

We don't have an OSS plan, yet.

Cheers everyone and have a good weekend!

KrauseFx commented 6 years ago

This might be relevant now https://github.com/fastlane/ci πŸ‘

freak4pc commented 6 years ago

@KrauseFx I've seen this and I'm so stoked about it.

Why ask for features if us as a community can build them ? Plus, Google backing this? couldn't ask for much more.

Really looking forward to contributing code to this as it progresses and applying it to our workflow as it matures.

Thanks for everything you guys are doing for the community !

rnystrom commented 6 years ago

@KrauseFx player 3 has entered the game

Sent with GitHawk

orta commented 6 years ago

lolz

dkhamsing commented 6 years ago

I don’t think app center supports per commit [ci skip] like syntax

ElektrojungeAtWork commented 6 years ago

@dkhamsing unfortunately not (yet).

jogu commented 6 years ago

One real plus for buddybuild that I loved was the way they show before/after/diffs in the test results if an FBSnapshotTestCase unit test produced an unexpected image.

Does anyone know if any of these other systems have a similar feature?

dkhamsing commented 6 years ago

Does App Center support building from a pull request?? I’m very confused cc @TroubleMakerBen

rnystrom commented 6 years ago

@dkhamsing it does!

edit: never mind πŸ™Š

Sent with GitHawk

ElektrojungeAtWork commented 6 years ago

@dkhamsing App Center supports build on PUSH, but not build on PR (build on merge), yet.

dkhamsing commented 6 years ago

Ah I see. Thx Ryan, Ben 😊

Sent with GitHawk

acristescu commented 6 years ago

After reading this thread it does seem to be a two-horse race: Bitrise and App Center. Yet nobody has touched on the subject of UI tests: I loved how in BB, with just a few clicks, you could run espresso tests on a virtual device. Does any of the two platforms under discussion support this?