txs:contrib:framadate_p18:installation_de_l_environnement_de_travail

Installation de l'environnement de travail

Nous avons d’abord suivi le wiki concernant l’utilisation de Git (réalisé par Andres) afin de récupérer le code source du projet (fork et clone) sur nos machines.
https://wiki.picasoft.net/doku.php?id=txs:framadate-p18:contribuer-a-framadate

Et si jamais le projet que l’on vient de forker comporte des erreurs qui seront par la suite corrigées ?
Il est possible de synchroniser les dépôts “après coup”, le tutoriel suivant est très bien fait et a parfaitement fonctionné dans notre cas : http://blog.fethica.com/fr/synchroniser-un-fork-avec-son-depot-dorigine-sur-github/

Dans le cadre du projet Framadate, un processus de test du code a été mis en place via l’outil intégré à Gitlab : l’intégration continue. L’idée est simple : les modifications apportées au code sont systématiquement et automatiquement testées pour vérifier que le code est en accord avec des règles pré-établies.

Les étapes de test sont décrites dans le fichier https://framagit.org/JMarlow/framadate/blob/master/.gitlab-ci.yml. Ainsi, chaque commit lance l’exécution d’un test, si le test n’est pas passé avec succès, un mail est envoyé au développeur afin de l’avertir. Le développeur peut également consulter les résultats des différents tests sur Framagit (ex : https://framagit.org/JMarlow/framadate/-/jobs) et avoir accès aux logs de chacun (ex : https://framagit.org/JMarlow/framadate/-/jobs/117983).

D’accord, mais comment je fais pour rendre mon code propre et passer les tests de l’intégration continue ?

Facile, quelques lignes de commandes dans votre répertoire /framadate suffisent à rendre automatiquement le code valide :

sudo apt install composer
sudo apt purge composer
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
apt-get install php-mbstring php-xml
php vendor/bin/php-cs-fixer fix --verbose

Nous avons ensuite suivi le wiki pour l’implémentation du Docker (réalisé par Kyâne) afin de mettre en place facilement notre environnement de travail.
https://wiki.picasoft.net/doku.php?id=txs:framadate-p18:developpement

Nous avons dû faire face à de nombreuses complications lors de nos installations respectives, ce qui a contribué à l’amélioration des deux wikis précédents.

Ces complications nous ont permis de découvrir une petite manipulation intéressante afin d’afficher les erreurs rencontrées par les programmes php : le passage de diplayerrors à passer de Off à On. Pour se faire, on se place dans le dossier contenant les fichiers Dockerfile et docker-compose.yml’’ et on tape les commandes suivantes :
<code> docker exec -it framadate /bin/sh L’interpréteur sh s’ouvre # cd etc # cd php5 # cd apache2 # nano php.ini Le fichier php.ini s’ouvre avec nano Ctrl+W pour trouver displayerrors Si displayerrors est à Off, on le passe à On Ctrl+X pour quitter, Y pour enregistrer, Entrée pour valider # service apache2 reload # exit </code> Pour automatiser cette procédure, il est possible d’ajouter une instruction dans le Dockerfile :
<code>RUN sed -i “s|displayerrors = Off|displayerrors = On |g” /etc/php5/apache2/php.ini </code>
Par ailleurs, et face à des problèmes d’installation dont on n’identifie pas la source (par exemple : incohérence entre la base de données migrée et le code source), il nous a été intéressant de pouvoir facilement repartir de zéro.
Pour cela, plusieurs commandes ont pu nous être utiles : * Effacer tous les conteneurs Docker
<code> docker rm -f $(docker ps -a -q) </code> * Effacer toutes les images Docker
<code> docker rmi -f $(docker images -q) </code> * Effacer les données de la BDD afin de refaire la migration
<code> sudo rm -rf ./volumes </code>
(sources : https://davidwalsh.name/docker-remove-all-images-containers)

  • txs/contrib/framadate_p18/installation_de_l_environnement_de_travail.txt
  • de 127.0.0.1