Skip to content
Simon Sampère edited this page Jul 19, 2024 · 37 revisions

Build and deploy

Pipelines - triggers et actions

Commit vers master

Chaque commit publié sur master ou sur une branche concernée par une pull request vers master, déclenche un run de la pipeline Azure DevOps comprennant :

  • la mise en forme du code
  • la compilation de l'interface graphique
  • le packaging (via plugin_packager.py)

Tag dans master

Chaque commit étiqueté (tagged) publié sur master, déclenche un run de la pipeline Azure DevOps comprennant :

  • la mise en forme du code
  • la compilation de l'interface graphique
  • le packaging (via plugin_packager.py)
  • la création d'une GitHub Release

Il faut donc créer un tag dans master pour "publier" sur GitHub.

Étapes de la publication

pré-releasing

  1. dans la branche de développement, effectuer les tâches suivantes :

    • mettre à jour les traductions :

      • lancer la commande suivante pour mettre à jour les fichiers i18n\*.ts :

        pylupdate5 -noobsolete -verbose isogeo_search_engine.pro
      • ouvrir le fichier i18n\isogeo_search_engine_fr.ts dans Qt Linguist et faire les modifications nécessaires avant d'enregistrer le fichier.

      • lancer la commande suivante (dans l'environnement virtuel) pour compiler le fichier i18n\isogeo_search_engine_fr.ts et mettre à jour le fichier i18n\isogeo_search_engine_fr.qm

        qt5-tools lrelease .\i18n\isogeo_search_engine_fr.ts
    • compiler les ressources graphiques :

      pyrcc5 resources.qrc -o resources_rc.py
    • vérifier que le code est nettoyé des logs de dev

    • formater le code avec black en utilisant les commandes suivantes :

      python -m black --target-version=py39 --line-length 120 .\isogeo.py
      python -m black --target-version=py39 --line-length 120 .\modules
      python -m black --target-version=py39 --line-length 120 .\ui
    • corriger les erreurs indiquées par l'analyse statique (voir report dans la pipeline)

  2. intituler la PR "[version] description" (par exemple)

  3. récupérer le résultat de packaging et tester l'installation via le zip, corriger si nécessaire

  4. merge la PR dans master

  5. récupérer le résultat de packaging et tester l'installation via le zip, corriger dans master si nécessaire

  6. si la branche merge s’appelait version, il faudra la supprimer en local avant de push le tag qu'on appellera également version

  7. basculer dans master pour modifier le fichier version.json

  8. toujours dans master modifier le fichier metadata.txt pour :

    • indiquer la nouvelle version
    • mettre à jour le changelog
    • mettre à jour le flag experimental si nécessaire
  9. nommer le commit de modification du fichier metadata.txt "bumb version to version"

  10. taguer le commit "bump version to version" de l'étape précédente

    Commande exemple dans un terminal git, où <HASH> est le hash du commit et <VERSION> est le nom du tag :

    git tag -a <VERSION> <HASH>
    git push origin <VERSION>

Releasing

  1. récupérer dans la pipeline Azure DevOps la version packagée lors du run déclenché suite au push du tag dans master, il s'agit de l'archive isogeo_search_engine.zip présente dans l'artifact "PACKAGED_version_..."
  2. se connecter avec le compte Isogeo sur le dépôt en ligne des plugins QGIS Python
  3. se rendre dans le dépôt du plugin Isogeo
  4. Manage > Add version > indiquer l'emplacement du zip packagé (récupéré pendant la dernière étape du packaging)
  5. cocher la case "Experimental flag" s'il s'agit d'une beta
  6. mettre le lien vers la release correspondante dans le changelog
  7. cliquer sur save

Attendre la confirmation par mail.

Déposer dans le Drive

Placer le zip utilisé pendant la mise en prod dans le dossier OneDrive "C:\Users<USERNAME>\ISOGEO\Development - Documents\Extensions (Dossier Produit)\QGIS\version".

Clone this wiki locally