Repository navigation
TST: GitHub Actions as CI - #10388
Conversation
This comment has been minimized.
This comment has been minimized.
|
The GH account integration with pipelines has improved a lot in the last few months. |
| # Full tests with coverage checks. | ||
| coverage_test: | ||
| runs-on: ubuntu-latest | ||
| needs: [code_style, initial_tests] |
There was a problem hiding this comment.
I think we could try and keep things simple and not worry about replicating stages for now - we could have a single jobs section with an include matrix?
There was a problem hiding this comment.
Instead of stages I think we could rely on Actions' fast-fail functionality (default) which means that all jobs stop if one fail. In practice this means if e.g. code style fails it won't waste time on longer builds for example.
There was a problem hiding this comment.
Up to you. I was just trying to recreate what we had at the time.
There was a problem hiding this comment.
I think the issue is that the stages makes everything much more verbose. I think I would prefer if we could make things more concise and avoid repetition and then decide if adding stages back are worth it?
| # The following is needed to avoid issues if e.g. Matplotlib tries | ||
| # to open a GUI window. | ||
| env: | ||
| SETUP_XVFB: True |
There was a problem hiding this comment.
I think this was a ci-helpers thing
There was a problem hiding this comment.
Yeah, this PR been open for a while and probably need upgrades.
f16755d to
d0c1f0f
Compare
|
@pllim - since there was a conflict, and to pick up the fact actions now works in PRs, I took the liberty of rebasing this and removing the temporary commit. I also added a commit which simplifies the configuration a lot by getting rid of the stages (this reduces a lot of configuration duplication). Once we are happy with the config, we could change |
|
One thing we should decide is how to handle allowed failures - since each job appears as one entry here maybe we don't actually need to replicate this functionality, and that way remote data and numpy dev failures won't be hidden away but are also easy to ignore. |
c26031d to
3255b7b
Compare
913de6f to
41afca2
Compare
|
I've also now copied over most cron jobs, except the arm and s390x arch ones which I can do a follow up PR for later. I made a separate file for cron otherwise it gets a bit messy to skip some jobs and not others for cron and I haven't found a way to hide them in pull requests then. I've also added a TMP commit to enable cron builds here so we can check they run. |
|
The main thing I haven't implemented is the use of clang which was specified in the Travis file for some jobs. Is that actually something we want/need? We could get rid of that and just make the MacOS X build be non-cron which would then by default use clang? @Cadair - you could always push your changes here to move the image tests away from CircleCI? |
|
As far as i can tell actions artifacts aren't up to it. I suggest we just leave circle for now and focus on killing off Travis. |
|
Ok so looking at the failures for now:
|
542d24b to
1f0043b
Compare
|
Re-clang: yes I think we had clang on linux because the macos queue on Travis was too slow. So if we can have a macos job by default, we don't need clang on linux. |
|
@saimn - ok let's do that. The MacOS X builds start up pretty quickly on Actions. |
966df97 to
f0d7cd0
Compare
f0d7cd0 to
a7e7500
Compare
| @@ -1,4 +1,4 @@ | |||
| name: Run tests | |||
| name: CI | |||
There was a problem hiding this comment.
Note: This name has to match what is on README
[ci skip]
b5e87d3 to
dc0c21b
Compare
bsipocz
left a comment
There was a problem hiding this comment.
minor comments only, no need to address them here, they are just thought for the follow-up.
| on: | ||
| schedule: | ||
| # run every Monday at 6am UTC | ||
| - cron: '0 6 * * 1' |
There was a problem hiding this comment.
is this frequent enough? We used to run cron jobs daily.
There was a problem hiding this comment.
Good point. We can follow up as separate PR.
| ======= | ||
|
|
||
| |Travis Status| |CircleCI Status| |Coverage Status| |PyPI Status| |Documentation Status| | ||
| |Actions Status| |CircleCI Status| |Coverage Status| |PyPI Status| |Documentation Status| |
There was a problem hiding this comment.
travis isn't completely removed yet, so maybe keep both?
There was a problem hiding this comment.
It doesn't run no more. We can add it back if we decide to pay.
There was a problem hiding this comment.
ok, indeed. I only said it based on that the config remained.
|
🎉 |
|
Nice work! 🎉 |
|
I've added this to the backport as a first step of getting #11050 addressed, and to get some CI on the 4.2.x branch. I'm certain that more backports and/or fine-tuning will be necessary (cleaning up cron as that is not run on non-master branches, etc., adding back 3.6 testing, etc.), but still getting this is superb for now. |

Update: Due to Travis CI changes in pricing, we decided to push ahead with this as soon as we have a minimal viable product. We will fix the rest of the jobs in follow-up PRs.
This is a small proof-of-concept of using GitHub Actions as CI. Might expand if there is buy-in, or abandon if there isn't.Pros
Cons
[skip ci]to skip all the other CIs and only run Actions. (Har har...)ccache? If there is one, it is not documented.CI jobs and features to implement (please check off if done)
From
.travis.yml:ccacheand.hypothesis.pytestconditions in test modules usingTRAVISenv var.-v --develop,--durations=50,clang)--open-files)--remote-data=astropy,LC_CTYPE=C.ascii,LC_ALL=C) -- needcodecovtoken--remote-data=any) -- allowed to failclang,--remote-data=astropy)3.9-dev,--durations=50,clang)arch: s390x,ASTROPY_USE_SYSTEM_ALL=1) (@astrofrog will do in a follow-up PR)arch: arm64,ASTROPY_USE_SYSTEM_ALL=1) (@astrofrog will do in a follow-up PR)From
.circleci/config.yml:astropy.cfg, Python 3.7-n=4 --durations=50, Python 3.8py38-test-double)image-tests-mpl302image-tests-mpl310image-tests-mpldevFrom
azure-piplines.yml:TODO
--open-filesback to a newer job in future PR.Possible links of interest
Thanks to everyone who provided these resources: