• Aucun résultat trouvé

GITLAB CI/CD ET ENVIRONNEMENT R - CONSTRUIRE SON PROPRE PIPELINE

N/A
N/A
Protected

Academic year: 2021

Partager "GITLAB CI/CD ET ENVIRONNEMENT R - CONSTRUIRE SON PROPRE PIPELINE"

Copied!
2
0
0

Texte intégral

(1)

HAL Id: hal-02899373

https://hal.archives-ouvertes.fr/hal-02899373

Submitted on 15 Jul 2020

HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

GITLAB CI/CD ET ENVIRONNEMENT R - CONSTRUIRE SON PROPRE PIPELINE

Jean-François Rey, Loïc Houde

To cite this version:

Jean-François Rey, Loïc Houde. GITLAB CI/CD ET ENVIRONNEMENT R - CONSTRUIRE SON PROPRE PIPELINE. JDEV, Jul 2020, RENNES, France. �hal-02899373�

(2)

Docker Hub official images

(r-base, r-devel...)

GitLab Container Registry Custom docker images

(r-base-biosp, r-devel-biosp…)

Bibliothèques systèmes et dépendances via

Dockerfile Nightly build

Centre

Provence-Alpes-Côte d’Azur - Avignon

GITLAB CI/CD ET ENVIRONNEMENT R CONSTRUIRE SON PROPRE PIPELINE

Jean-François Rey 1 and Loic Houde 1

1

BioStatistique et Processus Spatiaux (BioSP), INRAE Avignon, France

biosp.org | jean-francois.rey@inrae.fr | loic.houde@inrae.fr | @jfrey_official

PRÉSENTATION

De nos jours, les outils de gestion de projets informatiques sont largement répandus, beaucoup d’entre eux fournissent une partie spécifique de la gestion du cycle de vie des projets ou sont des solutions tierces. Cela est particulièrement vrai pour l’ environnement R.

Nous présentons ici notre solution utilisant GitLab CE, un outil open core et libre, qui nous permet de développer du code R collaborativement et d’automatiser la validation et la construction de package R ainsi que le déploiement d’applications R Shiny.

Cette solution locale dans notre laboratoire nous permet d’accélérer le développement et le partage de packages R sur différents OS et la soumission au CRAN en réduisant les erreurs possibles. Mais elle permet aussi la mise à disposition d’applications R Shiny immédiatement accessibles.

=> Un outils de gestion de développement de package R et d’application R Shiny

Multi utilisateurs et collaboratif

Dépôts privé et public + versionné

Outils auto-hébergés

Automatiser au maximum (gain de temps)

Pipeline CI/CD personnalisé

Multiple OS ( Greenland avec R)

Vérifier la régression de code

Revu et qualité du code

LES BESOINS

"GitLab is a single application for the entire software development lifecycle. From

project planning and source code

management to CI/CD, monitoring, and security." (https://about.gitlab.com)

Community Edition (MIT licence)

GitLab-Runner

Docker registry

https://gitlab.paca.inrae.fr

GITLAB

ARCHITECTURE DU PIPELINE

Partage

Archive CRAN

Orchestration CI/CD pipeline

Jobs ordering

stages : - build - tests - check - binaries - deploy R-build :

stage : build image : r-base script :

- Rscript -e "roxygen2::roxygenize()"

- R CMD build mypackage artifacts :

paths :

- $(ls -rt mypackage_*.tar.gz | tail -1) .

. . R-windows-release :

stage : binaries dependencies :

- r-check tags :

- "R"

- "WIN10"

script :

- R CMD INSTALL –build –force-biarch

$(ls -rt mypackage_*.tar.gz | tail -1) artifacts :

paths :

- $(ls -rt mypackage_*.zip | tail -1) rules:

- if: $CI_COMMIT_TAG != null .

. . Docker-image-R-Shiny-App :

stage : deploy image : dind dependencies :

- r-check

script : "Generate docker image"

environment :

name : shiny.biosp.inrae.fr when:manual

Job Job name

Job stage Runner Docker image

Shell scripts to execute

Job depend of other jobs Runner selection by tags

Artifacts to keep

Job only executed at git tag

Job

Job Deployment environment

Run job manualy

Custom Virtual Machine Windows 10

(R + Rtools + msys2)

Mac OS High Sierra

(mac.R-project.org)

Bibliothèques systèmes et dépendances sur

demande ou

nouvelle mise à jour

Exécute les jobs et renvoie les résultats à GitLab

R eg ist er

Priv ate &

shar

ed

R un

Runners actifs

Pipeline Visualisation

Jobs

shell log Artifact download

GITLAB-RUNNER

Visualisation du pipeline dans GitLab

Automatiser les Machines Virtuelles :

Création

Configuration

Versionné/ snapshot

Activer plus de fonctionnalités GitLab (web terminal, pages…)

Utiliser Kubernetes (orchestration de container)

CI/CD stratégies

PERSPECTIVES

Facile à déployer

Stockage des artefacts

Reproductibilité

* Le plus important : moderne et simple à utiliser

.gitlab-ci.yml

Présentation vidéo : T4 REX

Références

Documents relatifs

FERACHOGLOU propose une solution utilisant le produit scalaire.. BECZKOWSKI propose une solution utilisant le théorème de

row.names NULL or a single integer or character string specifying a column to be used as row names, or a character or integer vector giving the row names for the data frame..

特に Solaris 2.6/7/8 では、 GNU make の第 3.77 版以外が必要になる。 3.79 版は Sun の make と同様にうまく動く。固有の make は SGI Irix

Pour cette raison, la société BEUREL ENVIRONNEMENT sollicite le relèvement de la capacité annuelle de stockage à 2500 tonnes de déchets d’amiante lié à des matériaux inertes,

Le présent arrêté abroge l'arrêté préfectoral relatif à l'information des acquéreurs et des locataires de biens immobiliers sur les risques naturels et technologiques

Elles doivent user de leur autonomie de recrutement pour mettre en place les structures et le personnel enseignant adéquat (interne ou venant du milieu professionnel).

Dans la partie production et procédés, on trouve les neuf plates-formes suivantes (dont SusChem), plus ou moins directement associés à la chimie : ECTP, « European

À cet égard, de grands leaders mondiaux se sont logique- ment créés ces dernières années dans les pays développés dans le domaine des services et notamment aux États-Unis : -