3  Travailler avec mon dépôt

Après votre demande d’hébergement, l’équipe SK8 va créer un dépôt qui contiendra un template d’application suivant vos pré-requis. Vous devenez et restez propriètaire de ce dépôt.

Cette section détaille les différentes étapes pour :

Vous pourrez visualiser votre dépôt sur l’instance gitlab de la forgemia, il portera le nom de votre projet.

Exemple d’adresse du dépôt d’une application déployée par SK8 sur GitLab : https://forgemia.inra.fr/sk8/sk8-apps/monunite/monprojet.

3.1 Contenu du dépôt - template SK8

Le dépôt créé par l’équipe SK8 pour votre application contiendra les éléments suivants:

  • www/ : répertoire visant à contenir les “fichiers statiques” de l’application (CSS, images, …) qui contient un sous dossier images dans lequel se trouve le logo SK8 (SK8.png), à conserver.
  • .dockerignore : fichier qui liste les fichiers et répertoires à ne pas inclure dans l’image docker.
  • .gitignore : fichier qui liste les fichiers et répertoires à ne pas inclure dans le dépôt gitlab.
  • .gitlab-ci-sk8.yml : fichier qui permet l’intégration continue de SK8 pour l’application.
  • .gitlab-ci.yml : fichier qui gère l’intégration continue pour l’application, voir section Configuration avancée.
  • README.md : guide donnant une description détaillée du dépôt.
  • footer.html : fichier qui permet d’ajouter le footer SK8 à votre application. Vous pouvez l’intégrer à votre application pour rendre le projet SK8 plus visible et ainsi nous montrer que vous supportez notre travail.
  • global.R : fichier contenant les définitions globales de votre application R Shiny.
  • server.R : fichier contenant la partie serveur de votre application R Shiny.
  • ui.R : fichier contenant la partie interface de votre application R Shiny.

3.2 Récupération locale et intégration de vos fichiers

  1. Commencez par cloner ce dépôt (git clone) sur votre ordinateur en local.
  2. Vous pouvez alors remplacer les fichiers du template, ui.R, server.R et global.R par ceux de votre application Shiny.
  3. Vous pouvez également ajouter des fichiers statiques (css, images, js, …) dans le dossier www.
  4. Ajouter tous les fichiers nécessaires pour que votre application tourne correctement (scripts, données de démo, …) comme vous l’auriez fait sur votre machine.

Si vous avez utilisé le package renv pour gérer et figer les versions des packages R utilisés dans l’application, vous devez executer les commandes suivantes dans R avant d’envoyer vos modifications et votre fichier renv.lock en ligne :

  1. Après avoir cloné le repository et intégré votre code et votre propre renv.lock, merci de refaire l’initialisation de renv, uniquement la première fois :
renv::init()
  1. Puis pour modifier le renv.lock, à chaque montée de version ou ajout de nouveau package :
renv::snapshot()
  1. Dans le cas où vous avez des packages Bioconductor, vous devez ajouter une variable dans le fichier .gitlab-ci-sk8.yml : 'DOCKERFILE_TYPE': "renv+bioc+rshiny"

  2. Versionnez le fichier renv.lock git add renv.lock et la modification du fichier .gitlab-ci-sk8.yml git add .gitlab-ci-sk8.yml puis git commit -m "ajout renv dans mon projet" et git push

Ce package vous permet de gérer et figer les versions des packages R utilisés dans l’application et permet une meilleur intégration de votre application dans SK8.

L’utilisation de renv est automatisée dans le pipeline CI/CD, à l’étape Configuration qui tente de repérer les packages que vous utilisez, d’installer ces packages ainsi que les librairies systèmes. Cependant il peut rester des librairies non ou mal détectées.

Pour une meilleure prise en charge, nous vous encourageons à utiliser renv localement chez vous. Pour cela vous pouvez suivre les instructions qu’il y a ici.

3.3 Publier votre application

Une fois les fichiers relatifs à votre application modifiés, vous pouvez les envoyer sur le dépôt GitLab afin de publier votre application une première fois.

  1. Faire un (ou plusieurs) commit (git add + commit) des fichiers modifiés avec un message explicite pour vous y retrouver plus tard
  2. Faire un git push du ou des commits afin d’envoyer les modifications sur l’instance gitlab.
  3. Manuellement publier l’application via le pipeline CI/CD

Image action publier

3.4 Mettre à jour votre application

Pour mettre à jour le code de votre application, toujours faire dans l’ordre:

  1. Un git pull (avant toute modification en local pour être sûr d’avoir la dernière version)
  2. Modifier votre application en local sur votre machine
  3. Faire un ou plusieurs commits (git add + commit) des fichiers modifiés avec un message explicite pour vous y retrouver plus tard
  4. Faire un git push du ou des commits afin d’envoyer les modifications sur l’instance gitlab.
  5. Manuellement publier l’application via le pipeline CI/CD

Image action publier

Économiser les ressources

Merci de prendre en considération que le lancement du pipeline peut être couteux en ressources. Republier votre application après chaque commit n’est pas forcément judicieux.

De plus vous pouvez également tester le fonctionnement de votre application en local avant de la visualiser via SK8.