Subject: Re: [PATCH] travis-ci: no longer use containers

From: SZEDER Gábor <[email-masked]>
Date: Fri, 26 Oct 2018 03:39:49 +0200

On Fri, Oct 26, 2018 at 09:09:48AM +0900, Junio C Hamano wrote:
> Sebastian Staudt <[email-masked]> writes:
> 
> > Travis CI will soon deprecate the container-based infrastructure
> > enabled by `sudo: false` in ce59dffb34190e780be2fa9f449f842cadee9753.
> >
> > More info:
> > https://blog.travis-ci.com/2018-10-04-combining-linux-infrastructures
> 
> Thanks for posting a patch that would serve as a good discussion
> starter.  This is not a criticism on your patch, but more is a RFD
> to those who helped our use of Travis by contributing to .travis.yml
> and ci/.
> 
> Don't we need to do some other things so that we can run in vm
> environment, rather than in container environment, before doing this
> change?  IOW, aren't we doing in .travis.yml something we can do
> only in container but not in vm (if there is any), and if so,
> shouldn't we be rewriting that something so that we can run in vm?

As far as I understand, the container-based infrastructure has only
one benefit over the VMs, the shorter startup time.

OTOH, in VMs we can use sudo, which is not available in the
container-based intra.  This has the benefit that after switching to
VMs, we'll be able to install packages by running 'sudo apt-get
install ...'.  Currently the necessary packages are listed in
'.travis.yml' for Travis CI, while for Azure the whole install command
is embedded in '.azure....yml'.  After the switch we could consolidate
installing packages by 'sudo apt-get...' in
'ci/install-dependencies.sh' for both.

> I know ce59dffb ("travis-ci: explicity use container-based
> infrastructure", 2016-01-26) only added "sudo: false" without doing
> anything else (e.g. adding things that are only available to those
> who run in container), but if we added stuff that are not usable in
> vm environment after that commit since then, we need to adjust them
> so that we can migrate to the container-based environment, no?
> 
> To me, removing that "sudo: false" line seems like the least thing
> we need to worry about.  After all, they say that whether we have
> "sudo: false" or not, the CI jobs will start running in vm
> environment and not in container.  So if the rest of .travis.yml is
> ready to run in vm environment, we do not have to do anything ;-).
> 
> In short, my question to Lars and SZEDER is, are we already prepared
> to be thrown into a vm environment?

I think we are.  I've run only two builds with this patch, and they
run smoothly and finished successfully.  After you update 'pu' I'll
run more.

> If the answer is "yes", then I think removing "sudo: false" is
> probably still a good thing to do for documentation purposes
> (i.e. showing that we knew we are ready to go through their
> migration).

I agree.

> > Signed-off-by: Sebastian Staudt <[email-masked]>
> > ---
> >  .travis.yml | 2 --
> >  1 file changed, 2 deletions(-)
> >
> > diff --git a/.travis.yml b/.travis.yml
> > index 4d4e26c9df..8d2499739e 100644
> > --- a/.travis.yml
> > +++ b/.travis.yml
> > @@ -1,7 +1,5 @@
> >  language: c
> >
> > -sudo: false
> > -
> >  cache:
> >    directories:
> >      - $HOME/travis-cache
> > --
> > 2.19.1