使用 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 的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章
Rancher 构建 CI/CD 自动化流程 - 动态配置 Jenkins-slave
CI/CD技术专题「Jenkins实战系列」重塑Jenkins服务进行自动合并的方案实现(纠正错误)