Jenkinsfile y diferentes estrategias para sucursales

Estoy tratando de usar el archivo Jenkins para todas nuestras compilaciones en Jenkins, y tengo el siguiente problema. Básicamente tenemos 3 tipos de compilaciones:

compilación de solicitud de extracción: se fusionará con el maestro después de la revisión del código, y si la compilación funcionacompilación de solicitud de extracción manual: una compilación que hace lo mismo que antes, pero que el usuario puede activar manualmente (por ejemplo, en caso de que tengamos alguna prueba inestable)una tubería de entrega continua inicial: esto generará el código, se implementará en el repositorio, instalará artefactos desde el repositorio en el servidor de destino e iniciará la aplicación allí

¿Cómo debo contener todas las compilaciones anteriores en un solo archivo Jenkins? En este momento, la única idea que tengo es hacer un gigante si eso verificará qué rama es y hará los pasos.

Entonces tengo dos preguntas:

1. ¿Es esa la forma adecuada de hacerlo en Jenkinsfile?

¿Cómo obtener el nombre de la rama actualmente en ejecución en el tipo de trabajo de varias ramas?

Como referencia, aquí está mi actualJenkinsfile:

def servers = ['server1', 'server2']

def version = "1.0.0-${env.BUILD_ID}"

stage 'Build, UT, IT'
node {
    checkout scm
    env.PATH = "${tool 'Maven'}/bin:${env.PATH}"
    withEnv(["PATH+MAVEN=${tool 'Maven'}/bin"]) {
        sh "mvn -e org.codehaus.mojo:versions-maven-plugin:2.1:set -DnewVersion=$version -DgenerateBackupPoms=false"
        sh 'mvn -e clean deploy'
        sh 'mvn -e scm:tag'
    }
}


def nodes = [:]
for (int i = 0; i < servers.size(); i++) {
    def server = servers.get(i)
    nodes["$server"] = {
        stage "Deploy to INT ($server)"
        node {
            sshagent(['SOME-ID']) {
                sh """
                ssh ${server}.example.com <<END
                hostname
                /apps/stop.sh
                yum  -y update-to my-app.noarch
                /apps/start.sh
                END""".stripIndent()
            }
        }
    }
}

parallel nodes

EDITAR: pregunta eliminada basada en la opinión

Respuestas a la pregunta(6)

Su respuesta a la pregunta