Skip to content

CI CD tools

Simon Garnotel edited this page May 2, 2019 · 9 revisions

Jenkins

The INRIA Jenkins server is used for the CI/CD integration of the source code.

Compilation results are displayed with badges directly in the README.md of master and develop branches.

Linux configuration

Ubuntu All

OS: Ubuntu Xenial 16.04 x64 - CPU: 2000MHz X4 - RAM: 12288 MB

#!/bin/sh

autoreconf -i \
	&& ./configure --enable-download --enable-optim --disable-pastix --prefix=/builds/freefem-source-[develop-master] \
	&& ./3rdparty/getall -a \
	&& cd 3rdparty/ff-petsc \
	&& sed -i 's/--download-pastix //g' Makefile \
	&& make petsc-slepc \
	&& cd - \
	&& ./reconfigure \
	&& make -j4 \
	&& make check \
	&& sudo make install

Ubuntu No

OS: Ubuntu Xenial 16.04 x64 - CPU: 2000MHz X4 - RAM: 12288 MB

#!/bin/sh

autoreconf -i \
	&& ./configure --enable-download --enable-optim --disable-pastix --prefix=/builds/freefem-source-[develop-master] \
	&& ./3rdparty/getall -a \
	&& cd 3rdparty/ff-petsc \
	&& sed -i 's/--download-pastix //g' Makefile \
	&& make petsc-slepc \
	&& cd - \
	&& ./reconfigure \
	&& make -j4 \
	&& make check \
	&& make install

Mac OS X

Mac OS X All

OS: Apple Mac OS X 10.13 (64-bit) - CPU: 2000MHz X4 - RAM: 12288 MB

#!/bin/sh

autoreconf -i \
	&& ./configure --enable-optim --enable-download --disable-pastix --prefix=/builds/freefem-source-[develop-master] \
	&& ./3rdparty/getall -a \
	&& make -j4 \
	&& make check \
	&& sudo make install

Mac OS X No

OS: Apple Mac OS X 10.9 (64-bit) - CPU: 2000MHz X4 - RAM: 12288 MB

#!/bin/sh

autoreconf -i \
	&& ./configure --enable-optim --enable-download --disable-pastix --prefix=/builds/freefem-source-[develop-master] \
	&& ./3rdparty/getall -a \
	&& make -j4 \
	&& make check

Windows

64bits

OS: Windows 7 (64-bit) - CPU: 2000MHz X2 - RAM: 4096 MB MSYS2 64bits

#!C:\msys64\usr\bin\bash.exe --login

source shell mingw64 && echo "SOURCED"

cd /c/builds/workspace/FreeFem-source-develop-Windows7-All

git clone https://github.com/FreeFem/FreeFem-sources.git -b [develop-master]
cd FreeFem-sources
autoreconf -i
./configure --enable-download --disable-pastix --disable-hips
./3rdparty/getall -a
make
make check
make install

32bits

OS: Windows 7 (64-bit) - CPU: 2000MHz X2 - RAM: 4096 MB MSYS2 32bits

#!C:\msys32\usr\bin\bash.exe --login

source shell mingw32 && echo "SOURCED"

cd /c/builds/workspace/FreeFem-source-master-Windows7-32

git clone https://github.com/FreeFem/FreeFem-sources.git -b develop
cd FreeFem-sources
autoreconf -i
./configure --enable-download --disable-pastix --disable-hips
./3rdparty/getall -a
make
make check
make install

Codacy

The code style is reviewed with Codacy.

Result is displayed with a badge directly in the README.md of master and develop branches.

Coverity

Sign in Travis.

Sign in with GitHub in Coverity.

In My Dashboard, add a new project, click on Register my GitHub project and choose a repository.

Copy the project token in Project Settings and generate a key using:

sudo gem install travis
travis encrypt -r FreeFem/FreeFem-sources COVERITY_SCAN_TOKEN=__KEY__

Copy the generated key in the .travis.yml file at the root of your GitHub repository.

Example:

language: cpp

script: echo "done"

env:
  global:
   # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
   #   via the "travis encrypt" command using the project repo's public key
   - secure: "__GENERATEDKEY__"
   
before_install:
  - sudo apt-get -qq update
  - sudo apt-get install -y g++ gcc gfortran ghostscript m4 make patch pkg-config wget python unzip libopenblas-dev liblapack-dev libhdf5-dev libscotch-dev libfftw3-dev libarpack2-dev libsuitesparse-dev libmumps-seq-dev libnlopt-dev coinor-libipopt-dev libgmm++-dev libtet1.5-dev gnuplot-qt autoconf automake autotools-dev bison flex gdb valgrind git cmake mpich
  - echo -n | openssl s_client -connect https://scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-

addons:
  coverity_scan:
    project:
      name: FreeFem/FreeFem-sources
      description: freefem
    notification_email: __YOUREMAIL@DOMAIN.COM__
    build_command_prepend: autoreconf -i && ./configure --enable-download --enable-optim --disable-pastix --prefix=/builds/freefem-source-master && ./3rdparty/getall -a
    build_command: make
    branch_pattern: master