Estou tentando criar um script de pipeline declarativo do Jenkins, mas estou tendo problemas com a declaração de variável simples.
Aqui está o meu script:
pipeline {
agent none
stages {
stage("first") {
def foo = "foo" // fails with "WorkflowScript: 5: Expected a step @ line 5, column 13."
sh "echo ${foo}"
}
}
}
No entanto, recebo este erro:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 5: Expected a step @ line 5, column 13.
def foo = "foo"
^
Estou no Jenkins 2.7.4 e no Pipeline 2.4.
jenkins
groovy
jenkins-pipeline
Malcolm Crum
fonte
fonte
Acho que o erro não está vindo da linha especificada, mas das primeiras 3 linhas. Em vez disso, tente isto:
Acho que você teve algumas linhas extras que não são válidas ...
EDITAR
Pela documentação do modelo de pipeline
environment
declarativo , parece que você precisa usar um bloco de declaração para declarar suas variáveis, por exemplo:fonte
Concordo com @ Pom12, @abayer. Para completar a resposta, você precisa adicionar um bloco de script
Experimente algo assim:
fonte
No Jenkins 2.138.3, existem dois tipos diferentes de pipelines.
Pipelines declarativos e com script.
"Pipelines declarativos são uma nova extensão do DSL de pipeline (é basicamente um script de pipeline com apenas uma etapa, uma etapa de pipeline com argumentos (chamados de diretivas), essas diretivas devem seguir uma sintaxe específica. O objetivo desse novo formato é que é mais estrito e, portanto, deve ser mais fácil para os iniciantes em pipelines, permite a edição gráfica e muito mais. pipelines com script são a alternativa para requisitos avançados. "
pipeline de Jenkins: agente vs nó?
Aqui está um exemplo de uso de variáveis de ambiente e globais em um pipeline declarativo. Pelo que posso dizer, os ambientes ficam estáticos depois de configurados.
fonte
Você está usando um Pipeline Declarativo que requer uma etapa de script para executar o código Groovy. Essa é uma grande diferença em comparação com o Pipeline com script, onde isso não é necessário.
A documentação oficial diz o seguinte:
fonte