Jesteś zagmatwany i mieszanie Scripted Pipeline
i Declarative Pipeline
, dla całkowitej różnicy see here. Ale opowiadanie:
- deklaratywne rurociągi jest nowym rozszerzeniem DSL rurociągu (to jest w zasadzie skrypt rurociąg z tylko jednym kroku, krok rurociągu z argumentów (zwanych dyrektyw), dyrektywy te powinny postępować zgodnie ze specyficzna składnia. Celem tego nowego formatu jest to, że jest bardziej ścisła i do nich powinno być łatwiejsze dla tych nowych rurociągów, pozwalają na edycję graficzną i wiele więcej.
- oskryptowane rurociągi jest awaryjna dla zaawansowanych wymagań.
Tak więc, jeśli przyjrzymy się twojemu skryptowi, najpierw otwórz krok node
, który pochodzi ze skryptowych potoków, a następnie używasz stages
, która jest jedną z dyrektyw kroku pipeline
zdefiniowanego w declarative pipeline
. Dzięki czemu można na przykład napisz:
pipeline {
...
stages {
stage('HelloWorld') {
steps {
echo 'Hello World'
}
}
stage('git clone') {
steps {
git clone "ssh://[email protected]/myrepo.git"
}
}
}
}
więc jeśli wan't użyć declarative pipeline
że jest droga.
Jeśli wan't scripted pipeline
, a następnie napisać:
node {
stage('HelloWorld') {
echo 'Hello World'
}
stage('git clone') {
git clone "ssh://[email protected]/myrepo.git"
}
}
Np .: pominąć etapy zablokować.
Mój problem był tylko odwrotnością tego. Otrzymałem błąd "brak takiej metody DSL" kroki " –