Soru Jenkins Jenkins dosyasında git şube adını al


Bir jenkins boru hattı oluşturdum ve boru hattı komut dosyasını scm'den çekiyor.
Şube belirticisini 'all', bu yüzden herhangi bir dalda herhangi bir değişiklik yapar.

Jenkinsfile'dan bu yapıya neden olan şube adına nasıl erişirim?

Her şeyi denedim ekos dışında null

sh(returnStdout: true, script: 'git rev-parse --abbrev-ref HEAD').trim()

her zaman master.


21
2018-02-22 05:18


Menşei


Soru başlığı seviyorum, "Git git ... Jenkins Jenkinsfile" hahaha - Cory Klein


Cevaplar:


Boru hattınız için bir jenkinsfile varsa, yürütme süresinde görüp görmediğinizi kontrol edin. Ortam Değişkenleri.

Bunları ile yazdırabilirsiniz:

pipeline {
    agent any

    environment {
        DISABLE_AUTH = 'true'
        DB_ENGINE    = 'sqlite'
    }

    stages {
        stage('Build') {
            steps {
                sh 'printenv'
            }
        }
    }
}

Ancak, PR 91 şube adının yalnızca belirli boru hattı yapılandırmalarında ayarlandığını gösterir:


6
2018-02-22 05:52



Teşekkürler, bu yardımcı oldu. Ortam değişkenlerimde değil gibi görünüyor. Yapılmaya neden olan dalı açığa çıkarmak mümkün mü? - Alex Yurkowski


Çok borulu boru hattını kullanın .. boru hattı değil

Benim senaryoda ..

stage('Build') {
    node {
        echo 'Pulling...' + env.BRANCH_NAME
        checkout scm

    }
}

Verim ...

Pulling...master

12
2018-05-14 10:47



Bu aslında sadece işin adı, git dalı değil. Bu, işleriniz şubelerinizle aynı adı taşıdığı sürece çalışır. - Ctwx
Ayrıca tüm bu değişkenler, Ortam Değişkenleri altındaki Git eklentisi sayfasında tanımlanmıştır: plugins.jenkins.io/git - arjabbar


Çok bölmeli bir boru hattına geçmek, şube adına ulaşmamı sağladı. Düzenli bir boru hattı önerilmiyordu.


5
2018-02-22 07:40



Evet, okuma github.com/jenkinsci/pipeline-model-definition-plugin/pull/91, görmelisin BRANCH_NAME. - VonC


Bir meslektaşım kullanmamı söyledi scm.branches[0].name ve çalıştı. Onu Jenkinsfile'ımdaki bir işleve sardım:

def getGitBranchName() {
    return scm.branches[0].name
}

5
2018-05-04 14:44



Bunu denedim ve aldım ... ... org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: BRANCH_NAME yöntemi kullanılmasına izin verilmeyen komut dosyalarının çalışmasına izin verilmiyor ve env.BRANCH_NAME işlevi ... - James
Paylaşılan kitaplığı global olarak ayarlarsanız, güvenlik sorunlarınız olmaz. Diğer yol, bu güvenlik istisnalarına izin vermektir. Manage Jenkins > In Process Script Approval - Chen
Ayrıca bu yöntemi beyaz listeye ekleyebilirsiniz - Lee Meador