我有2份工作' job1'和' job2'。我将触发' job2'来自' job1'。我需要获得' job1'的控制台输出。构建触发' job2'并希望在' job2'。
中处理它答案 0 :(得分:0)
您可以使用Post Build Task插件,然后使用wget命令获取控制台输出:
angular.module('app',[])
.directive('onLongPress', function($timeout) {
return {
restrict: 'A',
link: function($scope, $elm, $attrs) {
$elm.bind('mousedown', function(evt) {
// Locally scoped variable that will keep track of the long press
$scope.longPress = true;
// We'll set a timeout for 600 ms for a long press
$timeout(function() {
if ($scope.longPress) {
// If the touchend event hasn't fired,
// apply the function given in on the element's on-long-press attribute
$scope.$apply(function() {
$scope.$eval($attrs.onLongPress)
});
}
}, 600);
});
$elm.bind('mouseup', function(evt) {
// Prevent the onLongPress event from firing
$scope.longPress = false;
// If there is an on-touch-end function attached to this element, apply it
if ($attrs.onTouchEnd) {
$scope.$apply(function() {
$scope.$eval($attrs.onTouchEnd)
});
}
});
}
};
})
.controller('MainCtrl', function($scope){
$scope.test = 'Angular 1.4.7';
$scope.itemOnLongPress = function(){
$scope.test = "Long pressed";
};
$scope.itemOnTouchEnd = function(){
$scope.test = "Touch end";
};
});
答案 1 :(得分:0)
困难的部分是找出触发下游作业(job1
)的上游作业(job2
)的内部版本号。获得后,您可以访问控制台日志,例如:正如${BUILD_URL}consoleOutput
所述,正如ivoruJavaBoy所指出的那样。
下游构建如何确定已触发的作业和构建号?这在詹金斯非常困难:
解决方案A(“显式”方法):使用Parameterized Trigger Plugin“手动”将构建号参数从job1
传递到job2
。除了管理开销之外,该方法还有一个更大的缺点:job1
和job2
将不再异步运行;对于每次运行job2
,完全一次job1
次运行。如果job2
比job1
慢,那么您需要规划资源以避免在队列中堆积job2
。
因此,某些解决方案“B”会更好,您可以从Jenkins的内部数据中提取隐式上游信息。你可以使用Groovy;更简单的方法可能是使用job2
中的Job Exporter Plugin。该插件将在job2
版本的工作区中创建“属性”(文本)文件。该文件包含两个条目,其中包含您正在查找的信息:
build.upstream.number Number of upstream job that triggered this job. Only filled if the build was triggered by an upstream project.
build.upstream.project Upstream project that triggered this job.
读取该文件,然后使用该信息通过上面的URL读取控制台日志。