jenkins 线程管道中的 2 个作业 运行 是否安全?
Are 2 jobs running in pipeline of jenkins thread safe?
我 运行 在 jenkins 的两个管道中有两个工作。这两个项目使用以前构建的构建参数。这些构建参数创建如下:
def buildVariables = lastSuccBuild.getBuildVariables()
nextPluginVersion = buildVariables.get("PluginNextVersion")
List<StringParameterValue> parameterValuesAl = new ArrayList<StringParameterValue>();
parameterValuesAl.add(new StringParameterValue("PluginNextVersion", nextPluginVersion.toString()))
parameterValuesAl.add(new StringParameterValue("PluginMajorVersion", majorVersion.toString()))
parameterValuesAl.add(new StringParameterValue("PluginBuildVersion", buildVersion.toString()))
def versions = new ParametersAction(parameterValuesAl)
// add variable to current job
Thread.currentThread().executable.addAction(versions)
} catch (Throwable t) {
println(t)
t.printStackTrace()
throw t;
}
这两个作业使用具有相同变量的相同脚本。
如果两个构建同时执行,这会导致问题吗?
不,这不会造成任何问题。
由于两条管道不同,所以管道共享的所有资源都是不同的。因此,如果两个管道中的两个构建使用相同的脚本,则变量将具有不同的上下文。
我 运行 在 jenkins 的两个管道中有两个工作。这两个项目使用以前构建的构建参数。这些构建参数创建如下:
def buildVariables = lastSuccBuild.getBuildVariables()
nextPluginVersion = buildVariables.get("PluginNextVersion")
List<StringParameterValue> parameterValuesAl = new ArrayList<StringParameterValue>();
parameterValuesAl.add(new StringParameterValue("PluginNextVersion", nextPluginVersion.toString()))
parameterValuesAl.add(new StringParameterValue("PluginMajorVersion", majorVersion.toString()))
parameterValuesAl.add(new StringParameterValue("PluginBuildVersion", buildVersion.toString()))
def versions = new ParametersAction(parameterValuesAl)
// add variable to current job
Thread.currentThread().executable.addAction(versions)
} catch (Throwable t) {
println(t)
t.printStackTrace()
throw t;
}
这两个作业使用具有相同变量的相同脚本。
如果两个构建同时执行,这会导致问题吗?
不,这不会造成任何问题。
由于两条管道不同,所以管道共享的所有资源都是不同的。因此,如果两个管道中的两个构建使用相同的脚本,则变量将具有不同的上下文。