Tag: jenkins pipeline

Jenkins:使用Docker作为构build环境的权限问题

我在Ubuntu 16.04机器上安装了Jenkins。 jenkins本身并不在容器中运行。 我想要做的只是使用节点图像调用yarn install 。 所以这里是我的Jenkinsfile: pipeline { agent any stages { stage('install node modules…') { agent { docker 'node' } steps { sh 'cd /path/to/package.json; yarn install' } } } } 很简单,对吧? jenkins用户/组为112:116 ,节点容器的uid为1000 ,因此纱线处理(作为节点用户1000运行)无法完成其任务,如mkdir /.config 。 我试图旋转节点容器传递参数-u 1000 ,它尝试创build持久目录时遇到权限问题。 它看起来像是其中一种问题,我该如何解决这个问题?

如何使用jenkinspipe道与nvm包装插件?

我正在使用pipe道( Jenkinsfile ),我需要更改节点版本。 我添加了Nvm包装插件,但我不知道如何正确使用它从Jenkinsfile 我应该在steps添加nvm('…') {}吗? 或者它应该在node步骤的顶层? 目前我甚至没有node步骤 – 一切都使用sh完成

如果事情已经改变,只能build立项目

我们想把我们的项目分成小块。 我们目前的CI过程经历了一个短暂的testing阶段,然后运行一个部署脚本。 但是,如果子项目中没有任何变化,我们不想为此通过构build。 没有pipe道的Jenkins支持SCMconfiguration中的排除(我们使用git),并基于此,可以configuration特定的作业运行。 但是,当使用pipe道时,我怎么知道,如果我应该build立这个部分? 如何访问受上次推送影响的path? 目前我们的脚本非常简单,我们希望尽可能简单。 我们正在玩脚本语句和声明语法,但找不到一个好的解决scheme。 声明: #!groovy​ pipeline { agent any tools { nodejs '8.1' } stages { stage('Checkout') { steps { checkout scm } } # Only continue, if something has changed stage('Install') { steps { sh 'npm install' } } stage('Test') { steps { sh 'npm run test-jenkins' } post […]

如何避免Jenkins上不需要的“animation”控制台输出

有时我在Jenkins Job Output中find这样的日志行: [|] [/] [-] [\] [|] [/] [-] [\] [|] [/] [-] 我知道这些行来自“进步微调”( https://askubuntu.com/questions/623933/how-to-create-a-rotation-animation-using-shell-script ),但他们看起来很奇怪,文本日志。 它变得更糟,当一个工具使用一个“命令行进度条”,例如当拉动一个Docker Image或一个NPM包时 – 那么这个日志包含真正丑陋的(和不必要的)日志块。 … xtracting [=============> ] 15.2 MB/50.31 MB xtracting [==============> ] 15.2 MB/50.31 MB xtracting [===============> ] 15.2 MB/50.31 MB xtracting [================> ] 15.2 MB/50.31 MB xtracting [=================> ] 15.2 MB/50.31 MB —- 是否存在任何Jenkins插件(如Ansi-Color插件 ),它显示animation或将输出缩小到最终的“位置”? […]

Jenkinspipe道:selectnodejs版本(+ python版本)

我正在Jenkins文件中面临Jenkinspipe道的问题。 我的Jenkins实例上有4个不同的nodeJs版本。 我想select我要在我的pipe道中使用哪一个,但官方插件示例( https://wiki.jenkins-ci.org/display/JENKINS/NodeJS+Plugin )根本不起作用。 我尝试了第一种方法,失败了,因为$ PATH被tools部分覆盖。 pipeline { agent any tools { // I hoped it would work with this command… nodejs 'nodejs6' } stages { stage('Example') { steps { sh 'npm –version' // Failed saying : // Running shell script //nohup: failed to run command 'sh': No such file or directory } } […]

使用pipe道插件在jenkins 2.0上安装节点

我正在运行以下docker图像jenkinsci/jenkins:2.0-rc-1来试用jenkins 2.0和“pipe道”视图。 我似乎无法安装节点。 这是我的pipe道脚本: node { //tool([name: 'node-5.10.1', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation']) sh 'echo $(whoami)' sh 'node -v' } 运行时的响应是: [ci] Running shell script + whoami + echo jenkins jenkins [Pipeline] sh [ci] Running shell script + node -v /../durable-3b0b1b07/script.sh: 2: /../durable-3b0b1b07/script.sh: node: not found 这是我试过的: jenkins NodeJS工具(与自由式作业一起使用时可以正常工作) login到Docker容器并手动安装节点,对于同一个用户: 更新: build立在Jesse Glick的答案下面,我将结果添加到我的脚本PATH : node { def nodeHome […]