5 Fichiers de configuration

5.1 .gitlab-ci.yml

Le fichier .gitlab-ci.yml permet de paramétrer le pipeline de votre projet. Par défaut il utilise des templates créer par SK8 qui ne peuvent être modifiés.

Vous pouvez ajouter vos propres tâches/jobs dans ce fichier en gardant bien ceux de SK8. Les stages .pre et .post peuvent être utilisé pour ajouter respectivement avant ou après des jobs.

5.1.1 Jobs Configuration

Le premier job du pipeline SK8 Configuration récupère ou génére des fichiers utilisés par les différents jobs suivants.
Vous pouvez télécharger ces fichiers en allant sur ce job et en cliquant sur la partie droite Job artifacts Download.

Actuellement le zip contient:

  • Le Dockerfile généré.
  • Le fichier renv.lock existant ou un equivalent généré.

5.1.2 Variables SK8

Il est possible de modifier certaines configurations du pipeline en modifiant des variables.

  • MISE_A_JOUR_AUTOMATIQUE: “true” pour mettre à jour l’application automatiquement, par defaut “false”
  • R_DOCKER_TAG: Version de R utiliser par docker, par défaut “latest”
  • R_DOCKER_IMAGE: image docker de base utilisé pour containeriser l’application, par défaut “r-base”
  • DOCKERFILE_NAME: Nom du fichier “Dockerfile” à utiliser, par défaut “Dockerfile”
  • RENV_VERSION: La version de {renv} à utiliser

Exemple dans le fichier .gitlab-ci.yml pour forcer la version de R utilisé:

variables:
  R_DOCKER_TAG: "4.1.3"
  MISE_A_JOUR_AUTOMATIQUE: "true"

5.2 DockerFile

Par défaut le Dockerfile nécessaire à la génération de l’image docker de votre application est créé par SK8 dans le job Configuration du pipeline.

Il est possible de télécharger (via l’artifact du job Configuration) le Dockerfile généré, de le modifier et de l’inclure dans le projet. Par défaut, le pipeline utilise le fichier Dockerfile contenu dans le projet si il est présent sinon il en génère un.

Si vous fournissez votre propre Dockerfile vous devez exposer l’application sur le port 3838.

EXPOSE 3838
# Si l'application est installé dans /home/shiny/mon_projet
CMD ["sh", "-c", "Rscript -e \"shiny::runApp('/home/shiny/mon_projet', port = 3838, host = '0.0.0.0')\""]

Actuellement les dockerfile SK8 ne prennent pas ne compte tous les cas de figure et il peut être necessaire d’en fournir un.