小编sic*_*ear的帖子

Jenkins 管道在作业之间共享信息

我们正在尝试在 Jenkins 上定义一组将执行真正特定操作的作业。JobA1将构建maven项目,JobA2将构建.NET代码,JobB将其上传到Artifactory,JobC将从Artifactory下载它,JobD将部署它。每个作业都会有一组参数,因此我们可以对任何产品(大约 100 个)重复使用相同的作业。

这背后的想法是创建黑匣子,我调用一个带有一些输入的作业,并且我总是得到一些输出,无论之间发生什么,我都不关心。另一方面,这使我们能够单独改进每项工作,增加所需的复杂性,所有产品都会立即受益。

我们希望使用 Jenkins Pipeline 来编排操作的执行。我们将为每个环境/用途建立一个管道。

  • PipelineA将调用JobA1,然后调用JobB上传到artifactory。
  • PipelineB 将下载包 JobC,然后部署到 staging。
  • PipelineC 将下载包 JobC,然后根据一些内部验证部署到生产环境。

我尝试从 JobA1 中获取一些变量(POM 基本内容,例如 ArtifactID 或 Version)注入到 JobB 但信息似乎没有被传输。下载文件时也会发生同样的情况,我调用 JobC 但该文件位于作业工作区中,无法用于任何其他工作区,而且我担心“外部工作区管理器”插件会增加太多复杂性。

除了共享工作空间之外,还有什么方法可以实现我的目的吗?我知道共享工作区将导致无法同时运行两个管道我是否遵循正确的路径或者我在做什么奇怪的事情?

jenkins jenkins-pipeline

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

jenkins ×1

jenkins-pipeline ×1