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.
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.