Dưới đây là một số tài liệu về kẻ nói dối đường ống Jenkins và các lệnh của nó. Bạn có cần xác nhận trước khi cam kết không? Nếu không, sẽ thật sự tầm thường khi chạy lệnh linting trước khi đường ống của bạn chạy, và đơn giản là thất bại nếu nó không vượt qua.
Jenkins có thể xác nhận, hoặc " lint ", Đường ống khai báo từ dòng lệnh trước khi thực sự chạy nó. Điều này có thể được thực hiện bằng cách sử dụng lệnh Jenkins CLI hoặc bằng cách thực hiện yêu cầu POST HTTP với các tham số thích hợp. Chúng tôi khuyên bạn nên sử dụng giao diện SSH để chạy kẻ nói dối. Xem tài liệu CLI của Jenkins để biết chi tiết về cách định cấu hình chính xác Jenkins để truy cập dòng lệnh an toàn.
Linting thông qua CLI với SSH
# ssh (Jenkins CLI)
# JENKINS_SSHD_PORT=[sshd port on master]
# JENKINS_HOSTNAME=[Jenkins master hostname]
ssh -p $JENKINS_SSHD_PORT $JENKINS_HOSTNAME declarative-linter < Jenkinsfile
Linting qua HTTP POST bằng cách sử dụng curl
# curl (REST API)
# Assuming "anonymous read access" has been enabled on your Jenkins instance.
# JENKINS_URL=[root URL of Jenkins master]
# JENKINS_CRUMB is needed if your Jenkins master has CRSF protection enabled as it should
JENKINS_CRUMB=`curl "$JENKINS_URL/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,\":\",//crumb)"`
curl -X POST -H $JENKINS_CRUMB -F "jenkinsfile=<Jenkinsfile" $JENKINS_URL/pipeline-model-converter/validate
Ví dụ
Dưới đây là hai ví dụ về Pipeline Linter đang hoạt động. Ví dụ đầu tiên này cho thấy đầu ra của kẻ nói dối khi nó được thông qua không hợp lệ
Jenkinsfile
, một phần bị thiếu trong phần agent
khai báo.
Jenkinsfile
pipeline {
agent
stages {
stage ('Initialize') {
steps {
echo 'Placeholder.'
}
}
}
}
Đầu ra Linter cho Jenkinsfile không hợp lệ
# pass a Jenkinsfile that does not contain an "agent" section
ssh -p 8675 localhost declarative-linter < ./Jenkinsfile
Errors encountered validating Jenkinsfile:
WorkflowScript: 2: Not a valid section definition: "agent". Some extra configuration is required. @ line 2, column 3.
agent
^
WorkflowScript: 1: Missing required section "agent" @ line 1, column 1.
pipeline }
^
Trong ví dụ thứ hai này, cái Jenkinsfile
đã được cập nhật để bao gồm cái còn thiếu any
trên agent
. Người nói dối bây giờ báo cáo rằng Đường ống là hợp lệ.
Jenkinsfile
pipeline {
agent any
stages {
stage ('Initialize') {
steps {
echo 'Placeholder.'
}
}
}
}
Đầu ra Linter cho Jenkinsfile hợp lệ
ssh -p 8675 localhost declarative-linter < ./Jenkinsfile
Jenkinsfile successfully validated.
java -jar jenkins-cli.jar [-s JENKINS_URL] [global options...] command [command options...] [arguments...]