CI (Intégration continue)

Posted on sam. 24 novembre 2018 in Programmation

Travis-CI

Nom du fichier : .travis.yml

.NET

language: csharp
solution: solution.sln
install:
  - sudo apt-get install -y gtk-sharp2
  - nuget restore solution.sln
addons:
  sonarqube: true
env:
  global:
    secure: SONARQUBE_TOKEN_SECURE
script:
  - xbuild /p:Configuration=Release solution.sln
  - sonar-scanner -Dsonar.login=$SONAR_TOKEN

Ionic

sudo: false

language: node_js
node_js:
  - "0.12.2"

addons:
  apt:
    sources:
    - ubuntu-toolchain-r-test
    packages:
    - g++-4.8
    - openjdk-7-jdk
    - lib32stdc++6
    - lib32z1
env:
  CXX=g++-4.8

install:
  - npm config set registry https://registry.npmjs.org/
  - npm install -g gulp bower cordova ionic
  - npm install
  - bower update

before_script:
  - wget http://dl.google.com/android/android-sdk_r24.4-linux.tgz
  - tar -xvf android-sdk_r24.4-linux.tgz
  - echo y | ./android-sdk-linux/tools/android update sdk --no-ui --all --filter platform-tools
  - echo y | ./android-sdk-linux/tools/android update sdk --no-ui --all --filter build-tools-23.0.2
  - echo y | ./android-sdk-linux/tools/android update sdk --no-ui --all --filter android-23
  - echo y | ./android-sdk-linux/tools/android update sdk --no-ui --all --filter extra-android-support
  - echo y | ./android-sdk-linux/tools/android update sdk --no-ui --all --filter extra-android-m2repository
  - echo y | ./android-sdk-linux/tools/android update sdk --no-ui --all --filter extra-google-m2repository
  - export ANDROID_HOME=$PWD/android-sdk-linux
  - export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/23.0.2

script:
  - ionic platform remove android
  - ionic platform add android
  - ionic resources --icon
  - chmod +x hooks/after_prepare/010_add_platform_class.js
  - ionic build android

Appveyor

Ce site permet de faire de l'intégration continue sur des projets Visual Studio (.NET).

Fichier de configuration

Le fichier de configuration ci-dessous permet d'installer l'ensemble des packages NuGet requis avant le build, l'envoie des résultats des tests unitaires sur le site coveralls.io ainsi que la notification sur un chan Slack sur la réussite ou non de l'opération.

Si vous souhaitez plus de détails, vous pouvez utiliser la documentation de ce fichier trouvable ici : https://www.appveyor.com/docs/.

Nom : appveyor.yml

version: 0.0.0.{build}

environment:
  COVERALLS_REPO_TOKEN:
    secure: uZr+CJU4Pl/9ySY0sDQh62xBZaqlEQB7s6fZEmG58InhSjbwslq6mKIWxd1Q55TO

platform: Any CPU

before_build:
  - nuget restore SolutionName.sln

build:
  project: SolutionName.sln

# Spécifie les actiopons après les tests automatiques de Appveyor
after_test:
  - cmd: .\after_test.cmd

#---------------------------------#
#         notifications           #
#---------------------------------#

notifications:

  # Slack
  - provider: Slack
    incoming_webhook: https://hooks.slack.com/services/xxxxxx/yyyyyyyy/zzzzzzzzzz

Coveralls

Afin de faire des tests unitaires via Visual Studio, vous pouvez utiliser le framework NUnit (http://nunit.org/). C'est actuellement le plus répandu et utilisé. Les résultats de ces tests peuvent être ensuite envoyé sur le site de Coveralls. Cela permet un suivi de ces-derniers ainsi qu'un ensemble d'éléments graphiques.

Pour ce faire, vous devez installer les packages NuGet suivant :

  • NUnit
  • NUnitConsoleRunner
  • NUnit3TestAdpater

Les deux packages NuGet suivant sont utilisé si vous souhaitez envoyer les résultats de ces tests sur le site coveralls.io :

  • coveralls.net
  • OpenCover
nuget install NUnit.Runners -Version 3.4.1 -OutputDirectory tools
nuget install OpenCover -Version 4.6.519 -OutputDirectory tools
nuget install coveralls.net -Version 0.7.0 -OutputDirectory tools

.\tools\OpenCover.4.6.519\tools\OpenCover.Console.exe -target:.\tools\NUnit.ConsoleRunner.3.4.1\tools\nunit3-console.exe -targetargs:".\NUnitTest\bin\Debug\NUnitTest.dll" -register:user
.\tools\coveralls.net.0.7.0\tools\csmacnz.Coveralls.exe --opencover -i .\results.xml