Accueil Blog (en) Déployez les personnalisations Acumatica en toute confiance grâce à l’intégration et à la livraison continues

Déployez les personnalisations Acumatica en toute confiance grâce à l’intégration et à la livraison continues

La mise en œuvre d’un processus d’intégration continue et de livraison continue (CI / CD) peut grandement améliorer la vitesse et la fiabilité de la personnalisation d’Acumatica, un système de planification des ressources d’entreprise (ERP) basé sur le cloud.
Gabriel Michaud | Le 29 décembre 2022

Déployez les personnalisations Acumatica en toute confiance grâce à l’intégration et à la livraison continues

Introduction

Dans le développement de logiciels traditionnels, le processus d’intégration a généralement lieu à la fin d’un projet après que chaque personne ait terminé son travail. L’intégration prend généralement des jours ou des semaines et peut être douloureuse. Les conflits se produisent parce que deux développeurs ont modifié le même bit de code. Le code ne compile plus. Des choses qui fonctionnaient auparavant et qui ne fonctionnaient plus. Code qui ne fonctionne pas dans l’environnement de production.

Déployez les personnalisations Acumatica en toute confiance grâce à l’intégration et à la livraison continues

Déployez les personnalisations Acumatica en toute confiance grâce à l’intégration et à la livraison continues

Il n’a pas besoin d’être comme ça! Dans cet article de blog, je veux vous présenter l’intégration continue et la livraison continue (CI / CD).

Cet article est basé sur une présentation que j’ai donnée à Acumatica Summit 2022. Un enregistrement complet de la peut être trouvé ici : https://www.youtube.com/watch?v=o_Ma4_C2b2w

Qu’est-ce que CI/CD?

CI/CD est une pratique de développement logiciel qui vise à automatiser et à rationaliser le processus de création, de test et de déploiement d’applications logicielles. Cela implique la mise en place d’un pipeline qui crée, teste et déploie automatiquement les modifications de code au fur et à mesure qu’elles sont apportées, permettant une itération et un déploiement rapides de nouvelles fonctionnalités et fonctionnalités.

Déployez les personnalisations Acumatica en toute confiance grâce à l’intégration et à la livraison continues

Source: Le Guide des chefs de produit pour la livraison continue et DevOps

https://www.mindtheproduct.com/

Pourquoi devriez-vous utiliser CI /CD?

L’utilisation de CI/CD pour les développeurs qui construisent des solutions Acumatica comporte plusieurs avantages :

  • Amélioration de l’efficacité et de la productivité : CI/CD peut aider à réduire le temps et les efforts nécessaires pour créer, tester et déployer des personnalisations en automatisant de nombreuses étapes manuelles impliquées dans le processus. Cela signifie que votre équipe peut se concentrer sur des tâches plus importantes, plutôt que de passer du temps sur des processus manuels fastidieux.
  • Amélioration de la qualité et de la fiabilité: En automatisant les tests et le déploiement, CI / CD peut aider à identifier et à résoudre les problèmes plus tôt dans le processus de développement, réduisant ainsi le risque d’introduction de problèmes dans les environnements de production. Cela peut vous aider à vous assurer que vos personnalisations et modifications de votre instance Acumatica sont de la plus haute qualité et fiabilité.
  • Vitesse et agilité accrues: CI / CD permet aux développeurs d’itérer rapidement sur leur code et de le mettre en production plus rapidement, ce qui leur permet de répondre plus rapidement aux besoins de l’entreprise et aux changements du marché. Cela peut aider votre petite entreprise à rester compétitive dans un marché en constante évolution.

Comment mettre en place un pipeline CI / CD pour les projets de développement Acumatica?

La mise en place d’un pipeline CI / CD pour vos projets de développement Acumatica peut sembler intimidante au premier abord, mais c’est un processus assez simple. Voici les étapes que vous devrez suivre :

  1. Choisissez un système de contrôle de code source : vous devrez utiliser un système de contrôle de code source pour gérer et suivre les modifications apportées à votre base de code. Plusieurs options sont disponibles, telles que Git, Mercurial et Subversion. Choisissez celui qui répond le mieux à vos besoins et qui est le plus familier à votre équipe.
  2. Configurer un serveur de construction : vous aurez besoin d’un serveur de construction pour automatiser le processus de création, de test et de déploiement de votre code. Il peut s’agir d’un ordinateur physique ou d’un ordinateur virtuel hébergé dans le cloud.
  1. Configurer votre serveur de build : une fois qu’un serveur de build a été configuré, vous devrez le configurer pour exécuter les outils et processus nécessaires à la création, au test et au déploiement de votre code. Cela impliquera généralement l’installation et la configuration d’un outil d’automatisation de la construction tel que Azure DevOps.
  1. Configurer un environnement de test : vous aurez besoin d’un environnement distinct pour exécuter des tests automatisés sur votre code. Il peut s’agir d’un ordinateur physique ou virtuel, et peut être hébergé sur site ou dans le cloud.
  1. Configurer votre environnement de test : vous devrez installer et configurer les outils et les dépendances nécessaires sur votre environnement de test pour exécuter des tests automatisés. Cela impliquera généralement l’installation du framework de test Acumatica et de tout autre outil requis pour vos besoins de test spécifiques.
  1. Configurer un environnement de déploiement : vous aurez besoin d’un environnement distinct pour déployer votre code en production. Il peut s’agir d’un ordinateur physique ou virtuel.

Pour mettre en œuvre l’IC/DC pour les projets de développement d’Acumatica, il est important d’évaluer l’état actuel des pratiques et des outils de développement. Cela inclut la compréhension de l’utilisation du contrôle de code source pour les projets de personnalisation, l’utilisation du SDK Acumatica Test pour les tests automatisés et l’utilisation d’outils CI / CD pour le déploiement. Le SDK Acumatica Test est un ensemble d’outils fournis par Acumatica pour créer des tests automatisés pour l’interface utilisateur des applications Acumatica. Ces tests peuvent simuler les interactions de l’utilisateur avec l’interface utilisateur et valider le comportement et les fonctionnalités de l’application.

Structure du référentiel GitHub

GitHub est un système de contrôle de version qui permet aux développeurs de suivre les modifications apportées à leur code au fil du temps et de collaborer avec d’autres développeurs sur des projets. Dans le contexte d’un projet de développement Acumatica, un référentiel GitHub peut inclure une bibliothèque d’extension Acumatica, des artefacts de projet de personnalisation, des projets de test unitaire, un fichier YAML Azure Pipelines, un fichier de configuration NuGet et des scripts et outils de ligne de commande supplémentaires pour publier le package de personnalisation :

Déployez les personnalisations Acumatica en toute confiance grâce à l’intégration et à la livraison continues

Cet exemple de référentiel peut être trouvé à https://github.com/VelixoSolutions/AcumaticaCIDemo

Intégration du contrôle de source Acumatica

L’intégration du contrôle de code source d’Acumatica fournit une intégration avec une gamme d’outils de contrôle de code source. Il fonctionne différemment de Visual Studio et n’est pas un lien direct vers un outil de contrôle de code source spécifique. Au lieu de cela, il facilite la lecture et l’écriture dans un dossier local, qui est lié / abonné à un système de contrôle de code source tel que Git.

Déployez les personnalisations Acumatica en toute confiance grâce à l’intégration et à la livraison continues

 

Déployez les personnalisations Acumatica en toute confiance grâce à l’intégration et à la livraison continues

Pour plus d’informations, voir « Code source et automatisation pour les développeurs Acumatica » de la conférence Acumatica Virtual Developer Conference 2019

Lien : /media/2019/07/2019-Acumatica-DevCon-Source-Control-Automation.pdf

Création du package de personnalisation

La création du package de personnalisation est le processus de création d’un package de code et de ressources qui peut être déployé sur une instance Acumatica pour ajouter des personnalisations ou des extensions à l’application.

Déployez les personnalisations Acumatica en toute confiance grâce à l’intégration et à la livraison continues

Qu’y a-t-il dans un package de personnalisation ?

Puisque notre objectif est d’automatiser ce processus, nous devons compter sur un outil de ligne de commande pour le construire pour nous. PX. CommandLine.exe est un outil livré avec Acumatica et qui est couramment utilisé pour créer des packages de personnalisation pour Acumatica, mais il a des limitations rendant son utilisation difficile dans le contexte d’un pipeline CI / CD:

  • Il nécessite l’installation d’une instance Acumatica complète
  • Il est lent - l’instance Acumatica doit démarrer avant que le package puisse être construit
  • Il ne fonctionne pas lorsqu’il est exécuté dans le contexte d’un agent de construction.

Comme alternative, j’ai créé une application de ligne de commande simple qui le fait pour vous, sans aucun bagage supplémentaire. Il fournit des options pour spécifier le chemin de personnalisation, le nom du fichier du package et une description du projet de personnalisation. Pour créer un package de personnalisation à l’aide de CustomizationPackageTools.exe, les développeurs peuvent utiliser une commande comme celle-ci :

Déployez les personnalisations Acumatica en toute confiance grâce à l’intégration et à la livraison continues

Vous pouvez trouver le code source de cet outil ici: https://github.com/VelixoSolutions/AcumaticaCIDemo/tree/main/CustomizationPackageTools

Le code est sous licence MIT - s’il vous plaît bifurquer et améliorer!

Publication du package de personnalisation

 La publication du package de personnalisation est le processus de déploiement du package sur une instance Acumatica et de mise à la disposition des utilisateurs des personnalisations ou des extensions contenues dans le package. L’API Acumatica Service Gate est une API de service Web située sur /api/ServiceGate.asmx et basée sur SOAP qui peut être utilisée pour publier des packages de personnalisation sur une instance Acumatica, mais elle peut être difficile à utiliser avec une plate-forme CI / CD comme Azure Pipelines. Azure Pipelines ne peut pas appeler une API de service Web, mais il peut exécuter n’importe quelle application de ligne de commande ou script PowerShell. J’ai étendu la même application de ligne de commande que j’ai présentée précédemment, pour lui permettre de publier également des projets.

Pour publier un package de personnalisation à l’aide de CustomizationPackageTools.exe, les développeurs peuvent utiliser une commande comme celle-ci :

Déployez les personnalisations Acumatica en toute confiance grâce à l’intégration et à la livraison continues

Test: Tirer parti des outils et des cadres de test Acumatica

Acumatica fournit un ensemble d’outils et de cadres de test pour vérifier la fonctionnalité et les performances des personnalisations et des extensions de l’application Acumatica. Le SDK Acumatica Test est un ensemble de bibliothèques construites sur le framework WebDriver Selenium qui permet aux développeurs d’écrire des tests automatisés pour l’interface utilisateur de l’application. Le cadre de test unitaire Acumatica est un ensemble de bibliothèques et d’outils conçus spécifiquement pour tester la logique métier et d’autres composants de l’application. En utilisant ces outils et frameworks de test, les développeurs peuvent créer des tests automatisés qui aident à garantir la qualité et la fiabilité de leur code.

Le SDK Acumatica Test est un ensemble d’outils et de bibliothèques qui permettent aux développeurs de créer des tests automatisés pour l’interface utilisateur (UI) du logiciel Acumatica. Ces tests vérifient la fonctionnalité des éléments d’interface utilisateur personnalisés et peuvent être exécutés sur différentes versions du logiciel Acumatica pour assurer la compatibilité. Le SDK de test repose sur le framework WebDriver Selenium et fournit des outils permettant d’interagir avec l’interface utilisateur D’Acumatica, de définir et de regrouper les cas de test, ainsi que de configurer et de démolir les données de test. Pour créer un test d’interface utilisateur, les développeurs installent généralement les bibliothèques du SDK de test, créent un nouveau projet de test à l’aide d’un modèle fourni, écrivent du code de test à l’aide des outils fournis et exécutent les tests pour vérifier la fonctionnalité des éléments d’interface utilisateur personnalisés. L’utilisation du SDK de test permet d’assurer la qualité et la fiabilité du code personnalisé.

Déployez les personnalisations Acumatica en toute confiance grâce à l’intégration et à la livraison continues

Un exemple de test d’interface utilisateur

Le cadre de test unitaire Acumatica est un ensemble d’outils et de bibliothèques qui permettent aux développeurs de créer des tests unitaires automatisés pour le logiciel Acumatica. Ces tests vérifient la fonctionnalité de petites unités de code isolées, telles que la logique métier personnalisée et d’autres composants de l’application. Le framework de test unitaire est construit sur le .NET Framework et inclut une bibliothèque appelée PX. Tests.Unité.dll, ainsi que des outils pour la création et l’exécution de tests unitaires. Pour créer un test unitaire, les développeurs installent généralement les bibliothèques de framework, créent un nouveau projet de test à l’aide d’un modèle fourni, écrivent du code de test à l’aide des outils fournis et exécutent les tests pour vérifier la fonctionnalité du code personnalisé. Vous pouvez en savoir plus sur le cadre de test de l’unité Acumatica en consultant le cours T280 - Tester la logique métier avec le cadre de test de l’unité Acumatica sur l’Université ouverte Acumatica.

Déployez les personnalisations Acumatica en toute confiance grâce à l’intégration et à la livraison continues

Un test unitaire d’échantillon

Mettre tout cela ensemble - le fichier YAML Azure Pipeline

 Dans Azure DevOps, le pipeline CI/CD est défini à l’aide d’un fichier de configuration YAML, qui spécifie les étapes impliquées dans le processus, telles que la création du code, l’exécution de tests et le déploiement dans différents environnements. Les artefacts de construction sont les sorties du processus de construction, qui sont stockées dans un emplacement central et peuvent être utilisées dans les étapes ultérieures du pipeline. Le déploiement continu est une variante de la livraison continue qui déploie automatiquement chaque changement de code de passage à la production, éliminant ainsi la nécessité d’une intervention manuelle.

Vous pouvez voir un exemple de fichier YAML pour un exemple de projet Acumatica CI / CD ici:

https://github.com/VelixoSolutions/AcumaticaCIDemo/blob/main/azure-pipelines.yml

Pipelines de versions Azure

 Azure Release Pipelines est un outil dans Azure DevOps qui vous permet d’automatiser le processus de déploiement pour vos applications.

Un pipeline de version définit les étapes de la publication d’une application, y compris le déploiement de code dans divers environnements. Les pipelines de version peuvent avoir plusieurs étapes et portes, ce qui vous permet de créer un processus de déploiement multi-environnement et de contrôler le flux de modifications de code en fonction de conditions telles que le temps ou l’approbation manuelle.

Déployez les personnalisations Acumatica en toute confiance grâce à l’intégration et à la livraison continues

 

Déployez les personnalisations Acumatica en toute confiance grâce à l’intégration et à la livraison continues

Par exemple, vous pouvez attendre 3 jours après le déploiement dans votre environnement intermédiaire, et si aucun nouvel élément de travail n’a été créé, vous déployez automatiquement en production.

Conclusion

En conclusion, la mise en œuvre d’un processus d’intégration continue et de livraison continue (CI /CD) peut grandement améliorer la vitesse et la fiabilité de la personnalisation d’Acumatica, un système de planification des ressources d’entreprise (ERP) basé sur le cloud. Un élément clé de ce processus consiste à utiliser un système de contrôle de code source pour gérer votre base de code, ainsi que le cadre de test Acumatica et les tests unitaires pour automatiser le test de vos personnalisations. À l’aide d’un outil CI/CD, vous pouvez automatiser le processus de construction, de test et de déploiement, ce qui vous permet de fournir des mises à jour cohérentes et rapides à votre instance Acumatica. Gardez à l’esprit que les étapes et les outils spécifiques que vous utilisez pour votre processus CI / CD dépendront de vos besoins spécifiques et peuvent nécessiter une certaine expérimentation pour trouver le meilleur ajustement pour votre équipe. Dans l’ensemble, la mise en œuvre de CI / CD pour la personnalisation d’Acumatica peut apporter de nombreux avantages et vaut la peine d’être envisagée pour toute équipe de développement.

Bon apprentissage!

Liens de référence et liens supplémentaires

Articles connexes

Auteur du blog

Ancien directeur général, Acumatica Labs Montréal. J’adore voyager et parler du cloud, de l’ERP, du SaaS, du développement de logiciels et je suis passionné par ce que je fais.

Recevez des mises à jour de blog dans votre boîte de réception.