Могу ли я указать узел с помощью Scripted Pipeline в Jenkins? - PullRequest
0 голосов
/ 19 марта 2019

noticed заметил, что файл конвейера Jenkins - Jenkinsfile, имеющий два синтаксиса

  • Декларативный
  • Сценарий

Я заставил Декларативный скрипт работать, чтобы указатьузел для запуска моей задачи.Однако я не знаю, как изменить свой сценарий на синтаксис Scripted.

Мой декларативный сценарий

pipeline {
    agent none

    stages {
        stage('Build') {
            agent { label 'my-label​' }
            steps {
                echo 'Building..'
                sh '''

                '''
            }
        }
        stage('Test') {
            agent { label 'my-label​' }
            steps {
                echo 'Testing..'
                sh '''

                '''
            }
        }
        stage('Deploy') {
            agent { label 'my-label​' }
            steps {
                echo 'Deploying....'
                sh '''

                '''
            }
        }
    }
}

Я пытался использовать таким образом:

node('my-label') {
  stage 'SCM'
  git xxxx

  stage 'Build'
  sh ''' '''
}

Но, похоже, Дженкинс не может найти мой узел для работы.

1 Ответ

0 голосов
/ 19 марта 2019

Как насчет этого простого примера?

stage("one") {
    node("linux") {
        echo "One"
    }
}
stage("two") {
    node("linux") {
        echo "two"
    }
}
stage("three") {
    node("linux") {
        echo "three"
    }
}

Или ответ ниже, таким образом, вы гарантированно будете запускать этапы на одном и том же узле, если есть несколько узлов с одинаковой меткой и выполнение прерываетсядругая работа.Приведенный выше пример освобождает узел после каждого этапа, а приведенный ниже пример будет содержать узел для всех трех этапов.

node("linux") {
    stage("one") {
        echo "One"
    }
    stage("two") {
        echo "two"
    }
    stage("three") {
        echo "three"
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...