[Bioperl-l] Travis CI build improvements
Zakariyya Mughal
zaki.mughal at gmail.com
Fri Apr 21 05:42:25 UTC 2017
On 2017-04-20 at 21:12:20 +0000, Fields, Christopher J wrote:
> On 4/20/17, 3:00 PM, "Zakariyya Mughal" <zaki.mughal at gmail.com> wrote:
>
> On 2017-04-18 at 15:24:25 +0100, Peter Cock wrote:
> > On Tue, Apr 18, 2017 at 2:39 PM, Fields, Christopher J
> > <cjfields at illinois.edu> wrote:
> > > On Mon, Apr 17, 2017 at 6:50 PM, Zakariyya Mughal <zaki.mughal at gmail.com> wrote:
> > > …
> > > > As for the tests that require the network or optional dependencies, it
> > > > is possible to enable different builds conditionally. I believe the best
> > > > approach for the ones that require networking would be to create a
> > > > special branch that enables those tests. This branch can just be rebased
> > > > off the current master branch whenever a new release is uploaded.
> > > >
> > > > Regards,
> > > > - Zakariyya Mughal
> > >
> > > That's an interesting idea about running the online tests only on
> > > specific branches. Biopython tries to run our online tests weekly
> > > via buildbot, and this is part of our (time consuming) release
> > > process (final run of full test suite on the release manager's own
> > > machines).
> > >
> > > Peter
> > >
> > > We did this with the 1.6.x branch for a while, as it was diverging more
> > > and more from the master branch (this was also at a point where we
> > > started cleaving out none-core-like modules) but we wanted to keep
> > > testing it. IIRC we can also set up travis to run with specific env.
> > > variables on or off for a particular environment, which can then be
> > > used to trigger additional optional tests (similar in respects to Dist::Zilla’s
> > > release-only or author tests). The downside is this would be triggered
> > > every commit, which we don’t really want. So, using a branch is a
> > > much simpler, elegant solution (test only upon merge).
> > >
> > > chris
> >
> > There is also the new cron option in TravisCI, which might be useful
> > here - e.g. set a weekly TravisCI job and use the environment
> > variable $TRAVIS_EVENT_TYPE == 'cron' as a flag to trigger
> > the full test mode rather than off-line only tests.
> >
> > https://docs.travis-ci.com/user/cron-jobs/
> > https://github.com/travis-ci/beta-features/issues/1
> >
> > As a downside this could make coverage plots harder to interpret
> > as some commits should get higher coverage than others...
> >
> > Peter
>
> I could give this a try. If the cron builds are only run on a single
> branch, then only looking at that single branch should remain consistent
> modulo any network outages.
>
> Cheers,
> - Zaki Mughal
>
> That works for me, and if anything it could help raise a flag with modules relying on remote services that go away (this has been a pretty common issue)
I have opened an issue with proposed changes that will make this
possible <https://github.com/bioperl/bioperl-live/issues/224>.
The cron job detects when it is being run as a cron job on a specific
branch (`network-cron-master`) and then tests the code from the
bioperl-live `master` branch.
Cheers,
- Zaki Mughal
>
> chris
>
More information about the Bioperl-l
mailing list