You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "John Sirois (JIRA)" <ji...@apache.org> on 2016/02/13 05:41:18 UTC

[jira] [Comment Edited] (THRIFT-3620) Cleanup and consolidate Thrift* jenkins jobs.

    [ https://issues.apache.org/jira/browse/THRIFT-3620?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15145795#comment-15145795 ] 

John Sirois edited comment on THRIFT-3620 at 2/13/16 4:41 AM:
--------------------------------------------------------------

I agree 100% on the ability for any contributor to enhance CI:
{noformat}
$ curl --netrc -sS https://builds.apache.org/job/Thrift-precommit/config.xml | xmllint -xpath //command -
<command>docker build -t thrift $WORKSPACE/build/docker/ubuntu
cat &lt;&lt; DOCKERFILE | docker build -t jenkins-thrift -

# A thrift image that adds jenkins job specific tools
FROM thrift

RUN apt-get update &amp;&amp; apt-get install -y \
  cppcheck \
  sloccount

DOCKERFILE
</command><command># TODO(John Sirois): Check the ci script into the repo and have that be the docker entrypoint.

docker run --rm -v $WORKSPACE:/thrift -w /thrift -t jenkins-thrift /bin/bash -exc '
sh bootstrap.sh
sloccount --duplicates --wide --details lib tutorial test &gt; sloccount.sc
cppcheck --error-exitcode=0 --force --xml lib/cpp/src/ lib/c_glib/src/ tutorial/cpp/ test/cpp/ 2&gt; cppcheck-result.xml
'</command><command># TODO(John Sirois): Check the ci script into the repo and have that be the docker entrypoint.

# NB: Hacks used: 
# 1.) --privileged is a hammer being used to get around issues like intermittent Haxe compile errors of the form:
#     ...
#     -I/usr/lib/haxe/lib/hxcpp/3,2,205/include -x c++ -frtti -Wno-invalid-offsetof ./src/thrift/test/TestMapMap_args.cpp -o/thrift/test/haxe/bin/obj/linux64-debug/9931a53a_TestMapMap_args.o
#     Error: /usr/lib/gcc/x86_64-linux-gnu/4.8/cc1plus: error while loading shared libraries: libcloog-isl.so.4: failed to map segment from shared object: Permission denied
#     Error: Build failed

docker run --privileged --rm -v $WORKSPACE:/thrift -w /thrift -t jenkins-thrift /bin/bash -exc '
sh bootstrap.sh
./configure
make check dist
ant -f lib/java/build.xml javadoc
'</command><command># TODO(John Sirois): Check the ci script into the repo and have that be the docker entrypoint.

# This is disabled due to a large number of failures in the matrix presently (2/9/2016).
# TODO(John Sirois): Fix or remove.
#docker run --rm -v $WORKSPACE:/thrift -w /thrift -t jenkins-thrift /bin/bash -exc '
#GOPATH=/thrift/test/go go install bin/...
#./test/test.py | tee test.log
#'</command>
{noformat}


was (Author: jsirois):
I'm agree 100% on the ability for any contributor to enhance CI:
{noformat}
$ curl --netrc -sS https://builds.apache.org/job/Thrift-precommit/config.xml | xmllint -xpath //command -
<command>docker build -t thrift $WORKSPACE/build/docker/ubuntu
cat &lt;&lt; DOCKERFILE | docker build -t jenkins-thrift -

# A thrift image that adds jenkins job specific tools
FROM thrift

RUN apt-get update &amp;&amp; apt-get install -y \
  cppcheck \
  sloccount

DOCKERFILE
</command><command># TODO(John Sirois): Check the ci script into the repo and have that be the docker entrypoint.

docker run --rm -v $WORKSPACE:/thrift -w /thrift -t jenkins-thrift /bin/bash -exc '
sh bootstrap.sh
sloccount --duplicates --wide --details lib tutorial test &gt; sloccount.sc
cppcheck --error-exitcode=0 --force --xml lib/cpp/src/ lib/c_glib/src/ tutorial/cpp/ test/cpp/ 2&gt; cppcheck-result.xml
'</command><command># TODO(John Sirois): Check the ci script into the repo and have that be the docker entrypoint.

# NB: Hacks used: 
# 1.) --privileged is a hammer being used to get around issues like intermittent Haxe compile errors of the form:
#     ...
#     -I/usr/lib/haxe/lib/hxcpp/3,2,205/include -x c++ -frtti -Wno-invalid-offsetof ./src/thrift/test/TestMapMap_args.cpp -o/thrift/test/haxe/bin/obj/linux64-debug/9931a53a_TestMapMap_args.o
#     Error: /usr/lib/gcc/x86_64-linux-gnu/4.8/cc1plus: error while loading shared libraries: libcloog-isl.so.4: failed to map segment from shared object: Permission denied
#     Error: Build failed

docker run --privileged --rm -v $WORKSPACE:/thrift -w /thrift -t jenkins-thrift /bin/bash -exc '
sh bootstrap.sh
./configure
make check dist
ant -f lib/java/build.xml javadoc
'</command><command># TODO(John Sirois): Check the ci script into the repo and have that be the docker entrypoint.

# This is disabled due to a large number of failures in the matrix presently (2/9/2016).
# TODO(John Sirois): Fix or remove.
#docker run --rm -v $WORKSPACE:/thrift -w /thrift -t jenkins-thrift /bin/bash -exc '
#GOPATH=/thrift/test/go go install bin/...
#./test/test.py | tee test.log
#'</command>
{noformat}

> Cleanup and consolidate Thrift* jenkins jobs.
> ---------------------------------------------
>
>                 Key: THRIFT-3620
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3620
>             Project: Thrift
>          Issue Type: Task
>          Components: Test Suite
>            Reporter: John Sirois
>            Assignee: John Sirois
>
> I spent some time resurrecting the [Thrift-precommit|https://builds.apache.org/job/Thrift-precommit/] job which vets pull-requests to use the pool of docker slaves using a dockerized CI with guidance from [~jfarrell].  The remaining crop of Thrift* jobs should be culled and converted as appropriate.
> Currently we have the jobs [here|https://builds.apache.org/view/S-Z/view/Thrift/]:
> {noformat}
> $ curl --netrc -sS https://builds.apache.org/view/S-Z/view/Thrift/config.xml | xmllint -xpath "//jobNames" - | grep "<string>" | cut -d'>' -f2 | cut -d'<' -f1
> Thrift
> Thrift-all
> Thrift-Compiler-Linux64
> Thrift-Compiler-Windows
> Thrift-env
> Thrift-env-Windows
> Thrift-Test
> Thrift-Windows
> {noformat}
> Of those, [Thrift-env|https://builds.apache.org/job/Thrift-env], [Thrift-env-Windows|https://builds.apache.org/job/Thrift-env-Windows] and [Thrift-Windows|https://builds.apache.org/job/Thrift-Windows] are all disabled and [Thrift|https://builds.apache.org/job/Thrift] and [Thrift-Compiler-Linux64|https://builds.apache.org/job/Thrift-Compiler-Linux64] seem to be unused based on last run dates.  This leaves the following active jobs fwict:
> * [|https://builds.apache.org/job/Thrift-all]
> * [|https://builds.apache.org/job/Thrift-Compiler-Windows]
> * [|https://builds.apache.org/job/Thrift-precommit]
> Of these {{Thrift-all}} is broken in a known-way, it really needs to be converted to use a Dockerized build like {{Thrift-precommit}} to be insulated from the vagaries of the underlying worker machines.
> I propose deltion of all disabled (3) and inactive (2) jobs listed above and conversion of {{Thrift-all}} to a Dockerized CI job to guard master with.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)