You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@uima.apache.org by Marshall Schor <ms...@schor.com> on 2017/01/17 17:39:21 UTC

Jenkins support for C++ builds, standard dependent components?

Hi,

We have part of our project that is in C++.  We're looking into a Jenkins job
for CI for it. 

It requires as prerequisites: Apache APR, ICU, Xerces, and maybe some other
somewhat standard components.

When building on private machines, the technique is to obtain these by either
installing prebuilt versions, or first "building" these, more or less as a one
time operation (repeated sometimes when toolchain levels change).

What's the best practice on Apache Jenkins?  Are there a group of machines where
somewhat standard packages like the above are installed (at various versions)?
If so, is there a standard naming of these to find them?  If not, should each
build do its own build of these components, every time the build runs?

Thanks. -Marshall Schor (Apache UIMA project)


Re: Jenkins support for C++ builds, standard dependent components?

Posted by Roberto Carlos Toledano Gómez <rc...@gmail.com>.
Yes, is convenient solution but:

if in my jenkins job i select the H10 and H18 node label(
https://cwiki.apache.org/confluence/display/INFRA/Jenkins+node+labels) and
in my SCM project, for enviroment setup,  i have Dockerfile like this:

FROM <DOOCKER IMAGE ID>
USER root
RUN apt-get -y install libxerces-c-dev default-jdk libapr1-dev
USER jenkins

in the apache jenkins enviroment what <DOOCKER IMAGE ID> i must use?

--Regards--




2017-01-17 12:43 GMT-05:00 Roman Shaposhnik <ro...@shaposhnik.org>:

> On Tue, Jan 17, 2017 at 9:39 AM, Marshall Schor <ms...@schor.com> wrote:
> > Hi,
> >
> > We have part of our project that is in C++.  We're looking into a
> Jenkins job
> > for CI for it.
> >
> > It requires as prerequisites: Apache APR, ICU, Xerces, and maybe some
> other
> > somewhat standard components.
> >
> > When building on private machines, the technique is to obtain these by
> either
> > installing prebuilt versions, or first "building" these, more or less as
> a one
> > time operation (repeated sometimes when toolchain levels change).
> >
> > What's the best practice on Apache Jenkins?  Are there a group of
> machines where
> > somewhat standard packages like the above are installed (at various
> versions)?
> > If so, is there a standard naming of these to find them?  If not, should
> each
> > build do its own build of these components, every time the build runs?
>
> Personally, I've recommended and used Docker containers as a way to capture
> the build environment to a great deal of success. The bonus points is that
> it
> also gives a 100% reproducible build environment to your community. Which
> means
> no longer having "but it builds on my machine!" arguments.
>
> Thanks,
> Roman.
>

Re: Jenkins support for C++ builds, standard dependent components?

Posted by Roman Shaposhnik <ro...@shaposhnik.org>.
On Tue, Jan 17, 2017 at 9:39 AM, Marshall Schor <ms...@schor.com> wrote:
> Hi,
>
> We have part of our project that is in C++.  We're looking into a Jenkins job
> for CI for it.
>
> It requires as prerequisites: Apache APR, ICU, Xerces, and maybe some other
> somewhat standard components.
>
> When building on private machines, the technique is to obtain these by either
> installing prebuilt versions, or first "building" these, more or less as a one
> time operation (repeated sometimes when toolchain levels change).
>
> What's the best practice on Apache Jenkins?  Are there a group of machines where
> somewhat standard packages like the above are installed (at various versions)?
> If so, is there a standard naming of these to find them?  If not, should each
> build do its own build of these components, every time the build runs?

Personally, I've recommended and used Docker containers as a way to capture
the build environment to a great deal of success. The bonus points is that it
also gives a 100% reproducible build environment to your community. Which means
no longer having "but it builds on my machine!" arguments.

Thanks,
Roman.

Re: Jenkins support for C++ builds, standard dependent components?

Posted by Roman Shaposhnik <ro...@shaposhnik.org>.
On Tue, Jan 17, 2017 at 9:39 AM, Marshall Schor <ms...@schor.com> wrote:
> Hi,
>
> We have part of our project that is in C++.  We're looking into a Jenkins job
> for CI for it.
>
> It requires as prerequisites: Apache APR, ICU, Xerces, and maybe some other
> somewhat standard components.
>
> When building on private machines, the technique is to obtain these by either
> installing prebuilt versions, or first "building" these, more or less as a one
> time operation (repeated sometimes when toolchain levels change).
>
> What's the best practice on Apache Jenkins?  Are there a group of machines where
> somewhat standard packages like the above are installed (at various versions)?
> If so, is there a standard naming of these to find them?  If not, should each
> build do its own build of these components, every time the build runs?

Personally, I've recommended and used Docker containers as a way to capture
the build environment to a great deal of success. The bonus points is that it
also gives a 100% reproducible build environment to your community. Which means
no longer having "but it builds on my machine!" arguments.

Thanks,
Roman.