Project

General

Profile

Feature #640

migrating to git.framasoft.org

Added by Julien Fastré over 3 years ago. Updated over 3 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
10/01/2015
Due date:
% Done:

0%

Spent time:

Description

In order to build a better community, we should migrate all tools (git repository, issue tracker, ...) on a easy and shared platform. We suggest to use git.framasoft.org.

We should examine first if this is doable, and the impact on :

- continuous integration ;
- ease of use ;
- packages / packagist updates
- migration of current opened issue to the new tool

History

#1 Updated by Julien Fastré over 3 years ago

j'ai jeté un coup d'oeil sur gitlab ci et tenté de lancé une tâche sur le repository chill-project/main sur framasoft.

Voilà où en sont mes recherches :

- pour travis, impossible de l'utiliser sans github, en effet ;
- pour gitlab, on pourrait configurer un runner externe qui
exécuterait les tâches d'intégration continue, et le connecter à un
dépôt gitlab. Comme je le comprends, il est préférable qu'il s'agisse
d'un serveur dédié à ça (ça peut exécuter n'importe quoi, y compris
des scripts fous ou mailveillants).

Ce qu'on peut faire :

- temporairement, on pourrait demander que notre dépôt github soit un
miroir de framagit: quand on pousse sur framagit ça envoie sur github
après, et de là ça partira sur travis, packagist (il y a aussi des
webhooks là-bas), etc.
- on peut configurer un runner. Ca peut nous coûter cher. On pourrait
alors imaginer configurer un serveur cloud chez OVH qu'on paierait
seulement quand on l'utilise. On ferait alors comme ça: on crée un
script python qui ira, tous les quarts d'heures ou toutes les heures,
vérifier via l'api qu'il y a des tâches qui sont en attentes pour le
CI. Si oui, il va, via l'API openstack, démarrer un serveur chez ovh,
puis lances les tâches. 15 à 30 minutes plus tard, il vérifie que les
tâches sont terminées et éteint le serveur si c'est le cas (on paie à
l'heure).

Si on enregistre notre image "runner" sur OVH on a également la
sécurité de retrouver la même image à chaque démarrage du serveur =>
moins de risque de sécurité.

Par la suite, on pourra également déployer automatiquement chill: le
script vérifiera si les tests ont passé, si oui il lance la
compilation docker. Notre image est à jour et le script pourra
continuer en déployant automatiquement les mises à jours... Et nous,
pendant ce temps là, on part en vacances.

#2 Updated by Julien Fastré over 3 years ago

J'ai encore fait joujou avec gitlab-ci.

Très intéressant comme concept :-)

D'après ce que je comprends, voici comment ça se passe :

- quand un build est prêt (après un commit) il est envoyé au runner (notre serveur)
- celui-ci télécharge un conteneur docker à l'intérieur duquel le script sera exécuté,
- clone notre repository ;
- exécute toutes les instructions dans "before_script" (https://git.framasoft.org/Chill-project/Main/blob/test_gitlab_ci/.gitlab-ci.yml)
- exécute les instructions dans "script"
- renvoie le résultat

On peut voir une progression ici : https://git.framasoft.org/ci/projects/7/builds/7

J'ai indiqué que le conteneur est celui de php 5.6, mais ça ne marche pas: git n'est pas installé... D'où le message.

Il va donc falloir créer un conteneur custom pour les tests. Ce qui peut être bien: on fera en sorte qu'il soit semblable à celui qu'on utilise en production, comme ça on est sûr qu'on aura le même environnement !

#3 Updated by Julien Fastré over 3 years ago

  • Status changed from New to Closed

Les dépôts ont été migrés, à l'exception de ceux gérant la documentation.

Also available in: Atom PDF