2016-07-06 20 views
7

Tôi đang gặp một số rắc rối khi thao tác với kết quả xây dựng của đường ống Jenkins. Tôi đã thu hẹp nó xuống vấn đề sau đây: bất cứ ai biết tại sao đường ống Jenkins sau đây không làm cho kết quả xây dựng THÀNH CÔNG? Thay vào đó, việc xây dựng không thành công.Làm thế nào để thao tác kết quả xây dựng của một công việc đường ống Jenkins?

print "Setting result to FAILURE" 
currentBuild.result = 'FAILURE' 

print "Setting result to SUCCESS" 
currentBuild.result = 'SUCCESS' 
+0

Bạn đã thử thực hiện toàn bộ tập lệnh bên trong một nút 'đơn'? –

+0

Chỉ cần thử điều đó, nhưng hành vi tương tự. – Joost

Trả lời

11

Tôi đoán đây là do thiết kế "kết quả chỉ có thể tồi tệ hơn" trong setResult():

// result can only get worse 
if (result==null || r.isWorseThan(result)) { 
    result = r; 
    LOGGER.log(FINE, this + " in " + getRootDir() + ": result is set to " + r, LOGGER.isLoggable(Level.FINER) ? new Exception() : null); 
} 

Đó là một con số thấp

+1

Thật ngu ngốc. :( –

+3

Ý tưởng là bỏ qua kết quả công việc bên trong đường ống bằng cách đặt Tuyên truyền thành false – MarcusUA

+0

@MarcusUA làm cách nào tôi có thể bỏ qua kết quả của một giai đoạn chứ không phải công việc bên ngoài? –

0

Đó của công trình và có thể được thực hiện từ một công việc khác!

import com.cloudbees.groovy.cps.NonCPS 
import jenkins.model.* 
import hudson.model.Result 

@NonCPS 
def getProject(projectName) { 
    // CloudBees folder plugin is supported, you can use natural paths: 
    // in a postbuild action use `manager.hudson` 
    // in the script web console use `Jenkins.instance` 
    def project = jenkins.model.Jenkins.instance.getItemByFullName(projectName) 
    if (!project) {error("Project not found: $projectName")} 
    return project 
} 

project = getProject('foo/bar') 
build = project.getBuildByNumber(2443) 
// build = project.getBuild(project, '2443') 

[email protected] = hudson.model.Result.SUCCESS 
// [email protected] = hudson.model.Result.NOT_BUILT 
// [email protected] = hudson.model.Result.UNSTABLE 
// [email protected] = hudson.model.Result.FAILURE 
// [email protected] = hudson.model.Result.ABORTED 
Các vấn đề liên quan