Jenkins Pipeline如何在首次初始化及文件变更时运行yarn命令?
解决方案
要解决首次初始化时无法触发yarn步骤的问题,只需要修改when条件,让它同时满足package.json变更或首次构建两种场景即可。
修改后的Pipeline代码
stage("Install NodeJS dependencies") { when { anyOf { changeset "package.json" expression { currentBuild.previousBuild == null } } } agent { docker { image 'node:14-alpine' reuseNode true } } steps { sh 'yarn --silent' sh 'yarn dev --silent' } }
代码说明
anyOf:表示只要满足其中一个条件就执行该stagechangeset "package.json":保留原有的检测逻辑,当package.json文件变更时触发expression { currentBuild.previousBuild == null }:判断当前是否为首次构建——首次构建时没有上一次构建记录,previousBuild会返回null,因此该条件成立
这样不管是首次初始化构建,还是后续package.json有变更的情况,都会自动执行yarn依赖安装和构建步骤。
内容的提问来源于stack exchange,提问作者F.Hazi
相关产品推荐
相关产品推荐

