Fermer

avril 28, 2021

MuleSoft Build and Deploy: Actions GitHub pour la configuration CI / CD


Dans ce blog, je vais vous présenter un processus étape par étape pour configurer les flux de travail CI / CD à l'aide des actions GitHub pour les projets d'intégration de la plate-forme MuleSoft Anypoint avec GitHub comme référentiel de projet.

Tout d'abord, vous devez créer un exemple d'application MuleSoft 4 dans Anypoint Studio. Exécutez et testez l'application dans Anypoint Studio. Archivez le projet dans GitHub pour une compilation automatique et déployez-le sur la plate-forme Anypoint pour tout nouvel archivage de code ou mise à jour du code existant.

GitHub Action Prerequisites

  • Repo access
  • Anypoint Platform Access
    • Pour déployer une application dans l'organisation / groupe d'activité CloudHub Anypoint Environment: les informations d'identification de l'environnement, de l'ID client et du secret client sont requises

Configurations d'application MuleSoft

Toutes les applications MuleSoft 4 sont compatibles Maven. Afin d'utiliser efficacement Maven pour la construction et le développement, les configurations suivantes doivent être disponibles pour chaque projet qui doit être activé pour CI / CD dans DevOps.

Maven Project Pom.xml Configuration : Every pom Le fichier .xml dans un projet MuleSoft doit avoir cette configuration pour activer CI / CD.

MUnit Maven Plugin Configuration : Cette configuration permet d'exécuter des tests MUnit et de valider pour une couverture de test minimale avant d'autoriser la construction et le déploiement réussis.

com.mulesoft.munit.tools

munit-maven-plugin

$ {munit.version}

[19659002]

test

test

test

rapport de couverture

true [19659002] vrai

0

0

80

html

Assurez-vous que vous disposez d'une licence pour accéder au référentiel d'entreprise MuleSoft pour exécuter un test MUnit dans GitHub Action. Pour plus de documentation et d'instructions, cliquez ici .

Mule Maven Plugin Configuration : Ce plugin est utilisé pour le déploiement d'applications basé sur CLI en utilisant l'objectif de déploiement Maven.

La configuration ci-dessous est un exemple de déploiement dans un environnement CloudHub:

org.mule.tools.maven

mule-maven-plugin

$ {mule.maven.plugin .version}

true

https://anypoint.mulesoft.com

$ {app.runtime}

$ {username}

$ {password}

$ {project.name}

Sandbox

MICRO

us-east-2

1

vrai

Les variables qui apparaissent entre $ {} sont externalisées et fournies lors de l'exécution de l'action GitHub à l'aide de secrets.

Configurations d'action GitHub

La configuration ci-dessous suppose que le projet MuleSoft est maintenu dans son propre référentiel GitHub.

 Plateformes et technologie - Un guide des chefs d'entreprise sur les principales tendances du cloud

Construisez et déployez dans n'importe quel environnement . Toute poussée vers la branche déclenchera des tâches GitHub Actions. Dans le cadre de ces actions, cela déclencherait la génération, le test et le package, puis déploierait l'application. Si un test échoue ou si la couverture du test est inférieure au seuil défini, l'exécution du workflow échoue et le déploiement est abandonné.

Workflow setup : sous Action, configurez le workflow GitHub Action. Créez un fichier de workflow dans .github / workflows et nommez-le < -build-deploy.yaml. Ce flux de travail déclenchera le processus de construction et de déploiement chaque fois qu'un utilisateur poussera la modification vers la branche dev ou lèvera une pull request sur la branche dev.

 Github 1

Remplacez les détails de l'action yaml par l'exemple de workflow Action suivant. Cela extraira le code MuleSoft disponible dans le référentiel GitHub actuel et déploiera l'application sur la plate-forme Anypoint en fonction du nom d'utilisateur et du mot de passe fournis dans la section des secrets du référentiel.

# Ce flux de travail créera et déploiera un projet MuleSoft

nom: Déploiement de MuleSoft avec GitHub Actions CI

# Contrôle quand l'action sera exécutée.

sur:

# Déclenche le flux de travail sur les événements de demande push ou pull sur la branche dev [19659002] push:

branches: [dev ]

pull_request:

branches: [ dev ]

# Vous permet d'exécuter ce workflow manuellement à partir de l'onglet Actions workflow_dispatch:

[19659002] # Un workflow exécuté est composé d'un ou plusieurs jobs

jobs:

# “build”

build:

# Le type de runner sur lequel le job s'exécutera

runs-on : ubuntu-latest

# Les étapes représentent une séquence de tâches qui seront exécutées dans le cadre du travail

étapes:

# Extrait votre référentiel

– utilise: actions / checkout @ v2

– utilise: actions / cache @ v1

avec:

chemin: ~ / .m2 / repository

clé: $ {{runner.os}} – maven – $ {{ hashFiles ('** / pom.xml')}}

clés de restauration: | [1 9659002] $ {{runner.os}} – maven-

– nom: Configurer JDK 1.8

utilise: actions / setup-java @ v1

avec:

version java: 1.8 [19659002]

– nom: build

run: mvn -B package –file pom.xml

– nom: nom de fichier d'artefact avec hachage de validation

run: |

artifactName1 = $ ( ls cible / *. jar | head -1)

commitHash = $ (git rev-parse –short “$ GITHUB_SHA”)

artifactName2 = $ (ls target / *. jar | head -1 | sed “s / .jar /.$ commitHash .jar / g ”)

mv $ artifactName1 $ artifactName2

– utilise: actions / upload-artifact @ master

avec:

nom: artifacts

chemin: cible / *. jar

deploy:

needs: build

runs-on: ubuntu-latest

étapes:

– utilise: actions / checkout @ v2

– utilise: actions / cache @ v1

avec:

chemin: ~ / .m2 / repository

clé: $ {{runner.os}} – maven – $ {{hashFiles ('** / pom.xml')}}

restore-keys: |

$ {{runner.os}} – maven-

– utilise: actions / download-artifact @ master

avec:

name: artifacts

[19659002] – nom: Deploy to Anypoint Platform

env:

USERNAME: $ {{secrets.ANYPOINT_USERNAME}}

PASSWORD: $ {{secrets.ANYPOINT_PASSWORD}}

run: |

artifactName = $ (ls * .jar | tête -1)

[1 9659002]

mvn mule: deploy -Dmule.artifact = $ artifactName -Dusername = $ USERNAME -Dpassword = $ PASSWORD

Define secrets tels que le nom d'utilisateur et le mot de passe de la plateforme Anypoint à utiliser dans le flux de travail pour déployer une application.

 Github 2

Construisez et déployez l'application . Le flux de construction et de déploiement de l'action GitHub sera déclenché soit en mettant à jour un fichier, soit en archivant un nouveau fichier dans le référentiel:

 Github 3

 Github 4 [19659002]  Github 5

 Github 6 En suivant ces étapes simples, vous pouvez configurer des flux de travail CI / CD rationalisés et efficaces à l'aide de la plate-forme Anypoint de MuleSoft.

Contactez-nous pour en savoir plus sur ce que vous pouvez faire avec MuleSoft.

À propos de l'auteur

Axaya Jena est un architecte technique chez Perficient avec des rôles interfonctionnels dans le développement, le responsable technique, l'architecture de solution et l'analyse fonctionnelle / commerciale impliquant des applications TIBCO, MuleSoft et Java couvrant les secteurs de la finance, des télécommunications et de la vente au détail.

Plus de cet auteur




Source link