2017-10-10 5 views
0

Je veux ajouter une étape de processus dans mon pipeline, qui vérifie un projet de PTC Integrity. Il y a un exemple dans le Snippet Generator pour un checkin mais il n'est pas construit correctement, donc je ne peux pas prendre ça pour l'orientation.Comment passer à la caisse de PTC Integrity dans Jenkins Pipeline SCM Step Plugin

Étant donné que PTC Integrity n'est pas correctement documenté pour l'utilisation avec SCM Step Plugin (bien que pris en charge selon leur liste de compatibilité), je n'ai aucune idée de comment procéder.

Ma première étape a consisté à savoir s'il existe une classe d'intégrité SCM avec ce script de pipeline:

node { 
    checkout scm: [$class: 'IntegritySCM'] 
} 

Ce lancers francs comme prévu une IllegalArgumentException:

java.lang.IllegalStateException: cannot call getRootUrlFromRequest from outside a request handling thread 
at jenkins.model.Jenkins.getRootUrlFromRequest(Jenkins.java:2366) 
at hudson.scm.IntegritySCM.<init>(IntegritySCM.java:113) 
Caused: java.lang.reflect.InvocationTargetException 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
at java.lang.reflect.Constructor.newInstance(Unknown Source) 
at org.jenkinsci.plugins.structs.describable.DescribableModel.instantiate(DescribableModel.java:260) 
Caused: java.lang.IllegalArgumentException: Could not instantiate {serverConfig=d917f329-9826-4ffa-8bbd-de68271c4abd} 
for IntegritySCM(browser: IntegrityRepositoryBrowser{IntegrityWebUI(url: String)}, serverConfig: String, userName: String, password: String, configPath: String, includeList: String, 
excludeList: String, cleanCopy: boolean, lineTerminator: String, validCheckpoint: boolean, freezeMembers: boolean, noCheckout: boolean, 
restoreTimestamp: boolean, skipAuthorInfo: boolean, checkpointBeforeBuild: boolean, checkpointLabel: String, 
alternateWorkspace: String, fetchChangedWorkspaceFiles: boolean, deleteNonMembers: boolean, checkoutThreadPoolSize: int, configurationName: String) 

De ce que je peux conclure quels arguments peuvent être donnés pour la commande checkout. Maintenant, ma question est, comment puis-je construire la commande checkout dans le script pipeline?

j'ai vu un exemple sur la page GitHub du plugin étape scm mais pour Mercurial qui le fait comme ceci:

checkout scm: [$class: 'MercurialSCM', 'source': '....', clean: true...] 

Mais je ne peux pas l'appliquer à l'intégrité. Par exemple. Je ne sais pas comment dire à la commande le chemin du projet que je veux commander.

Répondre

0

L'outil générateur de fragment de pipeline peut être utilisé pour générer une syntaxe de pipeline pour toutes les classes SCM prises en charge par Pipeline. Vous pouvez jeter un coup d'oeil ici: https://jenkins.io/blog/2016/05/31/pipeline-snippetizer/

Un extrait de pipeline de l'échantillon est quelque chose comme ceci:

checkout([$class: 'IntegritySCM', checkpointBeforeBuild: false, configPath: '\integrity project configuration path\', configurationName: '7fc7dc75-f94e-4cc7-ab57-558f611d0fb8', deleteNonMembers: false, fetchChangedWorkspaceFiles: false, localClient: true, password: '{AQAAABAAAAAQ7YBJmtuzpndmmu/eUEL3v80g/oF3g+lzpM1S1JHkk5E=}', restoreTimestamp: false, serverConfig: '836d9a67-b82d-4cf3-ba06-c4557a18306b', skipAuthorInfo: false])