Deblan blog

Tag #GIT

Migration de Gogs vers Gitea

Gogs est une plateforme pour gérer des dépôts GIT à la manière de Github. C'est un projet sous licence MIT qui fonctionne bien mais son développeur ne propose par une collaboration des plus simple.

Il y a pas mal de temps déjà, la communauté a forké le projet pour créer Gitea. Au départ, nous avions une version très proche de Gogs mais Gitea évolue maintenant de façon indépendante. Gitea offre plus de fonctionnalités et j'ai décidé de migrer Gitnet vers cet outil.

La migration n'a pas été évidente mais voici une TODO list si vous souhaitez le faire de votre coté !

  1. Faire une sauvegarde de la base de données de Gogs
  2. Faire une sauvegarde des dépots de Gogs
  3. Suivre la procédure décrite dans la documentation

Après ça, mon répertoire gitea a cette forme :

/custom
/custom/conf/
/custom/conf/app.ini
/data
/data/avatars
/data/sessions
/log

Au départ, j'ai fait le bourrin et j'ai lancé la version 1.5 de gitea pour au final tout casser. Du coup, pour passer de Gogs à Gitea 1.5, j'ai décidé de récupérer les binaires des versions 1.0, 1.1, 1.2, 1.3 et 1.4 de Gitea et je les ai lancé successivement. Je me suis donc assuré de ne manquer aucne migrations de base de données.

Dans /path/to/gitea :

for v in 1.0.2 1.1.0 1.2.0 1.3.0 1.4.0 1.5.0; do
    wget https://github.com/go-gitea/gitea/releases/download/v${v}/gitea-${v}-linux-amd64
    chmod +x gitea-${v}-linux-amd64
done

…Et on migre la base de données en démarrant chacune de ces versions :

git@host: /path/to/gitea $ ./gitea-1.0.2-linux-amd64 web
git@host: /path/to/gitea $ ./gitea-1.1.0-linux-amd64 web
git@host: /path/to/gitea $ ./gitea-1.2.1-linux-amd64 web
git@host: /path/to/gitea $ ./gitea-1.3.0-linux-amd64 web
git@host: /path/to/gitea $ ./gitea-1.4.0-linux-amd64 web
git@host: /path/to/gitea $ ./gitea-1.5.0-linux-amd64 web

À l'heure où j'écris cet article, la version 1.5.1 est dispo mais elle ne fonctionne pas chez moi. Je vais donc attendre un peu pour upgrader Gitea.

J'ai fais le tour de Gitnet et je n'ai pas rencontré de bug. J'espère ne pas être passé à coté d'un gros soucis ! En tout cas, je suis très content d'avoir pu réaliser cette migration en même pas une heure !


Hébergement et déploiement de sites statiques via Gitnet

Comme je l'ai évoqué dans mon bilan 2015, je souhaite publier le plus de choses possibles cette année. Bien souvent, je me contente d'écrire un article et de mettre à disposition les sources avec un README en guise de documentation.

J'ai donc réfléchi à un système pour publier facilement des projets sans devoir mettre en place un hébergement "classique" sur mon serveur. Je me suis donc penché sur ce qui est fait ailleurs et je me suis rendu compte que le système de pages Github était à la fois pratique et simple. On ajoute un dépôt, on le met à jour et on a un site mis en ligne.

Gitnet

Tout n'est pas encore automatisé, mais je propose depuis peu un système équivalent : Gitnet. Vous devez vous créer un compte sur la forge gitnet et ensuite m'envoyer un email avec l'URL du dépôt et le nom de votre projet. Il faudra ensuite configurer un webhook et le tour est joué ! Vous pushez, vous déployez :)

webhook gitnet


Projet symfony2, convention PSR2 et validation pre-receive GIT

Au mettre titre que SVN, je vais déployer progressivement des hooks pour traiter le code source "pushé" vers mon Gitlab (et les projets que je gère).

En m’appuyant sur un script récupéré sur Github, j'ai réalisé un hook GIT pre-receive qui permet de vérifier que le code soumis est valide PSR2. Il fonctionne pour le moment très bien mais je suis ouvert aux corrections si vous en avez à me proposer. Il faudra prendre une ou deux minutes pour configurer les premières variables.


Mon gitlab ouvre ses portes !

Aujourd'hui a été installé un outil en ligne pour gérer mes projets versionnés avec GIT.

J'y ai placé l'ensemble de mes projets plus ou moins intéressant :)

Deblan GITLAB