我有一个Jenkinsfile,它应该使用nvm在管道中安装一个特定的nodejs。这个管道使用一个安装了nvm的Jenkins代理。Jenkinsfile看起来像这样:
#!groovy
pipeline {
agent { label 'nvm' }
options {
// Add timestamps to the console output
timestamps()
// Avoid clutter - only keep the last 15 builds
buildDiscarder(logRotator(numToKeepStr: '15', artifactNumToKeepStr: '15'))
}
environment {
shortCommit = sh(returnStdout: true, script: 'git rev-parse HEAD').trim().take(8)
}
stages {
stage('Initialize Build') {
steps {
initBuild(commit: env.shortCommit)
}
}
stage('Unit Test') {
steps {
echo "Running Tests!"
sh """#!/bin/bash
set -exuo pipefail
/usr/local/nvm/nvm.sh use 10.16.3
/usr/local/nvm/nvm.sh alias default 10.16.3
which node
node -v
which nvm.sh
nvm.sh --version
"""
}
}
}
}
当我运行构建时,我总是在stdout中看到以下内容:
16:00:48 + /usr/local/nvm/nvm.sh use 10.16.3
16:00:49 + /usr/local/nvm/nvm.sh alias default 10.16.3
16:00:49 + which node
16:00:49 /usr/bin/node
16:00:49 + node -v
16:00:49 v10.14.2
16:00:49 + which nvm.sh
16:00:49 /usr/local/nvm/nvm.sh
16:00:49 + nvm.sh --version
我注意到当我运行which node
时,它总是指向/usr/bin/node
。有没有办法在Jenkinsfile中覆盖它,以便它实际上使用我在nvm中配置的节点版本?所以基本上我希望确保Jenkins管道指向nvm设置的指定节点版本。
4条答案
按热度按时间628mspwn1#
看起来您在jenkinsfile中只提供了“agent”。您还需要在“agent”中提供其他“node”
确保在Jenkins服务器上创建节点。
exdqitrt2#
在管道中使用withENV设置不同版本的节点路径。
t40tm48m3#
您可以直接使用节点10路径:
rhfm7lfc4#
我们在React/RN for Web项目中有一个
cicd/cicd.properties
文件,您可以像这样指定节点版本: