使用 Nx 在 Jenkins 中进行 CI/CD 的最佳方式

Posted

技术标签:

【中文标题】使用 Nx 在 Jenkins 中进行 CI/CD 的最佳方式【英文标题】:Best way for CI/CD in Jenkins with Nx 【发布时间】:2021-08-09 21:44:32 【问题描述】:

我对 Nx Workspace 的最佳实践和一个大问题有一些疑问。

我想将我的所有项目移到 Nx 工作区,因为我有很多共享库。

这将导致多个应用程序只有一个 bitbucket 存储库和一个 jenkins 管道。 (我的 jenkins 管道正在 AWS 服务器上检查、检查、构建和部署我的应用程序。)

第一:什么是这份工作的最佳选择?正如许多文章和 Nrwl 文档所说:我可以使用命令 nx affected 仅构建、部署受我的更改影响的应用程序。

然而,这会导致 jenkins 控制台出现此错误

fatal: Not a valid object name master
fatal: No such ref: 'master'
nx affected

我试过了

npx nx affected --target=test --base=master
npx nx affected --target=test --base=origin/master
npx nx affected --target=test --base=remote/origin/master

但它们都没有工作。 Jenkins 找不到 master 分支。

你是怎么做这个过程的?

第二个:如果我决定在生产环境中部署,我所有的应用都将被部署,并且我所有的应用都将具有相同的版本号(只有一个 package.json)。

【问题讨论】:

【参考方案1】:

您可能希望引用--base=HEAD~1,如本文档所示: https://nx.dev/l/r/ci/monorepo-ci-jenkins

这恰好对我们的 CICD 开发人员有用,希望对您有所帮助!

【讨论】:

以上是关于使用 Nx 在 Jenkins 中进行 CI/CD 的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章

CI与CD之Docker上安装Jenkins

Rancher 构建 CI/CD 自动化流程 - 动态配置 Jenkins-slave

在CI/CD环境中部署Jenkins

CI/CD技术专题「Jenkins实战系列」重塑Jenkins服务进行自动合并的方案实现(纠正错误)

Jenkins自动化CI CD流水线之6--构建邮件状态通知

写给前端的 Jenkins 教程——快速实现前端/ Node.js 项目的 CI/CD