## Gestionnaire de versions Avant de pouvoir commencer notre aventure, il est nécessaire d'avoir un gestionnaire de versions. Nous allons ici utiliser Git. ### Problématique du stockage des produits de compilation Outre les interfaces rudimentaires fournies au-dessus de Git ([gitweb](https://git.wiki.kernel.org/index.php/Gitweb)), il y a de nombreux projets qui offrent davantage que le simple hébergement de dépôts. Vous pouvez voir sur GitHub notamment qu'il est possible d'attacher à un tag un [certain nombre de fichiers](https://github.com/docker/compose/releases/latest). On notera également que depuis le 1er septembre, GitHub propose un [registre Docker](https://github.blog/2020-09-01-introducing-github-container-registry/) que l'on peut lier avec ses dépôts. Une fonctionnalité que GitLab propose [depuis 2016](https://about.gitlab.com/blog/2016/05/23/gitlab-container-registry/). En effet, la problématique du stockage des produits de compilation est vaste. Si au début on peut se satisfaire d'un simple serveur web/FTP/SSH pour les récupérer manuellement, on a vite envie de pouvoir utiliser les outils standards directement : `docker pull ...`, `npm install ...`, ... Des programmes et services se sont spécialisés là-dedans, citons notamment [Artifactory](https://jfrog.com/artifactory/) ou [Nexus Repository](https://www.sonatype.com/nexus/repository-oss) et bien d'autres. Dans un premier temps, nous allons nous contenter de publier un binaire associé à un tag de notre projet. ### Installation et configuration Aller c'est parti ! première chose à faire : installer et configurer [Gitea](https://gitea.io/) (ceux qui le souhaitent peuvent choisir [gitlab](https://gitlab.org/) ou une autre plate-forme, mais la suite sera moins guidée). Nous allons utiliser l'image : [`gitea/gitea`](https://hub.docker.com/r/gitea/gitea) (ou [`gitlab/gitlab-ce`](https://hub.docker.com/r/gitlab/gitlab-ce)).