Aller au contenu

Héberger mon code

C'est la première étape du parcours, et celle dont dépendent toutes les autres : rien ne s'exécute sur UrbiVerde qui ne vienne d'un dépôt versionné. Le GitLab de la plateforme accueille donc à la fois votre code source, vos packages CWL et, via sa registry, les images conteneur qui les font tourner.

Il héberge deux sortes de dépôts :

Dépôt Ce qu'il contient Ce que la plateforme en fait
Chaîne de traitement le code du traitement, son Dockerfile et son package CWL l'image publiée dans la registry est exécutée par AntFlow (voir Processing)
Application interactive le code de l'application (Streamlit, Dash, API…) et son Dockerfile AntFlow Spaces construit le conteneur à partir du dépôt, puis l'héberge et le met en ligne (voir Application hosting)

Organiser le dépôt

Gardez un dépôt par chaîne de traitement ou par application, plutôt qu'un dépôt unique qui les rassemblerait toutes : chacune évolue, se versionne et se déploie alors à son propre rythme. À l'intérieur, une structure simple suffit :

mon-projet/
├── Dockerfile              # image d'exécution, à la racine
├── src/                    # code
├── README.md               # ce que fait le projet, comment le lancer
└── .gitlab-ci.yml          # facultatif : tests, construction de l'image

Une chaîne de traitement y ajoute la description de son workflow (workflow.cwl, voir Processing).

Versionner une release

Chaque version est identifiée par un tag Git. Ce tag ne reste pas cantonné à l'historique : il sert de référence à tout ce qui est construit et déployé à partir du dépôt, l'image conteneur comme la version mise en ligne. Vous savez ainsi exactement quel code tourne, et une exécution relancée six mois plus tard produit le même résultat.

git tag -a v1.0.0 -m "Première version"
git push origin v1.0.0

Une version = un tag

Préférez un tag à une référence mobile comme latest ou une branche. Celle-ci change à chaque publication : deux exécutions à quelques jours d'intervalle peuvent alors tourner sur un code différent, sans que rien ne l'indique.

Étape suivante

Votre code est en place. La suite dépend du type de dépôt :

  • chaîne de traitement : il lui faut une image que la plateforme puisse exécuter, construisez et publiez-la dans la registry ;
  • application interactive : il n'y a pas d'image à publier si vous laissez AntFlow Spaces construire le conteneur à partir du dépôt, mais vous pouvez aussi fournir votre propre image si elle est dejà construite, déployez-la avec AntFlow Spaces.