Adapter les paramètres de script à votre environnement - 7.2

Talend Software Development Life Cycle - Guide de bonnes pratiques

Version
7.2
Language
Français (France)
Product
Talend Big Data
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Module
Studio Talend
Talend Administration Center
Talend Artifact Repository
Talend CommandLine
Talend JobServer
Content
Administration et monitoring
Création et développement
Déploiement

Configurez le script de pipeline fourni par Talend afin de générer des éléments de projet en fonction de la phase Maven que vous visez et du référentiel dans lequel vous souhaitez déployer les artefacts.

Certains paramètres proviennent du fichier de paramètres (settings file) que vous avez vous-même configuré précédemment. Les informations de connexion sont celles stockées dans Jenkins. Pour plus d'informations concernant les paramètres Maven Talend que vous pouvez utiliser pour configurer votre pipeline, consultez Options du build Maven Talend personnalisé.

Procédure

  1. Ouvrez la page de configuration Talend_Pipeline et accédez à l'éditeur de Script.
  2. Définissez vos propres valeurs pour les variables d'environnement au début du script (nom de projet, nom/version/type du Job, URL du référentiel Git, etc.).
    Conseil : Cherchez les références XXX dans le script fourni par Talend en tant qu'exemple et remplacez-les par des valeurs correspondant à votre environnement.

    Vous pouvez trouver le script dans l'onglet Téléchargements du panneau de gauche de cette page.

    Vous pouvez trouver le script dans l'onglet Téléchargements de cette page en ligne, sur https://help.talend.com.

    Exemple

    Exemple d'un projet nommé CICD, d'un Job nommé job_feature956 avec la version 0.1 et d'une image Docker appelée cicd4talend :
    env.PROJECT_GIT_NAME = 'CICD'
    env.PROJECT_NAME = env.PROJECT_GIT_NAME.toLowerCase()
    env.ARTIFACT = 'job_feature956'
    env.VERSION = '0.1'
    env.GIT_URL = 'https://github.com/talend/myrepo.git'
    env.TYPE = "" // if big data = _mr
    env.UPDATESITE_URL 'http://localhost:8080/P2/'
    env.IMAGE_NAME = 'cicd4talend'
    env.GIT_CREDENTIALS_ID = 'git'
    env.DOCKER_CREDENTIALS_ID = 'docker'

    Si vous utilisez un projet référencé, vous devrez peut-être adapter le script de votre pipeline en conséquence.

    Avertissement : Syntaxe à respecter :
    • La valeur de la variable env.PROJECT_GIT_NAME doit être en majuscules, sinon elle risque de causer un échec du build. Si vous avez utilisé des caractères spéciaux dans le nom du projet ou que vous avez le moindre doute sur sa syntaxe finale, vous pouvez la vérifier dans le fichier parent pom.xml de votre projet (variable talend.project.name dans <project>/poms/pom.xml).
    • La valeur de la variable env.ARTIFACT doit être en minuscules même si le nom original de votre Job/Route/Service contient des majuscules, car tous les artefacts sont en minuscules dans les fichiers .pom requis pour lancer le build.
    • N'ajoutez pas manuellement le suffixe "-SNAPSHOT" à la valeur de la version. Les snapshots et les releases sont découplés de la version elle-même et doivent être gérés uniquement via les préférences du Studio, consultez Modifier la version de déploiement de chaque artefact en une fois.
  3. Pour définir le référentiel dans lequel vous souhaitez déployer les artefacts du projet : modifiez l'URL du référentiel inscrit sur la lignemavenOpts à l'étape "Build, Test and Publish artifacts to artifact repository".
    Le référentiel défini dans le script par défaut que fournit Talend est le référentiel Nexus snapshots.

    Exemple

    • mavenOpts: '-Dlicense.path=/home/talend/talend_studio/license -Dupdatesite.path=${UPDATESITE_URL} -DaltDeploymentRepository=snapshots::default::http://nexus:8081/repository/snapshots/ -Xms1024m -Xmx3096m')

      (Unix) vous permet de déployer des artefacts dans un référentiel Nexus snapshots (pour les projets en développement et les artefacts dont la version est -SNAPSHOT). Vous devez spécifier l'URL de votre référentiel d'artefacts.

    • mavenOpts: '-Dlicense.path=C:/Talend/talend_studio/license -Dproduct.path=C:/Talend/talend_studio -Dgeneration.type=local -DaltDeploymentRepository=releases::default::http://nexus:8081/repository/releases/ -Xms1024m -Xmx3096m')
      (Windows) vous permet de déployer des artefacts dans un référentiel Nexus releases (afin d'obtenir des artefacts de release stables dans un environnement de production). Vous devez spécifier l'URL de votre référentiel d'artefacts.
      Remarque : Le type de génération de mode server de Talend CommandLine est déprécié, il est recommandé d'utiliser le paramètre -Dupdatesite.path afin de télécharger et d'installer automatiquement Talend CommandLine lors du build ou d'utiliser le type de génération local.
  4. Afin de définir la phase Maven que vous visez : assurez-vous que la phase spécifiée aux étapes "Build, Test and Publish artifacts to artifact repository" et "Push to a Docker Registry" est celle que vous souhaitez exécuter.
    Pour plus d'informations concernant les phases Maven, consultez la documentation Maven (en anglais).
    Conseil : Tous les profils de build (-Pdocker, -Pnexus, etc.) sont listés dans le fichier pom.xml parent de votre projet. Certains paramètres par défaut, comme le nom de l'image Docker ou le nom Open JDK, peuvent également être écrasés dans ce fichier.

    Exemple

    • sh "mvn -f $PROJECT_GIT_NAME/poms/pom.xml clean deploy -Pnexus -fn -e -pl jobs/routes${TYPE}/${ARTIFACT}_${VERSION} -am"
      (Unix) vous permet de prendre la Route packagée en tant que jar ou .zip et de la déployer dans le référentiel Nexus de votre choix.
    • bat "mvn -f $PROJECT_GIT_NAME/poms/pom.xml deploy -Pdocker -fn -e -pl jobs/process${TYPE}/${ARTIFACT}_${VERSION}"
      (Windows) vous permet de prendre le code compilé, de le packager en tant qu'image Docker et de le déployer dans le référentiel de votre choix.

      Pour des exemples de filtres que vous pouvez appliquer sur l'exécution de vos éléments de projet, consultez Filtrer l'exécution du projet sur des artefacts sélectionnés.

  5. Pour définir le registre Docker dans lequel vous souhaitez déployer les artefacts du projet : assurez-vous que les informations de connexion spécifiées dans la ligne mavenOpts de l'étape "Push to a Docker registry" sont bien celles que vous avez précédemment stockées dans Jenkins.

    Exemple

    mavenOpts: '-Dcommandline.skip=true -Dlicense.path=${LICENSE} -Dupdatesite.path=${UPDATESITE_URL} -Ddocker.push.registry=registry.hub.docker.com/${env.Dusername} -Ddocker.push.username=${env.Dusername} -Ddocker.push.password=${env.Dpassword} -Xms1024m -Xmx3096m')
    vous permet de déployer les artefacts sous la forme de l'image Docker que vous avez définie auparavant dans le registre Docker de votre choix. Vous devez spécifier le chemin d'accès au répertoire d'installation du Studio Talend. Les identifiants du registre Docker se référent aux identifiants précédemment stockés dans Jenkins.
    Remarque : Le paramètre -Dcommandline.skip=true peut être utilisé uniquement si vous avez précédemment généré vos artefacts à l'aide de Talend CommandLine.
  6. Cliquez sur Save pour prendre en compte vos modifications.
Résolution de problèmes :

Dépannage :

Si vous obtenez l'erreur suivante lorsque vous essayez de publier des features ESB :

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file (deploy-file) on project XXX-feature: 
*The parameters 'url' for goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file are missing or invalid*

ajoutez ces paramètres aux options Maven pour les artefacts Release :

-Dproject.distributionManagement.repository.url=http://localhost:8081/repository/releases/
-Dproject.distributionManagement.repository.id=releases

ou les paramètres suivants pour les artefacts Snapshot :

-Dproject.distributionManagement.snapshotRepository.url=http://localhost:8081/repository/snapshots/
-Dproject.distributionManagement.snapshotRepository.id=snapshots