Instagram / IGListKit

A data-driven UICollectionView framework for building fast and flexible lists.
https://instagram.github.io/IGListKit/
MIT License
12.88k stars 1.54k forks source link

CI Improvements #1395

Open koenpunt opened 4 years ago

koenpunt commented 4 years ago

The current CI configuration doesn't run the tests for all of the different platforms; it doesn't run tests for tvOS, it only builds the example application.

Running the tvOS tests locally from Xcode actually results in failures.

So I'd like to suggest to make the CI setup complete by fixing the tests for all platforms, and to run them all on CI.

Additionally, as suggested earlier in a comment, I'd see benefit in using a different CI provider than Travis, because Travis is slow (a lint run with cached dependencies on Travis takes over 5 minutes, on GitHub Actions, without cache takes little over 3).

I did mention GitHub Actions, but I've just found out they only provide Xcode 11, which might be an issue, since the current suite runs with Xcode 10. CircleCI however does have Xcode 10. With a move from Travis to CircleCI the project wouldn't be the first; the React Native project migrated to CircleCI a long time ago already.

WDYT?

lorixx commented 4 years ago

Running the tvOS tests locally from Xcode actually results in failures.

good catch! I think the tvOS example def needs some love. Interested to learn more on the CircleCI stuff, is it faster than the Travis? I should at the very least, we should start looking into fixing the broken tvOS tests and use CI to run them for PRs, thanks for the suggestion here! cc @natestedman @bdotdub @Ziewvater @iperry90 too

Ziewvater commented 4 years ago

How important is Xcode 10 support for us going forward? Xcode version support != iOS version support. Seems to me like we could probably get away with Github Actions if we wanted to.

The fact that other teams at FB have been using CircleCI probably means there's better internal support for it though, I'm going to look into that

koenpunt commented 4 years ago

For reference; I already experimented a bit with GitHub actions on my fork (where you can see it failing because of an invalid destination, which is not present with Xcode 11); https://github.com/koenpunt/IGListKit/pull/1

But now that I mention it, it might actually be possible to pull in additional simulators if necessary.

koenpunt commented 4 years ago

But now that I mention it, it might actually be possible to pull in additional simulators if necessary.

It is possible to create additional simulator configurations, but we're still limited in SDK versions.

I've now also played around with a configuration for CircleCI, but there the problems is that I can't really test, since macOS runners are not enabled by default.

lorixx commented 4 years ago

Hi @koenpunt , thanks again for flagging this issue! I think I can def feel the pain points for the queue time gets long whenever publishing new PRs.

What's your evaluation on the approaches here? github Action vs. CircleCI? iiuc, u mentioned that CircleCI is not free and would require to pay in order to support macOS? whereas github Action is free, but doesn't have Xcode 10 support, am I right?

Thanks!