Jenkins在Mac上找不到离子CLI

时间:2019-06-02 07:54:09

标签: jenkins ionic-framework jenkins-pipeline

我正试图让Jenkins在我的Mac mini上构建我的Ionic项目,但它会出错

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

我有以下Jenkins文件。

    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'
           } 
        }
      }
    }

离子应放在/usr/local/bin中,例如,如果我得到以下信息。

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

如果我从命令行运行ionic,就会发现它。

最后,npm正常工作。

有什么想法找不到ionic CLI吗?

预先感谢

4 个答案:

答案 0 :(得分:0)

尝试使用withEnv

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

答案 1 :(得分:0)

最好使用您作为开发依赖项添加的ionic版本。在Jenkinsfile中,您可以像下面这样调用它。

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

答案 2 :(得分:0)

就我而言,Jenkins的Blue Ocean部分似乎不喜欢您在自己的编辑器之外编辑Jenkins文件。这就是我正在做的(只需从Gitlab编辑器进行编辑)。也许我有一些看不见的字符,因为我甚至收到错误消息说它不喜欢agent any!。

我删除了所有内容,然后重新开始,这次仅在Blue Ocean编辑器中进行了编辑,现在我所质疑的原始脚本可以正常工作,即它从提供的PATH中提取了离子cli。

答案 3 :(得分:0)

正确的答案在这里:https://stackoverflow.com/a/30905787/6437038

TLDR :在詹金斯工作的开始处添加#!/bin/bash -l