diff mbox

[2/2] add travis.yml for gitub automation

Message ID 1476804254-20341-2-git-send-email-mike.holmes@linaro.org
State New
Headers show

Commit Message

Mike Holmes Oct. 18, 2016, 3:24 p.m. UTC
allows pushes to a github clone of ODP to automatically trigger CI builds

Signed-off-by: Mike Holmes <mike.holmes@linaro.org>

---
 .travis.yml | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 .travis.yml

-- 
2.7.4

Comments

Brian Brooks Oct. 13, 2016, 12:21 a.m. UTC | #1
On 10/18 11:24:14, Mike Holmes wrote:
> allows pushes to a github clone of ODP to automatically trigger CI builds

> 

> Signed-off-by: Mike Holmes <mike.holmes@linaro.org>


Reviewed-by: Brian Brooks <brian.brooks@linaro.org>


> ---

>  .travis.yml | 35 +++++++++++++++++++++++++++++++++++

>  1 file changed, 35 insertions(+)

>  create mode 100644 .travis.yml

> 

> diff --git a/.travis.yml b/.travis.yml

> new file mode 100644

> index 0000000..0675952

> --- /dev/null

> +++ b/.travis.yml

> @@ -0,0 +1,35 @@

> +

> +language: c

> +compiler: clang

> +sudo: required

> +

> +before_install:

> +        - sudo apt-get -qq update

> +        - sudo apt-get install automake autoconf libtool libssl-dev graphviz mscgen git doxygen


Would a ./scripts/install_build_deps.sh which installs development packages
based on info in /etc/lsb-release be useful?

> +        - gem install asciidoctor

> +

> +#       Install cunit for the validation tests because distro version is too old and fails C99 compile

> +        - export CUNIT_VERSION=2.1-3

> +        - curl -sSOL http://sourceforge.net/projects/cunit/files/CUnit/${CUNIT_VERSION}/CUnit-${CUNIT_VERSION}.tar.bz2

> +        - tar -jxf *.bz2

> +        - cd CUnit*

> +        - ./bootstrap

> +        - ./configure --enable-debug --enable-automated --enable-basic --enable-console --enable-examples --enable-test

> +        - make

> +        - sudo make install

> +        - cd ..

> +        - export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"

> +

> +install:

> +        - ./bootstrap

> +

> +script:

> +        - ./configure --enable-user-guides && make

> +        - ./configure --enable-test-cpp && make check

> +        - ./configure --enable-test-vald && make check

> +        - ./configure --enable-test-helper && make check

> +        - ./configure --enable-test-perf && make check

> +        - ./configure --enable-test-perf-proc && make check

> +        - ./configure --enable-test-example && make check

> +        - ./configure && make doxygen-doc

> +        - ./configure && make distcheck


Similarly, ./scripts/configure-dbg ./scripts/configure-opt
./scripts/configure-cov and so on could contain variations on the configure
command to verify multiple types of builds.

> -- 

> 2.7.4

>
Maxim Uvarov Oct. 18, 2016, 3:52 p.m. UTC | #2
On 10/18/16 18:24, Mike Holmes wrote:
> allows pushes to a github clone of ODP to automatically trigger CI builds

>

> Signed-off-by: Mike Holmes <mike.holmes@linaro.org>

> ---

>   .travis.yml | 35 +++++++++++++++++++++++++++++++++++

>   1 file changed, 35 insertions(+)

>   create mode 100644 .travis.yml

>

> diff --git a/.travis.yml b/.travis.yml

> new file mode 100644

> index 0000000..0675952

> --- /dev/null

> +++ b/.travis.yml

> @@ -0,0 +1,35 @@

copyright is missing.

> +

> +language: c

> +compiler: clang


will be good to add also gcc and cross compilation.
> +sudo: required

> +

> +before_install:

> +        - sudo apt-get -qq update

> +        - sudo apt-get install automake autoconf libtool libssl-dev graphviz mscgen git doxygen


after patch 1 you don't need git in dependencies. Do you also need -f 
option to  apt-get install?
> +        - gem install asciidoctor

> +

> +#       Install cunit for the validation tests because distro version is too old and fails C99 compile

> +        - export CUNIT_VERSION=2.1-3

export should not be needed, just set up variable.

> +        - curl -sSOL http://sourceforge.net/projects/cunit/files/CUnit/${CUNIT_VERSION}/CUnit-${CUNIT_VERSION}.tar.bz2

> +        - tar -jxf *.bz2

> +        - cd CUnit*

cd and cd - change to pushd popd.

> +        - ./bootstrap

> +        - ./configure --enable-debug --enable-automated --enable-basic --enable-console --enable-examples --enable-test

> +        - make

> +        - sudo make install

> +        - cd ..

> +        - export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"

> +

> +install:

> +        - ./bootstrap

> +

> +script:

> +        - ./configure --enable-user-guides && make

> +        - ./configure --enable-test-cpp && make check

> +        - ./configure --enable-test-vald && make check

> +        - ./configure --enable-test-helper && make check

> +        - ./configure --enable-test-perf && make check

> +        - ./configure --enable-test-perf-proc && make check

> +        - ./configure --enable-test-example && make check

why not combine options together in one line?

> +        - ./configure && make doxygen-doc

no need to configure for generation docs.  configure takes a lot of 
lines and it's better to have something readable in the longs.

> +        - ./configure && make distcheck

Does this script does clean up? If not it will be better to do in script:
  git clean -f -d -x; ./bootstrap; ./configure && make distcheck
Mike Holmes Oct. 18, 2016, 4:06 p.m. UTC | #3
On 18 October 2016 at 11:52, Maxim Uvarov <maxim.uvarov@linaro.org> wrote:
> On 10/18/16 18:24, Mike Holmes wrote:

>>

>> allows pushes to a github clone of ODP to automatically trigger CI builds

>>

>> Signed-off-by: Mike Holmes <mike.holmes@linaro.org>

>> ---

>>   .travis.yml | 35 +++++++++++++++++++++++++++++++++++

>>   1 file changed, 35 insertions(+)

>>   create mode 100644 .travis.yml

>>

>> diff --git a/.travis.yml b/.travis.yml

>> new file mode 100644

>> index 0000000..0675952

>> --- /dev/null

>> +++ b/.travis.yml

>> @@ -0,0 +1,35 @@

>

> copyright is missing.


I can add that, thanks

>

>> +

>> +language: c

>> +compiler: clang

>

>

> will be good to add also gcc and cross compilation.


It fails as it is an old version of GCC on that platform, I wan to
keep this as minimal as possible, full CI is not my intent

>>

>> +sudo: required

>> +

>> +before_install:

>> +        - sudo apt-get -qq update

>> +        - sudo apt-get install automake autoconf libtool libssl-dev

>> graphviz mscgen git doxygen

>

>

> after patch 1 you don't need git in dependencies. Do you also need -f option

> to  apt-get install?


I can remove git, but I have not needed -f

>>

>> +        - gem install asciidoctor

>> +

>> +#       Install cunit for the validation tests because distro version is

>> too old and fails C99 compile

>> +        - export CUNIT_VERSION=2.1-3

>

> export should not be needed, just set up variable.


This is exactly how we state to do it in Dependencies in our repo so I
wont change it now. Some could change both in another patch.

>

>> +        - curl -sSOL

>> http://sourceforge.net/projects/cunit/files/CUnit/${CUNIT_VERSION}/CUnit-${CUNIT_VERSION}.tar.bz2

>> +        - tar -jxf *.bz2

>> +        - cd CUnit*

>

> cd and cd - change to pushd popd.

>

>> +        - ./bootstrap

>> +        - ./configure --enable-debug --enable-automated --enable-basic

>> --enable-console --enable-examples --enable-test

>> +        - make

>> +        - sudo make install

>> +        - cd ..

>> +        - export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"

>> +

>> +install:

>> +        - ./bootstrap

>> +

>> +script:

>> +        - ./configure --enable-user-guides && make

>> +        - ./configure --enable-test-cpp && make check

>> +        - ./configure --enable-test-vald && make check

>> +        - ./configure --enable-test-helper && make check

>> +        - ./configure --enable-test-perf && make check

>> +        - ./configure --enable-test-perf-proc && make check

>> +        - ./configure --enable-test-example && make check

>

> why not combine options together in one line?


So that you know where the issue is, I found it very handy to split them out.
Not adverse to merging some of them BUT then the perf tests for
example which often fail will mean you have to look at the whole log
to know where the issue was, rather than just look at say the examples
to say what happened.

>

>> +        - ./configure && make doxygen-doc

>

> no need to configure for generation docs.  configure takes a lot of lines

> and it's better to have something readable in the longs.


I like that this will ensure that changes to the config that has
occurred previously will not affect it.
It costs so little, but I can remove it

>

>> +        - ./configure && make distcheck

>

> Does this script does clean up? If not it will be better to do in script:

>  git clean -f -d -x; ./bootstrap; ./configure && make distcheck


It does only what autotools expects it to, I dont want to add any more
than that, if we go that add scripting route maybe we start to call
check-odp, but really this is all about doing only what autotools
expect.
This is really ALL about making it possible to have coverity static
analysis run, this is not intended to be as thorough as check-odp


>

>




-- 
Mike Holmes
Program Manager - Linaro Networking Group
Linaro.org │ Open source software for ARM SoCs
"Work should be fun and collaborative, the rest follows"
Maxim Uvarov Oct. 18, 2016, 7:36 p.m. UTC | #4
btw,

can you also add call for:
./scripts/build-pktio-dpdk

to compile dpdk pktio?

And I think something similar for netmap.

Maxim.

On 10/18/16 19:06, Mike Holmes wrote:
> On 18 October 2016 at 11:52, Maxim Uvarov <maxim.uvarov@linaro.org> wrote:

>> On 10/18/16 18:24, Mike Holmes wrote:

>>> allows pushes to a github clone of ODP to automatically trigger CI builds

>>>

>>> Signed-off-by: Mike Holmes <mike.holmes@linaro.org>

>>> ---

>>>    .travis.yml | 35 +++++++++++++++++++++++++++++++++++

>>>    1 file changed, 35 insertions(+)

>>>    create mode 100644 .travis.yml

>>>

>>> diff --git a/.travis.yml b/.travis.yml

>>> new file mode 100644

>>> index 0000000..0675952

>>> --- /dev/null

>>> +++ b/.travis.yml

>>> @@ -0,0 +1,35 @@

>> copyright is missing.

> I can add that, thanks

>

>>> +

>>> +language: c

>>> +compiler: clang

>>

>> will be good to add also gcc and cross compilation.

> It fails as it is an old version of GCC on that platform, I wan to

> keep this as minimal as possible, full CI is not my intent

>

>>> +sudo: required

>>> +

>>> +before_install:

>>> +        - sudo apt-get -qq update

>>> +        - sudo apt-get install automake autoconf libtool libssl-dev

>>> graphviz mscgen git doxygen

>>

>> after patch 1 you don't need git in dependencies. Do you also need -f option

>> to  apt-get install?

> I can remove git, but I have not needed -f

>

>>> +        - gem install asciidoctor

>>> +

>>> +#       Install cunit for the validation tests because distro version is

>>> too old and fails C99 compile

>>> +        - export CUNIT_VERSION=2.1-3

>> export should not be needed, just set up variable.

> This is exactly how we state to do it in Dependencies in our repo so I

> wont change it now. Some could change both in another patch.

>

>>> +        - curl -sSOL

>>> http://sourceforge.net/projects/cunit/files/CUnit/${CUNIT_VERSION}/CUnit-${CUNIT_VERSION}.tar.bz2

>>> +        - tar -jxf *.bz2

>>> +        - cd CUnit*

>> cd and cd - change to pushd popd.

>>

>>> +        - ./bootstrap

>>> +        - ./configure --enable-debug --enable-automated --enable-basic

>>> --enable-console --enable-examples --enable-test

>>> +        - make

>>> +        - sudo make install

>>> +        - cd ..

>>> +        - export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"

>>> +

>>> +install:

>>> +        - ./bootstrap

>>> +

>>> +script:

>>> +        - ./configure --enable-user-guides && make

>>> +        - ./configure --enable-test-cpp && make check

>>> +        - ./configure --enable-test-vald && make check

>>> +        - ./configure --enable-test-helper && make check

>>> +        - ./configure --enable-test-perf && make check

>>> +        - ./configure --enable-test-perf-proc && make check

>>> +        - ./configure --enable-test-example && make check

>> why not combine options together in one line?

> So that you know where the issue is, I found it very handy to split them out.

> Not adverse to merging some of them BUT then the perf tests for

> example which often fail will mean you have to look at the whole log

> to know where the issue was, rather than just look at say the examples

> to say what happened.

>

>>> +        - ./configure && make doxygen-doc

>> no need to configure for generation docs.  configure takes a lot of lines

>> and it's better to have something readable in the longs.

> I like that this will ensure that changes to the config that has

> occurred previously will not affect it.

> It costs so little, but I can remove it

>

>>> +        - ./configure && make distcheck

>> Does this script does clean up? If not it will be better to do in script:

>>   git clean -f -d -x; ./bootstrap; ./configure && make distcheck

> It does only what autotools expects it to, I dont want to add any more

> than that, if we go that add scripting route maybe we start to call

> check-odp, but really this is all about doing only what autotools

> expect.

> This is really ALL about making it possible to have coverity static

> analysis run, this is not intended to be as thorough as check-odp

>

>

>>

>

>
Mike Holmes Oct. 18, 2016, 8:18 p.m. UTC | #5
On 18 October 2016 at 15:36, Maxim Uvarov <maxim.uvarov@linaro.org> wrote:
> btw,

>

> can you also add call for:

> ./scripts/build-pktio-dpdk

>

> to compile dpdk pktio?

>

> And I think something similar for netmap.


Not now, this is purely to get to the goal of simple validation of ODP
using what auto make provides with the real goal of it supporting
coverity static analysis.
I dont want any external scripting or complexity, for that we already
have check-odp, the only thing check-odp can't do for us is run static
analysis on arbitrary personal repos.

Having said that, who knows what the future brings, but right now the
goal is support coverity so that we don't check in things it will then
reject.

Mike


>

> Maxim.

>

>

> On 10/18/16 19:06, Mike Holmes wrote:

>>

>> On 18 October 2016 at 11:52, Maxim Uvarov <maxim.uvarov@linaro.org> wrote:

>>>

>>> On 10/18/16 18:24, Mike Holmes wrote:

>>>>

>>>> allows pushes to a github clone of ODP to automatically trigger CI

>>>> builds

>>>>

>>>> Signed-off-by: Mike Holmes <mike.holmes@linaro.org>

>>>> ---

>>>>    .travis.yml | 35 +++++++++++++++++++++++++++++++++++

>>>>    1 file changed, 35 insertions(+)

>>>>    create mode 100644 .travis.yml

>>>>

>>>> diff --git a/.travis.yml b/.travis.yml

>>>> new file mode 100644

>>>> index 0000000..0675952

>>>> --- /dev/null

>>>> +++ b/.travis.yml

>>>> @@ -0,0 +1,35 @@

>>>

>>> copyright is missing.

>>

>> I can add that, thanks

>>

>>>> +

>>>> +language: c

>>>> +compiler: clang

>>>

>>>

>>> will be good to add also gcc and cross compilation.

>>

>> It fails as it is an old version of GCC on that platform, I wan to

>> keep this as minimal as possible, full CI is not my intent

>>

>>>> +sudo: required

>>>> +

>>>> +before_install:

>>>> +        - sudo apt-get -qq update

>>>> +        - sudo apt-get install automake autoconf libtool libssl-dev

>>>> graphviz mscgen git doxygen

>>>

>>>

>>> after patch 1 you don't need git in dependencies. Do you also need -f

>>> option

>>> to  apt-get install?

>>

>> I can remove git, but I have not needed -f

>>

>>>> +        - gem install asciidoctor

>>>> +

>>>> +#       Install cunit for the validation tests because distro version

>>>> is

>>>> too old and fails C99 compile

>>>> +        - export CUNIT_VERSION=2.1-3

>>>

>>> export should not be needed, just set up variable.

>>

>> This is exactly how we state to do it in Dependencies in our repo so I

>> wont change it now. Some could change both in another patch.

>>

>>>> +        - curl -sSOL

>>>>

>>>> http://sourceforge.net/projects/cunit/files/CUnit/${CUNIT_VERSION}/CUnit-${CUNIT_VERSION}.tar.bz2

>>>> +        - tar -jxf *.bz2

>>>> +        - cd CUnit*

>>>

>>> cd and cd - change to pushd popd.

>>>

>>>> +        - ./bootstrap

>>>> +        - ./configure --enable-debug --enable-automated --enable-basic

>>>> --enable-console --enable-examples --enable-test

>>>> +        - make

>>>> +        - sudo make install

>>>> +        - cd ..

>>>> +        - export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"

>>>> +

>>>> +install:

>>>> +        - ./bootstrap

>>>> +

>>>> +script:

>>>> +        - ./configure --enable-user-guides && make

>>>> +        - ./configure --enable-test-cpp && make check

>>>> +        - ./configure --enable-test-vald && make check

>>>> +        - ./configure --enable-test-helper && make check

>>>> +        - ./configure --enable-test-perf && make check

>>>> +        - ./configure --enable-test-perf-proc && make check

>>>> +        - ./configure --enable-test-example && make check

>>>

>>> why not combine options together in one line?

>>

>> So that you know where the issue is, I found it very handy to split them

>> out.

>> Not adverse to merging some of them BUT then the perf tests for

>> example which often fail will mean you have to look at the whole log

>> to know where the issue was, rather than just look at say the examples

>> to say what happened.

>>

>>>> +        - ./configure && make doxygen-doc

>>>

>>> no need to configure for generation docs.  configure takes a lot of lines

>>> and it's better to have something readable in the longs.

>>

>> I like that this will ensure that changes to the config that has

>> occurred previously will not affect it.

>> It costs so little, but I can remove it

>>

>>>> +        - ./configure && make distcheck

>>>

>>> Does this script does clean up? If not it will be better to do in script:

>>>   git clean -f -d -x; ./bootstrap; ./configure && make distcheck

>>

>> It does only what autotools expects it to, I dont want to add any more

>> than that, if we go that add scripting route maybe we start to call

>> check-odp, but really this is all about doing only what autotools

>> expect.

>> This is really ALL about making it possible to have coverity static

>> analysis run, this is not intended to be as thorough as check-odp

>>

>>

>>>

>>

>>

>




-- 
Mike Holmes
Program Manager - Linaro Networking Group
Linaro.org │ Open source software for ARM SoCs
"Work should be fun and collaborative, the rest follows"
Mike Holmes Oct. 24, 2016, 6:41 p.m. UTC | #6
On 12 October 2016 at 20:21, Brian Brooks <brian.brooks@linaro.org> wrote:
> On 10/18 11:24:14, Mike Holmes wrote:

>> allows pushes to a github clone of ODP to automatically trigger CI builds

>>

>> Signed-off-by: Mike Holmes <mike.holmes@linaro.org>

>

> Reviewed-by: Brian Brooks <brian.brooks@linaro.org>

>

>> ---

>>  .travis.yml | 35 +++++++++++++++++++++++++++++++++++

>>  1 file changed, 35 insertions(+)

>>  create mode 100644 .travis.yml

>>

>> diff --git a/.travis.yml b/.travis.yml

>> new file mode 100644

>> index 0000000..0675952

>> --- /dev/null

>> +++ b/.travis.yml

>> @@ -0,0 +1,35 @@

>> +

>> +language: c

>> +compiler: clang

>> +sudo: required

>> +

>> +before_install:

>> +        - sudo apt-get -qq update

>> +        - sudo apt-get install automake autoconf libtool libssl-dev graphviz mscgen git doxygen

>

> Would a ./scripts/install_build_deps.sh which installs development packages

> based on info in /etc/lsb-release be useful?


I had missed this comment sorry Brian, yes perhaps that is easier


>

>> +        - gem install asciidoctor

>> +

>> +#       Install cunit for the validation tests because distro version is too old and fails C99 compile

>> +        - export CUNIT_VERSION=2.1-3

>> +        - curl -sSOL http://sourceforge.net/projects/cunit/files/CUnit/${CUNIT_VERSION}/CUnit-${CUNIT_VERSION}.tar.bz2

>> +        - tar -jxf *.bz2

>> +        - cd CUnit*

>> +        - ./bootstrap

>> +        - ./configure --enable-debug --enable-automated --enable-basic --enable-console --enable-examples --enable-test

>> +        - make

>> +        - sudo make install

>> +        - cd ..

>> +        - export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"

>> +

>> +install:

>> +        - ./bootstrap

>> +

>> +script:

>> +        - ./configure --enable-user-guides && make

>> +        - ./configure --enable-test-cpp && make check

>> +        - ./configure --enable-test-vald && make check

>> +        - ./configure --enable-test-helper && make check

>> +        - ./configure --enable-test-perf && make check

>> +        - ./configure --enable-test-perf-proc && make check

>> +        - ./configure --enable-test-example && make check

>> +        - ./configure && make doxygen-doc

>> +        - ./configure && make distcheck

>

> Similarly, ./scripts/configure-dbg ./scripts/configure-opt

> ./scripts/configure-cov and so on could contain variations on the configure

> command to verify multiple types of builds.


Yes, I think that would help

>

>> --

>> 2.7.4

>>




-- 
Mike Holmes
Program Manager - Linaro Networking Group
Linaro.org │ Open source software for ARM SoCs
"Work should be fun and collaborative, the rest follows"
diff mbox

Patch

diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..0675952
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,35 @@ 
+
+language: c
+compiler: clang
+sudo: required
+
+before_install:
+        - sudo apt-get -qq update
+        - sudo apt-get install automake autoconf libtool libssl-dev graphviz mscgen git doxygen
+        - gem install asciidoctor
+
+#       Install cunit for the validation tests because distro version is too old and fails C99 compile
+        - export CUNIT_VERSION=2.1-3
+        - curl -sSOL http://sourceforge.net/projects/cunit/files/CUnit/${CUNIT_VERSION}/CUnit-${CUNIT_VERSION}.tar.bz2
+        - tar -jxf *.bz2
+        - cd CUnit*
+        - ./bootstrap
+        - ./configure --enable-debug --enable-automated --enable-basic --enable-console --enable-examples --enable-test
+        - make
+        - sudo make install
+        - cd ..
+        - export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
+
+install:
+        - ./bootstrap
+
+script:
+        - ./configure --enable-user-guides && make
+        - ./configure --enable-test-cpp && make check
+        - ./configure --enable-test-vald && make check
+        - ./configure --enable-test-helper && make check
+        - ./configure --enable-test-perf && make check
+        - ./configure --enable-test-perf-proc && make check
+        - ./configure --enable-test-example && make check
+        - ./configure && make doxygen-doc
+        - ./configure && make distcheck