Je cherchais récemment un moyen de développer des scripts d’intégration continue, sans pour autant ‘polluer’ la base git du projet en cours de commits temporaires.

Mon but était d’obtenir un moyen d’écrire directement des scripts dans l’UI web de Jenkins. J’étais conscient du fait qu’il est possible d’inclure des scripts bash directement une pipeline : cependant, arriver à trouver la bonne syntaxe en échappant correctement les apostrophes et les ‘$’ relève (pour moi) de l’exploit.

La manière la plus simple de procéder me semble être la suivante :

  1. Installer le plugin Config File Provider
  2. Créer un script quelconque : Se rendre dans “Administrer Jenkins” => “Configuration files” Puis, cliquer en haut à gauche sur “Add a new config” Choisissez ensuite le type de fichier que vous souhaitez ajouter, et copier-coller la valeur du champ ‘ID’ quelque part.
  3. Utiliser ce script dans un job ou une pipeline Jenkins Voici un exemple de pipeline basique qui vous permettra d’afficher le contenu de ce script … Voir de l’exécuter !
pipeline {
    agent any 
    stages {
        stage('Build') { 
            steps {
                configFileProvider([configFile(fileId: '9148c22f-0691-4ff2-a717-e687d7486ba3', variable: 'custom_script')]) {
    sh("cat $custom_script")
}
            }
        }
    }
}

La valeur de $custom_script sera ici remplacée par le lien absolu vers le script (celui-ci est géré en interne par Jenkins, dans mon exemple, le lien était le suivant : /var/jenkins_home/workspace/test@tmp/config4279351128568850398tmp).

En sachant que celui-ci était un script bash, pour l’exécuter, il faudra ici remplacer dans l’exemple précédent “cat” par “bash”.