我正试图让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吗?
预先感谢
答案 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