我正在使用管道(Jenkinsfile
),我需要更改节点版本。我添加了Nvm Wrapper插件,但我不知道如何正确使用Jenkinsfile
我应该在nvm('...') {}
内添加steps
吗?或者它应该是node
步中的顶级位置?
目前我甚至没有node
步骤 - 一切都是使用sh
答案 0 :(得分:4)
对我有用的是什么:
pipeline {
agent any
stages {
stage("Build") {
steps {
nvm(nvmInstallURL: 'https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh',
nvmIoJsOrgMirror: 'https://iojs.org/dist',
nvmNodeJsOrgMirror: 'https://nodejs.org/dist',
version: '8.1.2') {
sh "npm install"
echo "Build main site distribution"
sh "npm run build:dist"
}
}
}
...
答案 1 :(得分:0)
我最终使用了它,它也可以与.nvmrc文件一起使用
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>demo.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
这希望将nvm安装在jenkins主文件夹中。但是添加一个首先在正确位置下载nvm的步骤很容易。
答案 2 :(得分:0)
这对我有用
sh 'bash -l -c ". $HOME/.nvm/nvm.sh ; nvm use <version> || nvm install <version> && nvm use <version> "'
示例:
sh 'bash -l -c ". $HOME/.nvm/nvm.sh ; nvm use 8.0 || nvm install 8.0 && nvm use 8.0 "'