Saya mencoba membuat skrip pipeline Jenkins deklaratif tetapi mengalami masalah dengan deklarasi variabel sederhana.
Ini skrip saya:
pipeline {
agent none
stages {
stage("first") {
def foo = "foo" // fails with "WorkflowScript: 5: Expected a step @ line 5, column 13."
sh "echo ${foo}"
}
}
}
Namun, saya mendapatkan kesalahan ini:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 5: Expected a step @ line 5, column 13.
def foo = "foo"
^
Saya menggunakan Jenkins 2.7.4 dan Pipeline 2.4.
jenkins
groovy
jenkins-pipeline
Malcolm Crum
sumber
sumber
Menurut saya kesalahan tidak datang dari baris yang ditentukan tetapi dari 3 baris pertama. Coba ini sebagai gantinya:
Saya pikir Anda memiliki beberapa baris tambahan yang tidak valid ...
EDIT
Dari dokumentasi model pipeline deklaraktif , tampaknya Anda harus menggunakan
environment
blok deklarasi untuk mendeklarasikan variabel Anda, misalnya:sumber
Setuju dengan @ Pom12, @abayer. Untuk melengkapi jawaban Anda perlu menambahkan blok skrip
Coba sesuatu seperti ini:
sumber
Di Jenkins 2.138.3 ada dua jenis pipa yang berbeda.
Pipeline Deklaratif dan Scripted.
"Pipeline deklaratif adalah ekstensi baru dari pipeline DSL (ini pada dasarnya adalah skrip pipeline dengan hanya satu langkah, langkah pipeline dengan argumen (disebut arahan), arahan ini harus mengikuti sintaks tertentu. Inti dari format baru ini adalah bahwa itu lebih ketat dan karena itu akan lebih mudah bagi mereka yang baru mengenal pipeline, memungkinkan pengeditan grafis dan banyak lagi. pipeline dengan skrip adalah pengganti untuk persyaratan lanjutan. "
pipeline jenkins: agen vs node?
Berikut adalah contoh penggunaan variabel lingkungan dan global dalam Declarative Pipeline. Dari apa yang saya tahu bahwa lingkungan menjadi statis setelah ditetapkan.
sumber
Anda menggunakan Declarative Pipeline yang memerlukan langkah skrip untuk menjalankan kode Groovy. Ini adalah perbedaan besar dibandingkan dengan Scripted Pipeline yang tidak memerlukannya.
The dokumentasi resmi mengatakan berikut:
sumber