Jenkins декларативный синтаксис jekinsFile - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь написать файл jenkins, который позволит мне иметь неблокирующий шаг ввода (т. Е. Шаг ввода, при котором вместо полутяжелого веса будет использоваться исполнитель с наименьшим весом).Хотя мне удалось сделать это в тестовом проекте, у меня возникли проблемы с включением раздела среды в мой файл для моего реального проекта.Мой файл Дженкинса в настоящее время выглядит следующим образом ...

pipeline {
agent none
stages {
    stage('Env Set Up'){
        agent {label 'cm-linux-15916'}
        environment {
            def JAVA_HOME = tool('1.8.0.65_Linux')
            def MAVEN_EXEC = tool('3.3.3_Linux')
            PATH="${JAVA_HOME}/jre/bin:${MAVEN_EXEC}/bin:/build/build_tools/nodejs/6.7.0/bin/:$PATH"
        }
    }
    stage('DEV Build & Sonar') {
        agent {label 'cm-linux-15916'}
        steps {
            echo 'DEV BUILD STARTED HERE...'
            sh("/build_tools/maven/apache-maven-3.3.3/bin/mvn versions:set -DnewVersion=${Major}.${Minor}.${Point}.${BUILD_NUMBER}-SNAPSHOT -X")
            sh("/build_tools/maven/apache-maven-3.3.3/bin/mvn clean org.jacoco:jacoco-maven-plugin:0.7.4.201502262128:prepare-agent deploy sonar:sonar")        
        }
    }
    stage('DEV Deploy') {
        agent {label 'cm-linux-15916'}
        steps {
            withCredentials([usernamePassword(credentialsId: '2b714cb5-d136-4555-97bc-f33ba1695a02',
            usernameVariable: 'uname',
            passwordVariable: 'passwd')])
            {
                sh('chmod 755 ansible_dev.sh')
                sh('./ansible_dev.sh')
                sh('chmod 644 ansible_dev.sh')
            }
        }
    }
    stage('SIT Build & Deploy?') {
        agent none
        steps {
            timeout(time:24, unit:'HOURS') {
                input('Do you want to proceed with SIT deployments?')
            }
        }
    }

Это дает мне

WorkflowScript: 4: Nothing to execute within stage "Env Set Up" @ line 4, column 5.
   stage('Env Set Up'){

Я также попробовал подход ниже ...

pipeline {
agent none

environment {
    def JAVA_HOME = tool('1.8.0.65_Linux')
    def MAVEN_EXEC = tool('3.3.3_Linux')
    PATH="${JAVA_HOME}/jre/bin:${MAVEN_EXEC}/bin:/build/build_tools/nodejs/6.7.0/bin/:$PATH"
}

stages {

    stage('DEV Build & Sonar') {
        agent {label 'cm-linux-15916'}
        steps {
            echo 'DEV BUILD STARTED HERE...'
            sh("/build_tools/maven/apache-maven-3.3.3/bin/mvn versions:set -DnewVersion=${Major}.${Minor}.${Point}.${BUILD_NUMBER}-SNAPSHOT -X")
            sh("/build_tools/maven/apache-maven-3.3.3/bin/mvn clean org.jacoco:jacoco-maven-plugin:0.7.4.201502262128:prepare-agent deploy sonar:sonar")        
        }
    }
    stage('DEV Deploy') {
        agent {label 'cm-linux-15916'}
        steps {
            withCredentials([usernamePassword(credentialsId: '2b714cb5-d136-4555-97bc-f33ba1695a02',
            usernameVariable: 'uname',
            passwordVariable: 'passwd')])
            {
                sh('chmod 755 ansible_dev.sh')
                sh('./ansible_dev.sh')
                sh('chmod 644 ansible_dev.sh')
            }
        }
    }
    stage('SIT Build & Deploy?') {
        agent none
        steps {
            timeout(time:24, unit:'HOURS') {
                input('Do you want to proceed with SIT deployments?')
            }
        }
    }

это дает мне

Required context class hudson.model.Node is missing
Perhaps you forgot to surround the code with a step that provides this, such as: node

Я действительно изо всех сил пытаюсь получить правильный синтаксис на этом, без секции окружения я могу заставить все работать как ожидалось.Кто-нибудь может мне помочь?

ОБНОВЛЕНИЕ

Моя последняя попытка - включить переменные env в раздел сценария на первом этапе, как показано ниже

pipeline {
agent none
stages {
    stage('DEV Build & Sonar') {
        agent {label 'cm-linux-15916'}
        steps {
            script{
                def JAVA_HOME = tool('1.8.0.65_Linux')
                def MAVEN_EXEC = tool('3.3.3_Linux')
                //PATH="${JAVA_HOME}/jre/bin:${MAVEN_EXEC}/bin:/build/build_tools/nodejs/6.7.0/bin/:$PATH"
                PATH="/build/build_tools/jdk/1.8.0.65/jre/bin:/build/build_tools/nodejs/6.7.0/bin/:$PATH"
                JAVA_HOME="/build/build_tools/jdk/1.8.0.65/jre/"
                echo 'DEV BUILD STARTED HERE...'
                sh("/build_tools/maven/apache-maven-3.3.3/bin/mvn versions:set -DnewVersion=${Major}.${Minor}.${Point}.${BUILD_NUMBER}-SNAPSHOT -X")
                sh("/build_tools/maven/apache-maven-3.3.3/bin/mvn clean org.jacoco:jacoco-maven-plugin:0.7.4.201502262128:prepare-agent deploy sonar:sonar")        
            }
        }
    }
        stage('DEV Deploy') {
            agent {label 'cm-linux-15916'}
            steps {
                withCredentials([usernamePassword(credentialsId: '2b714cb5-d136-4555-97bc-f33ba1695a02',
                usernameVariable: 'uname',
                passwordVariable: 'passwd')])
                {
                    sh('chmod 755 ansible_dev.sh')
                    sh('./ansible_dev.sh')
                    sh('chmod 644 ansible_dev.sh')
                }
            }
        }
        stage('SIT Build & Deploy?') {
            agent none
            steps {
                timeout(time:24, unit:'HOURS') {
                    input('Do you want to proceed with SIT deployments?')
                }
            }
        }

Это похоже на то, что я хочу, хотя сейчас я получаю сообщение об ошибке ...

 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project orc-admin-service-wlp: Fatal error compiling: invalid target release: 1.8 -> [Help 1]

Это похоже на шаг очистки mvn

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...