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

Reconsider CI providers - switch to GitHub Actions #612

Closed
3 of 7 tasks
breznak opened this issue Aug 8, 2019 · 16 comments · Fixed by #688
Closed
3 of 7 tasks

Reconsider CI providers - switch to GitHub Actions #612

breznak opened this issue Aug 8, 2019 · 16 comments · Fixed by #688
Assignees
Labels
high question Further information is requested tooling
Milestone

Comments

@breznak
Copy link
Member

breznak commented Aug 8, 2019

The CircleCI for OSX was not running. First I thought it might be something with a former PR I merged: #597 , as the errors appeared around that time.

The thing we need to resolve is not in the code, but with CircleCI provider:

Next steps:

  • we merge PRs without the OSX CI checks for now, to not disrupt the developer workflow
    • potential errors will be ironed out later when OSX is reenabled
  • @breznak speaks with Circle support
    • Circle representative was very nice, said it's an err on their (automated) side, and re-enabled us. OSX CI now running 🐎
  • @brev is the ARM is a docker build, would it be possible to move to another CI (Travis?)
    • funny we got triggered "abusive" after you've reduced the build-time

FYI @ctrl-z-9000-times @dkeeney

EDIT:
reconsider consolidating to a single CI (which supports all platforms: Linux, OSX, Windows, Docker)

@breznak breznak self-assigned this Aug 8, 2019
@breznak
Copy link
Member Author

breznak commented Aug 8, 2019

@brev
Copy link

brev commented Aug 8, 2019

Investigating alternative docker build services now.

@breznak
Copy link
Member Author

breznak commented Aug 8, 2019

Investigating alternative docker build services now.

👍 thanks! It's not definitive, I haven't heard from Circle yet, (but I'm expecting it'll end up so)

@brev
Copy link

brev commented Aug 9, 2019

Both AppVeyor and Travis CI seem to support arm64 Linux Docker builds:

And, GitHub just announced their own CI today:

@breznak
Copy link
Member Author

breznak commented Aug 9, 2019

And, GitHub just announced their own CI today

wow, just in time! 😃
Would be worth a try. Nowhere I found what HW (speed) it will offer. And how many "threads" would the free options get? Ideally we would like to move to a single CI provider, but the reason why we have a different for each OS is that the builds did not run in parallel but rather we had to wait until one finished (say Win) before another started (OSX), that made the CI runtime unconveniently longer.

@breznak
Copy link
Member Author

breznak commented Aug 9, 2019

Edited: Travis now also should be able to run on all platforms: https://docs.travis-ci.com/user/reference/overview/

@breznak breznak changed the title OSX CI on CircleCI not running OSX CI on CircleCI not running, reconsider CI providers Aug 9, 2019
@breznak breznak added this to the Repo setup milestone Aug 9, 2019
@breznak breznak added question Further information is requested and removed high labels Aug 9, 2019
@breznak
Copy link
Member Author

breznak commented Aug 9, 2019

Just got reply from CircleCI, they were pretty nice, said it was an err on their side and we're back in business again. OSX CI running.

Will leave this issue open for discussion of trying the GH provider, or consolidating to just one. Otherwise, this is resolved and can be closed.

@dkeeney
Copy link

dkeeney commented Aug 9, 2019

Really good news. I was sure I was the one that was doing something wrong that got us kicked out.

We should still be careful not to re-submit a build until a previous build is completed. I would think it should immediately kill the previous build but I am not sure that is the case. Does anyone know if that is a problem?

@breznak
Copy link
Member Author

breznak commented Aug 9, 2019

I was sure I was the one that was doing something wrong that got us kicked out.

no worries, we develop a brain, needs some energy to burn 🚀

We should still be careful not to re-submit a build until a previous build is completed.

it's not a problem, subsequent pushes etc to an open PR kill any prev running CI build, all the CI should be setup for maximum time & energy efficiency.

A word on that, I noticed Win CI is quite slow, is there something fishy going on, or could it be optimized? (Linux runs ~20 mins, Win ~40), is it building in both Release & Debug modes on MSVC?

@dkeeney
Copy link

dkeeney commented Aug 10, 2019

is it building in both Release & Debug modes on MSVC?

Well, only the dependencies are built in both Release and Debug modes but it IS getting built twice. I was investigating that this morning and discovered that if the the initial CMake does not include the BINDING_BUILD option setting that matches the python being used then it will build the library again when python setup.py install is executed. But, python setup.py install does not seem to allow setting the generator to use and for windows we need that.

So, I am modifying setup.py to allow specifying the generator.

@breznak
Copy link
Member Author

breznak commented Aug 10, 2019

it will build the library again when python setup.py install is executed. But, python setup.py install does not seem to allow setting the generator to use and for windows we need that.

yes, this is another problem. And I'll be really glad if that's resolved. Say you have the htm.core c++ compiled. Only making changes to the python code (in /py/) , one then needs to run setup-py, but instead if being instant, it runs again linking all the htm.core.

@dkeeney
Copy link

dkeeney commented Aug 10, 2019

Well.... with py code only changes ... we still need to build the library. But if we checkin the library binary then we could bypass the library build. I will have to think about that.

The fixes I am making now is to avoid building the library twice for each pr build.

@breznak breznak mentioned this issue Aug 12, 2019
13 tasks
@breznak breznak changed the title OSX CI on CircleCI not running, reconsider CI providers Reconsider CI providers Sep 18, 2019
@breznak
Copy link
Member Author

breznak commented Sep 18, 2019

🎉 we've been selected to Github Actions (=GH's CI) beta!

I'm really excited about the current (free) limits:
https://help.github.com/en/articles/workflow-syntax-for-github-actions#usage-limits

Let me know what you think and if it'd be worthwhile transfering our CI to this service.
See for yourselves "Actions" tab in this repo on GH (next to Pulls)

@dkeeney
Copy link

dkeeney commented Sep 18, 2019

This does look interesting. It would solve our deployment problems if it works.
I want to finish my Yaml PR before I look into this further. But feel free to set it up.

@dkeeney
Copy link

dkeeney commented Sep 25, 2019

@dkeeney could you please have a look at the failing test in Debug mode?
testCppLinkingFanIn sometimes caused problems even locally, but in the CI it's now consistent.

Sure,

@breznak
Copy link
Member Author

breznak commented Sep 26, 2019

Our main setup is now on GH Actions. I've deactivated the Web service hooks for other CI (Travis, CircleCI, AppVeyor) in github settings. So those don't run uselessly, but are still available and set-up in case we decide to switch back.
Later, when the switch is definite, remove access tokens and permissions for those CIs.

@breznak breznak changed the title Reconsider CI providers Reconsider CI providers - switch to GitHub Actions Sep 26, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
high question Further information is requested tooling
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants