Remise en ligne de la tête de pont de compilation des logiciels d'AbulÉdu

Les logiciels d'AbulÉdu sont écrits dans le langage de programmation C++. Il faut donc transformer ce code source en du langage compréhensible par des ordinateurs en passant par une étape appelée compilation.

Cette compilation transforme donc le code c++ écrit par les développeurs en du code binaire compréhensible par les ordinateurs des utilisateurs. Les utilisateurs étant équipés de systèmes différents (windows, macos, linux) il faut donc compiler ces logiciels pour ces différentes plates-formes.

Ce travail est un peu plus compliqué car en plus de compiler il faut "mettre en paquet" ces logiciels pour qu'ils soient installés sur les ordinateurs avec leur documentation, icones, images, exercices de démonstration etc. Nous avons documenté depuis des années ce "dur labeur des mainteneurs de paquets" comme vous pouvez le voir sur la forge des développeurs.

Baie Aquinetic installée à l'IUT de Mont de Marsan dans laquelle nous avons mis un serveur AbulÉdu...

À RyXéo j'avais automatisé toute cette partie en "détournant" quelque peu un logiciel qui était initialement prévu pour faire de la qualité logicielle et des tests techniques de non régression ... depuis c'est devenu assez classique dans les projets de logiciels libres de faire appel à jenkins comme grand organisateur de la création des paquets logiciels.

Ce logiciel portait le nom initial de Hudson, j'en parlais à l'époque sur ce blog en 2012, encore un apport extra de Rokia au projet AbulÉdu, je ne sais pas si tu te rends compte de l'impact que t'as eue sur ce projet, merci encore à toi !

Puis les développeurs de ce projet ayant eu une petite différence de point de vue, j'ai suivi la version "forkée" de Hudson qui a pris le nom rigolo de Jenkins ... et donc il est utilisé par le "responsable de paquet" pour lancer et organiser tout seul la génération des paquets pour toutes les plates-formes cibles.

Comme nous étions dans le réseau local de RyXéo, la configuration de "notre" jenkins se reposait sur les ressources disponibles dans la société, en particulier nous utilisions une petite partie des ordinateurs de tout le monde (les graphistes en particulier qui avaient des ordinateurs un peu plus puissants que les autres) pour compiler les logiciels de manière distribuée (et donc rapide).

Avec la mort de RyXéo nous avons pu déplacer le serveur principal jenkins comme déjà annoncé il y a quasiment deux semaines mais suite à une erreur de manipulation et l'arrivée de barrettes de RAM j'ai du faire un saut à Mont de Marsan aujourd'hui pour le relancer.

Après quelques manipulations basiques, je relance le serveur, termine la configuration réseau, rends les machines virtuelles accessibles depuis une ip publique, passe à l'actualisation de la zone DNS abuledu.org ... et quelques heures après vous pouvez voir le résultat visible ici: http://jenkins-master.abuledu.org/ ... site web qui n'était historiquement visible que depuis l'intranet RyXéo !

Vous pouvez vous rendre compte que c'est un outil vraiment important et qui permet de faire en sorte que chaque logiciel, décliné en trois "branches compilables":

  • une branche "stable" qui est normalement celle qui est en prod' chez les utilisateurs
  • une branche "rc" comme release candidate qui est normalement la "prochaine diffusée"
  • une branche "dev" pour les développeurs et testeurs

Et pour chaque version il faut créer

  • un fichier setup.exe pour windows
  • un fichier apk pour android (projet en cours de tests & validation)
  • un fichier dmg pour macos (on ne fait plus depuis qu'on a plus de mac assez récent et par manque d'utilisateurs déclarés sur ce système)
  • un fichier .deb pour debian/ubuntu 32 bits
    • pour ubuntu 10.04
    • pour ubuntu 14.04
    • pour ubuntu 16.04
    • pour debian 8.0
    • (pour toute autre distribution à ajouter) .../...
  • un fichier .deb pour debian/ubuntu 64 bits
    • pour ubuntu 10.04
    • pour ubuntu 14.04
    • pour ubuntu 16.04
    • pour debian 8.0
    • (pour toute autre distribution à ajouter) .../...

Et dire que pendant un temps nous avions également des paquets deb mais pour processeur ARM ...

Tout ceci n'est réellement possible que si c'est automatisé (surtout quand un seul paquet sur les 18 a planté ... le retour d'erreur est essentiel) ... et c'est la lourde responsabilité de ce service web.

Il me reste maintenant à lui accrocher les serveurs spécifiques de compilation, par exemple celui qui va cracher les setup.exe n'étant pas "rackable", c'est un pc-tour qui se trouve pour l'instant chez moi. Celui qui va cracher des .deb pour ubuntu 10.04 est chez Nathalie, proxmox (la solution de virtualisation qu'on utilise sur ce serveur) ne sachant pas virtualiser cette version obsolète de Ubuntu ... et ainsi de suite.

Tout ceci m'amènera à l'étape d'après qui est le serveur de stockage de ces fameux paquets, stockage et redistribution ... là il y a encore un gros chantier à venir car tout ceci était assuré par apt.ryxeo.com (tout était déposé sur le serveur maître aptupload.ryxeo.com qui n'existe plus depuis la liquidation) !

Je rappelle aussi que je fais tout ça dans le cadre du "plan de sauvetage d'AbulÉdu" porté par les associations ABUL et AbulÉdu-fr ... votre aide financière est nécessaire pour mener à bien ce projet, rejoignez les 180 donateurs en cliquant ici https://fr.ulule.com/developpement-dabuledu/supporters/

QR code
Send to friend

Commentaires

5 juil. 2016 09:32

je suis allé faire un petit tour sur ulule...
avec mes petits moyens...
parce j'aime toujours ta manière de voir les choses et d'avancer...
et pour aider l'association à passer la barre symbolique des 20.000€...

une page se tourne...
tous mes voeux de réussite pour la suite...

skotea
6 juil. 2016 08:45

Salut Yann,
merci pour le coup de pouce *et* ce commentaire, les années passent ... j'espère que tout baigne pour vous, je t'envoie un mail privé dès que possible mais là je suis sur le départ pour les rmll-d ...

Eric
6 juil. 2016 09:51

rmll-d > ultra cool :)
j'espère que tu restes quelques jours pour te dégourdir les jambes et aussi faire quelques clichés aquatiques :)

skotea

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.