2016-09-20 19 views
6

Tôi có một công việc đường ống Jenkins được cấu hình để kiểm tra một repo git và một chi nhánh địa phương cụ thể.Cách truy cập tên chi nhánh git từ công việc đường ống?

Làm cách nào tôi có thể lấy tên chi nhánh địa phương trong Jenkinsfile của tôi?

Tôi đã cố tải các thuộc tính enit git jenkins plugin nhưng không có may mắn.

node { 
    checkout scm 
    echo "1 "+ env.GIT_LOCAL_BRANCH 
    echo "2 "+ env.GIT_BRANCH 
} 

Cả hai giá trị là "null"

Trả lời

2

bây giờ tôi đang sử dụng cuộc gọi sh để có được tên chi nhánh. Điều này đòi hỏi ít nhất là phiên bản 2.4 của các nút Pipeline và Processes Plugin.

def branchName = sh(returnStdout: true, script: 'git rev-parse --abbrev-ref HEAD').trim() 
echo branchName 
0

Bạn có thể sử dụng scm thuộc tính để có được danh sách các chi nhánh được cấu hình cho scm của bạn:

// List of all configured branches 
def allBranches = scm.branches 

// Only the first configured branch name 
def gitBranch = scm.branches[0].name 
+3

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Tập lệnh không được phép sử dụng phương thức hudson.plugins.git.GitSCM getBranches –

0

tôi thấy rằng tôi có thể nắm bắt được giá trị trả về từ checkout scm và sử dụng để có được tên chi nhánh (và các giá trị khác)

def scmVars 

    node('api-sample-build') { 
    stage('Clone source code') { 
     scmVars = checkout scm 
     // scmVars contains the following values 
     // GIT_BRANCH=origin/mybranch 
     // GIT_COMMIT=fc8279a107ebaf806f2e310fce15a7a54238eb71 
     // GIT_PREVIOUS_COMMIT=6f2e319a1fc82707ebaf800fce15a7a54238eb71 
     // GIT_PREVIOUS_SUCCESSFUL_COMMIT=310fce159a1fc82707ebaf806f2ea7a54238eb71 
     // GIT_URL=https://stash.someworkplace.com/scm/poc/api-sample.git 
    } 
    stage('test scope') { 
     echo scmVars.GIT_BRANCH 
    } 
    } 

Bằng cách xác định biến bên ngoài nút có sẵn trong các giai đoạn sau khi thanh toán.

Các vấn đề liên quan