[PIPE2D-83] Use Travis-CI as a regression test Created: 20/Sep/16 Updated: 01/Dec/16 Resolved: 01/Dec/16 |
|
| Status: | Done |
| Project: | DRP 2-D Pipeline |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | swinbank | Assignee: | price |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||
| Reviewers: | swinbank | ||||||||||||
| Description |
|
rhl has scripted up the instructions from NB we're just checking execution here, not for the validity of the output. |
| Comments |
| Comment by price [ 29/Nov/16 ] |
|
swinbank, would you please review this? There are changes to all four packages (datamodel, obs_pfs, drp_stella_data and drp_stella), but these changes are all identical and consist solely of the machinery necessary to checkout and use the new pipe2d package under Travis. The reason for this approach is so that we can do more of an integration test (testing that all packages work together and the tutorial isn't broken) rather than just unit testing (testing that a single package works). The down side is that if there are changes in multiple packages, what is essentially the same test will fire multiple times (one for each package); I don't know how to get around that, and I hope that it won't be a problem because we have a small number of packages. To further reduce the load on Travis, I have push testing disabled, and only trigger testing on pull requests. Travis limits the log file to 4 MB so I have to trap the regular output in the course of the build and only display the last 100 lines of that output when done. This means there isn't a clear indicator of build progress, but in my experience each test takes around 30 minutes; most of this appears to be build time (I'm hoping we can reduce it by simplifying drp_stella). The pipe2d package is in the process of being moved ( |
| Comment by swinbank [ 29/Nov/16 ] |
|
Comments on PaulPrice/pipe2d PR#1. I don't think further comments on the other repositories are necessary. Most of my comments on the implementation are minor. However, either I've misunderstood something (quite possible!) or you aren't setting up the relevant branch to be tested properly: I reckon you need to add a $BRANCH false to line 184 of bin/install_pfs.sh. Beyond that, my main concern is regarding how to actually use this in practice. I think I'm right in saying that it'll trigger on every PR. Does it follow that if I make a ticket branch in drp_stella, PR it, then push a corresponding branch to obs_pfs, the drp_stella test will run without the obs_pfs branch? If so, I don't think that's a disaster, but I do think it needs documentation and procedure. Building on that, it'd be helpful to add a note to http://pfs-2d-pipeline.readthedocs.io describing:
You may be reluctant to define policy yourself (although I don't think you need be; I doubt anybody would really disagree): if you prefer open a ticket assigned to rhl or me to update the rules once the machinery is in place. |
| Comment by price [ 30/Nov/16 ] |
|
Some responses:
I've made a bunch of updates based on your comments that should appear on the PR soon. I'll update the docs. |
| Comment by price [ 30/Nov/16 ] |
|
I've updated the docs in drp_stella. Would you have a look please, swinbank?
price@price-laptop:~/PFS/drp_stella (tickets/PIPE2D-83=) $ git sub
commit b047328e86127f1349dd2e69bd5d308ecfd56e03
Author: Paul Price <price@astro.princeton.edu>
Date: Wed Nov 23 22:34:59 2016 -0500
gitignore: remove personal files
A repo .gitignore should contain only files that might appear
in the repo in the ordinary course of building or using the
package.
Files that are created because of individual user's workflows
should be ignored through ~/.gitignore .
.gitignore | 54 ------------------------------------------------------
1 file changed, 54 deletions(-)
commit d552734948bb445ce6d644c13507b8f8fa3f21f0
Author: Paul Price <price@astro.princeton.edu>
Date: Wed Nov 23 22:44:07 2016 -0500
Enable Travis-CI
.travis.yml | 28 ++++++++++++++++++++++++++++
travis.sh | 25 +++++++++++++++++++++++++
2 files changed, 53 insertions(+)
commit ad3d23efeff5d2161265dac61c2ff1ab3478c5e1
Author: Paul Price <price@astro.princeton.edu>
Date: Tue Nov 29 16:18:35 2016 -0500
update docs to include pipe2d
We now have a script-based install and Travis.
[ci skip]
sphinx/dev/best_practice.rst | 83 +++++++++++++++++++++++++++++++++++++++-
sphinx/index.rst | 16 ++++++--
sphinx/maintainer/maintainer.rst | 47 +++++++++++++++++++++++
sphinx/user/getting_started.rst | 65 +++++++++++++++++++++++++++++--
4 files changed, 203 insertions(+), 8 deletions(-)
commit 53ebfe09dd662a4a233a5e298468463016e2ae91
Author: Paul Price <price@astro.princeton.edu>
Date: Tue Nov 29 18:56:46 2016 -0500
gitignore: add Sphinx-generated dir
.gitignore | 1 +
1 file changed, 1 insertion(+)
|
| Comment by price [ 30/Nov/16 ] |
|
Note to self: I need to upgrade the .travis.yml files in the various subordinate packages.... Done! |
| Comment by swinbank [ 01/Dec/16 ] |
|
Updated docs look great! I added a few picky comments on the PR. A couple of broken links which obviously need fixing, but also some fussing about stylistic issues in the markup which you may ignore if you wish. I still think it's a little sad that it'll be easy to trigger Travis failures by PRing before you've pushed ticket branches to all the relevant repos, but I can't see a way around this, and I appreciate that you have documented it. Other than that, this is very nice. Thank you, and go ahead and merge when you're ready. |
| Comment by price [ 01/Dec/16 ] |
|
Thanks swinbank! I updated the docs following your comments. I agree about the requirement to push before PRing being a bit annoying. An alternative would be to require the developer to explicitly trigger a Travis run when ready (e.g., by creating a PR on the pfs_pipe2d repo with an empty commit or something; or have some script use the Travis API), but I think what I've done is preferable because those failures are visible and easily remedied, while explicit triggers are easily forgotten or missed. I'm in the process of updating things to use the new pfs_pipe2d repo (instead of my personal pipe2d repo), then I hope to merge. |
| Comment by price [ 01/Dec/16 ] |
|
I think this is good to go except for one thing: we're currently pointing the test to my personal GitHub version of obs_pfs because of concerns about disk space ( |
| Comment by price [ 01/Dec/16 ] |
|
Turns out it works without the reduced-size obs_pfs. Merged to master. I'm working on an e-mail to send around the group. |
| Comment by price [ 01/Dec/16 ] |
|