Adaptation des paramètres de script à votre environnement - Cloud

Talend Software Development Life Cycle pour le Cloud - Guide de bonnes pratiques

Version
Cloud
Language
Français (France)
Product
Talend Cloud
Module
Studio Talend
Talend Artifact Repository
Talend Management Console
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 compte Talend Cloud ou du référentiel dans lequel déployer vos 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 de cette page sur Talend Help Center.

    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.CLOUD_URL = 'https://tmc.us.cloud.talend.com/inventory/'
    env.TYPE = "" // if big data = _mr
    env.UPDATESITE_URL 'http://localhost:8080/P2/'
    env.IMAGE_NAME = 'cd4talend'
    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 l'espace de travail et l'environnement de Talend Cloud dans lesquels vous souhaitez déployer les artefacts du projet, modifiez les valeurs de la ligne mavenOpts, dans l'étape 'Build, Test and Publish artifacts to Cloud'.

    Exemple

    • mavenOpts: '-Dlicense.path=/home/talend/talend_studio/license -Dupdatesite.path=${UPDATESITE_URL} -Dservice.url=${CLOUD_URL} -Dcloud.publisher.environment=PROD
      -Dcloud.publisher.workspace=CI_WORKSPACE -Dcloud.publisher.screenshot=true'

      vous permet de déployer des artefacts (avec les captures d'écran) dans un compte Talend Cloud dans un espace de travail nommé CI_WORKSPACE dans un environnement PROD. Vous devez spécifier votre environnement et espace de travail de Talend Cloud.

    Remarque :
    • Si vous avez activé l'authentification unique (SSO) pour vous connecter à Talend Cloud, vous devez ajouter le paramètre -Dcloud.token=<MyAccessToken> à ces commandes.
    • L'artefact publié dans Talend Cloud ne peut dépasser 400 Mo.
  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

    • bat "mvn -f $PROJECT_GIT_NAME/poms/pom.xml clean -Pcloud-publisher deploy -fae -e -pl jobs/process${TYPE}/${ARTIFACT}_${VERSION} -am"
      (Windows) vous permet de copier les packages des artefacts finaux dans le compte Talend Cloud de votre choix.

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

    • sh "mvn -f $PROJECT_GIT_NAME/poms/pom.xml deploy -Pdocker -fae -e -pl jobs/process${TYPE}/${ARTIFACT}_${VERSION} --context=Prod"
      (Unix) vous permet de copier les packages des artefacts finaux dans le conteneur Docker de votre choix, tout en modifiant l'environnement de contexte de Prod (avec --context). Cet environnement doit avoir été précédemment défini dans Studio Talend, cependant, si vous n'avez pas défini de paramètre de contexte, vous pouvez utiliser --context_param pour les définir lors du build.
  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