Utiliser Gitlab Pages comme repository Debian

Les Gitlab Pages (et Github Pages) permettent via un processus de construction d’artefact de publier un site web au travers d’un pipeline.

Un repository Debian étant simplement constitué de fichiers statiques, nous pouvons donc faire un rapprochement entre les pipelines de build et un repository Debian.

Pour réaliser notre repository Debian hébergé sur des gitlab pages nous aurons besoin:

  • Du conteneur docker debian:stretch
  • De GPG pour la signature du repository
  • De reprepro pour créer notre repository
  • D’un repository git hébergé sur un Gitlab

Continuer à lire

Gitlab CI: Pipeline maven

Le Gitlab CI intègre depuis la version 8.8 de Gitlab la notion de pipeline. C’est une notion très à la mode permettant de pouvoir séparer son processus de build en plusieurs étapes distinctes, interdépendantes et parallélisables.

Nous allons prendre ici l’exemple d’une application SpringBoot utilisant Maven et créer un pipeline de construction de l’application ayant le cheminement suivant

  • Construction de l’application
  • Tests unitaires
  • Tests de qualité de code (sonar)
  • Déploiement Nexus (SNAPSHOT)
  • Déploiement Nexus (release, branche master uniquement)

Continuer à lire

GIT: importer un fichier depuis une autre branche

Avec GIT, parfois il peut être utile d’importer un fichier complet depuis une autre branche sans avoir à cherry-pick ou rebase les commits de cette branche. Plutôt que de faire la manip suivante:

GIT permet via la commande checkout d’importer directement un fichier depuis une autre branche

Git: supprimer un fichier sans le supprimer du disque

Dans certains cas vous pouvez avoir besoin de supprimer un fichier de votre repository sans les supprimer de votre disque (par exemple ajout accidentel d’un fichier de projet Eclipse/VS/QTCreator).

Pour supprimer le fichier incriminé de git sans le supprimer du disque tapez la commande

De même pour un répertoire:

GIT: changer la branche par défaut

Par défaut git utilise la branche master comme branche upstream principale.

Pour changer de branche, créez tout d’abord une nouvelle branche si vous n’en avez pas:

Puis utilisez symbolic-ref afin relier HEAD à votre nouvelle branche