[FFmpeg-devel] travis: setup for automated coverity builds

Submitted by Timo Rothenpieler on Dec. 1, 2016, 9:22 p.m.

Details

Message ID 20161201212235.4396-1-timo@rothenpieler.org
State New
Headers show

Commit Message

Timo Rothenpieler Dec. 1, 2016, 9:22 p.m.
Travis can only run scheduled builds daily, weekly or monthly.
So we run them daily, and use a bit of logic in the .travis.yml to
cancel out early on 3 days per week.
---
 .travis.yml | 32 +++++++-------------------------
 1 file changed, 7 insertions(+), 25 deletions(-)

Comments

Timothy Gu Dec. 2, 2016, 3:14 a.m.
On Thu, Dec 1, 2016 at 1:23 PM Timo Rothenpieler <timo@rothenpieler.org>
wrote:

> Travis can only run scheduled builds daily, weekly or monthly.

So we run them daily, and use a bit of logic in the .travis.yml to
> cancel out early on 3 days per week.
>

Nice! Didn't know Travis CI could do this.


> ---
>  .travis.yml | 32 +++++++-------------------------
>  1 file changed, 7 insertions(+), 25 deletions(-)
>
> diff --git a/.travis.yml b/.travis.yml
> index e541ee1..abc264a 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -1,26 +1,8 @@
> -language: c
> -sudo: false
> -os:
> -  - linux
> -  - osx
> -addons:
> -  apt:
> -    packages:
> -      - yasm
> -      - diffutils
> -compiler:
> -  - clang
> -  - gcc
> -cache:
> -  directories:
> -    - ffmpeg-samples
> -before_install:
> -  - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update --all; fi
> -install:
> -  - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install yasm; fi
> +sudo: required
> +services:
> +  - docker
>  script:
> -  - mkdir -p ffmpeg-samples
> -  - ./configure --samples=ffmpeg-samples --cc=$CC
> -  - make -j 8
> -  - make fate-rsync
> -  - make check -j 8
> +- DOW="$(date "+%u")"
> +- for d in 2 4 6; do [[ "$d" == "$DOW" ]] && exit 0; done
> +- docker pull ffmpeg/coverity
> +- docker run --env COV_EMAIL --env COV_TOKEN ffmpeg/coverity
>

A few nits: indent the array, just as you did for `services`; the official
Travis CI-Coverity bridge uses COVERITY_SCAN_NOTIFICATION_EMAIL and
COVERITY_SCAN_TOKEN, so for consistency you might want to change that.

Another thing is that currently https://github.com/BtbN/FFmpeg-Coverity (the
source of "ffmpeg/coverity" image) belongs to your GitHub account. Maybe we
should think of transferring that to github.com/FFmpeg?

I also have a few comments on your current build scripts, but we can change
those once this patch is in.

Timothy
Timo Rothenpieler Dec. 2, 2016, 11:21 a.m.
On 12/2/2016 4:14 AM, Timothy Gu wrote:
> On Thu, Dec 1, 2016 at 1:23 PM Timo Rothenpieler <timo@rothenpieler.org>
> wrote:
> 
>> Travis can only run scheduled builds daily, weekly or monthly.
> 
> So we run them daily, and use a bit of logic in the .travis.yml to
>> cancel out early on 3 days per week.
>>
> 
> Nice! Didn't know Travis CI could do this.
> 

It needs to be explicitly requested, but I don't think that will be an
issue if we explain them our usecase:
https://docs.travis-ci.com/user/cron-jobs/


> 
> A few nits: indent the array, just as you did for `services`; the official
> Travis CI-Coverity bridge uses COVERITY_SCAN_NOTIFICATION_EMAIL and
> COVERITY_SCAN_TOKEN, so for consistency you might want to change that.

Updated the image to use those, updated this patch locally to do the same.

> Another thing is that currently https://github.com/BtbN/FFmpeg-Coverity (the
> source of "ffmpeg/coverity" image) belongs to your GitHub account. Maybe we
> should think of transferring that to github.com/FFmpeg?

I can't create that repository myself, but so if someone could import it
from my Account, that would be nice.

> I also have a few comments on your current build scripts, but we can change
> those once this patch is in.
> 
> Timothy
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
Timothy Gu Dec. 2, 2016, 5:36 p.m.
On Fri, Dec 2, 2016 at 3:22 AM Timo Rothenpieler <timo@rothenpieler.org>
wrote:

> On 12/2/2016 4:14 AM, Timothy Gu wrote:
> > On Thu, Dec 1, 2016 at 1:23 PM Timo Rothenpieler <timo@rothenpieler.org>
> > wrote:
> >
> >> Travis can only run scheduled builds daily, weekly or monthly.
> >
> > So we run them daily, and use a bit of logic in the .travis.yml to
> >> cancel out early on 3 days per week.
> >>
> >
> > Nice! Didn't know Travis CI could do this.
> >
>
> It needs to be explicitly requested, but I don't think that will be an
> issue if we explain them our usecase:
> https://docs.travis-ci.com/user/cron-jobs/


Agreed.

>
> > A few nits: indent the array, just as you did for `services`; the
> official
> > Travis CI-Coverity bridge uses COVERITY_SCAN_NOTIFICATION_EMAIL and
> > COVERITY_SCAN_TOKEN, so for consistency you might want to change that.
>
> Updated the image to use those, updated this patch locally to do the same.


> > Another thing is that currently https://github.com/BtbN/FFmpeg-Coverity
> (the
> > source of "ffmpeg/coverity" image) belongs to your GitHub account. Maybe
> we
> > should think of transferring that to github.com/FFmpeg?
>
> I can't create that repository myself, but so if someone could import it
> from my Account, that would be nice.
>

That has been done my Michael as I can see.

So one question: will this .travis.yml be applied to the main FFmpeg repo
or the newly created FFmpeg-Coverity repo?

Timothy
Timo Rothenpieler Dec. 2, 2016, 5:50 p.m.
> That has been done my Michael as I can see.
> 
> So one question: will this .travis.yml be applied to the main FFmpeg repo
> or the newly created FFmpeg-Coverity repo?

That's a good point, it doesn't even need to be in the main repo,
specially as there already is a travis.yml there.
Would probably be better to just put it alongside the Docker files.

Patch hide | download patch | download mbox

diff --git a/.travis.yml b/.travis.yml
index e541ee1..abc264a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,26 +1,8 @@ 
-language: c
-sudo: false
-os:
-  - linux
-  - osx
-addons:
-  apt:
-    packages:
-      - yasm
-      - diffutils
-compiler:
-  - clang
-  - gcc
-cache:
-  directories:
-    - ffmpeg-samples
-before_install:
-  - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update --all; fi
-install:
-  - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install yasm; fi
+sudo: required
+services:
+  - docker
 script:
-  - mkdir -p ffmpeg-samples
-  - ./configure --samples=ffmpeg-samples --cc=$CC
-  - make -j 8
-  - make fate-rsync
-  - make check -j 8
+- DOW="$(date "+%u")"
+- for d in 2 4 6; do [[ "$d" == "$DOW" ]] && exit 0; done
+- docker pull ffmpeg/coverity
+- docker run --env COV_EMAIL --env COV_TOKEN ffmpeg/coverity