小编Noa*_*mer的帖子

使用Setuptools(setup.py)构建Python包时使用动态版本

我们有一个大型遗留项目,其中包含一些 python 代码,项目中所有组件的版本都是在运行时由构建项目的构建系统设置的。我们现在需要使用其他组件使用的相同版本来打包 python 代码。
该包当前使用以下命令进行存档,python setup.py bdist_wheel没有版本控制。

问题是我们如何在构建期间将动态版本传递给 setup.py 命令。就像是:

python setup.py --version x.x.x bdist_wheel
Run Code Online (Sandbox Code Playgroud)

有几个选项可以覆盖版本文件,例如version.pyversion.txt使用新版本,然后在文件中使用它setup.py,但假设我们无法向构建过程添加更多步骤,只能修改构建命令和 python 文件,如何才能可以做吗?

其他要求:

  • 如果没有传递任何版本,则应使用默认值。
  • 该版本应该在 python 代码中可用(就像将其作为__version__参数一样__init__.py
  • 如果可能的话应该支持元数据配置的使用setup.cfgpyproject.toml元数据配置

python setuptools setup.py sdist

9
推荐指数
1
解决办法
3779
查看次数

如何强制詹金斯作业等待所有作业在循环中执行

在此,我需要在不等待的情况下触发 3 次迭代(下面的示例 3)我的作业,但在触发所有 3 个作业后,必须等到所有 3 个作业成功完成,无论失败或通过。

我正在使用 wait:true但这会等待每次迭代,这不是我想要的。如果我使用 wait: false,它不会等待循环中的所有迭代完成,也不会等待下游作业完成。我希望当前的工作等到我得到工作结果(3 个管道)。

//job1 is a pipeline job which i am triggering multiple times with different params

stage {
    for(int cntr=0;i<3;i++) {
         build job : "job1",
         parameters: [string(name: 'param1', value:val[cntr] )],
         wait: false
    }
}
Run Code Online (Sandbox Code Playgroud)

parallel-processing groovy jenkins jenkins-pipeline

1
推荐指数
1
解决办法
3949
查看次数