Pour avancer sereinement dans ce petit projet d’été, j’ai mis en place quelques outils et workflows appropriés.

Je souhaite utiliser le langage Go et il n’existe pas d’implémentation sur iOS (contrairement à Python et Lua).
J’utilise pour cela une machine distante, une droplet chez Digital Ocean. C’est une machine sous Ubuntu 18.04 parfaitement capable de compiler les petits bouts de code que je lui soumet.

Pour se connecter à cette droplet, j’ai choisi d’utiliser un projet de shell sous la forme d’une application appelée Blink.
Cette app fournit à la fois le terminal et le shell, ainsi que les outils nécéssaire comme ssh ou mosh.
C’est une application Open Source, le code est disponible, mais on peut l’acheter pour la soutenir (ce que j’ai fait).
Première étape une fois Blink installé, générer une clé RSA.
Je peux ensuite enregistrer la clé publique de Blink sur la droplet dans .ssh/authorized_keys.
Toute cette procédure est détaillée dans cet article sur Medium
Je n’ai pas pu pour le moment profiter de l’étape avec mosh qui permet de maintenir une session SSH, quand la connexion est de mauvaise qualité. L’hébergement de la première semaine n’a pas beaucoup de ports ouverts sur le wifi partagé.

Une fois qu’on a un environnement pour compiler le code et le lancer, il faut se soucier de la partie gestion du code.
J’utilise en l’occurrence GitLab dont j’aime beaucoup la gestion des issues et des Merge Request.
Sur l’iPad, la gestion de ce repository sera confiée à l’app Working Copy.
Première fonctionnalité intéressante pour moi, la connexion avec mon compte GitLab. Une fois ce lien établi, j’ajoute le repository de mon projet Dobby (oui, je ferai un logo en forme de chaussette).
A partir de là, j’ai accès aux fonctions git comme le fetch, le pull, le merge ou le push. Il est facile de visualiser les branches, d’effectuer un rebase ou créer une branche. Je n’ai pas encore trouvé de moyen de gérer les issues ou les MR directement, à étudier.
Une dernière fonctionnalité intéressante dans mon workflow est la possibilité de régler un accès distant à un répertoire pour effectuer une synchronisation des fichiers. Je peux ainsi éditer le code sur l’iPad, puis aller sur ma droplet pour tester, le code étant synchronisé.
Pour cela, j’enregistre la clé publique fournie par Working Copy dans la authorized_keys de ma droplet, je rempli les paramètre dans l’app et zou, la synchro et/ou l’upload manuel si je préfère sont en place.

Il me reste à créer des issues pour chaque étape prévue.
Je n’aurai plus qu’à ouvrir une MR avec une branche dédiée que je récupérerai sur l’iPad ensuite.
Une fois le code testé et l’article correspondant écrit, je n’aurai plus qu’à pousser dans la branche de la MR, puis effectuer le merge qui fermera l’issue. J’ai pour le moment fait le choix de désactiver l’effacement automatique de la branche pour conserver les traces pour les articles.

Voilà, il me semble que je suis paré pour enfin avancer sur le projet.
Mais ne dit on pas que l’important ce n’est pas la destination, c’est le voyage ?