2
votes

Jenkins ne trouve pas la CLI ionique sur Mac

J'essaie de faire en sorte que Jenkins construise mon projet Ionic sur mon mac mini, mais il y a des erreurs avec

Dev-Mac-mini:bin Development$ which ionic
  /usr/local/bin/ionic

J'ai le fichier Jenkins suivant ..

    pipeline {
      agent any,
      environment {
         PATH='/usr/local/bin:/usr/bin:/bin'
     }
      stages {
        stage('Starting') {
          steps {
            echo 'Starting'
          }
        }
        stage('npm install') {
          steps {
            sh 'npm install'
          }
        }
        stage('IOS Build') {
          steps {
            sh 'ionic cordova build ios --prod --release'
           } 
        }
      }
    }

Ionic devrait être dans / usr / local / bin , par exemple si j'obtiens ce qui suit ..

line 1: ionic: command not found
script returned exit code 127

Et si j'exécute ionic à partir de la ligne de commande, il est trouvé.

Enfin, le npm fonctionne bien.

Toutes les idées quoi il ne trouverait pas le cli ionique ?

Merci d'avance


1 commentaires

Essayez de redémarrer l'agent jenkins si vous utilisez le style de communication d'agent maître. Sinon, redémarrez l'instance ou le service jenkins.


4 Réponses :


0
votes

Essayez d'utiliser withEnv:

withEnv([
  "PATH+LOCAL=/usr/local/bin"
]) {
  stage('IOS Build') {
    steps {
      sh 'ionic cordova build ios --prod --release'
    } 
  }
}


1 commentaires

J'ai essayé d'utiliser ce qui précède, mais quand je suis allé dans l'écran d'édition de Blue Ocean, j'ai obtenu Une erreur s'est produite lors du chargement du pipeline à partir du fichier Jenkins dans ce référentiel. Corrigez l'erreur en éditant le fichier Jenkins à l'aide de la syntaxe déclarative, puis validez-le dans le référentiel. attendant '}', trouvé '' @ ligne 27, colonne 1.`



0
votes

Il est toujours préférable d'utiliser la version d'ionic que vous avez ajoutée en tant que dépendance de développement. Et dans Jenkinsfile, vous pouvez l'invoquer comme ci-dessous.

sh "./node_modules/ionic/bin/ionic cordova build ios --prod --release"


1 commentaires

Devrait toujours pouvoir utiliser la CLI installée globalement (je l'ai globalement, et non local)



0
votes

Dans mon cas, il semble que la partie Blue Ocean de Jenkins n'aime pas que vous éditiez le fichier Jenkins en dehors de son propre éditeur. C'est ce que je faisais (juste éditer à partir de l'éditeur Gitlab). Peut-être que j'avais des caractères invisibles, car j'ai même fini par avoir des erreurs disant qu'il n'aimait pas agent any !.


0 commentaires

0
votes

La bonne réponse est ici: https://stackoverflow.com/a/30905787/6437038

TLDR : ajoutez #! / bin / bash -l au début de la tâche jenkins


0 commentaires