首页 > 解决方案 > 将 package.json 版本注入 Gitlab CI 脚本

问题描述

将 package.json 中的值(名称和版本是我感兴趣的)注入 Gitlab CI 管道(即 .gitlab-ci.yml 文件)的最佳方法是什么?

我当前的用例是我想使用项目的名称和版本来启动 SonarQube 扫描,并且我不想更新 package.json 和 sonar-project.properties 文件中的版本。声纳扫描将在带有图像 sonarsource/sonar-scanner-cli:latest 的容器中执行,因此nodenpm命令不可用,但如有必要,我愿意安装它们。

标签: dockersonarqubegitlabgitlab-ci

解决方案


我发现我用来运行声纳扫描的 docker 映像 (sonarsource/sonar-scanner-cli:latest) 包含node可执行文件,这意味着我可以使用节点加载值:

sonar-scanner -Dsonar.projectKey=$(node -p -e "require('./package.json').name") -Dsonar.projectVersion=$(node -p -e "require('./package.json').version") -Dsonar.qualitygate.wait=true

推荐阅读