Như giới thiệu ở bài đầu tiên, thư mục resources chưa các file ko phải là Groovy
Trong resources mình để 1 file Json
{
name:"test",
height:1.55
}
giờ chúng ta có script như sau:
@Library("pipeline-shared-lib") _
pipeline{
agent{
label 'docker-maven'
}
stages{
stage("Build"){
steps{
script{
def request = libraryResource 'com/acceleratedskillup/request.json'
echo request
}
}
}
}
}
Giờ save
material reference about libraryResouce
https://www.jenkins.io/doc/book/pipeline/shared-libraries/#loading-resources
https://www.jenkins.io/doc/pipeline/steps/workflow-cps-global-lib/
Chúng ta có vẫn đề là bạn thấy jenkins master sẽ control jenkins agent.
nhưng mà jenkins agent sẽ không git clone hay git clone pipeline-shared-lib về con agent
bạn có thể kiểm chừng thêm các câu lệnh ls -la
để kiểm tra
Vậy là nếu bạn để 1 file script.sh ở resource và bạn muốn agent chạy nó, thì sẽ ko được. tại nó pull file đó về agent đâu. ý à. vậy làm sao?
Sem rồi thì lab theo ảnh thôi.
https://github.com/mrnim94/pipeline-shared-lib
Chúng ta sẽ đi từ pipeline script:
@Library("pipeline-shared-lib") _
pipeline{
agent{
label 'docker-maven'
}
stages{
stage("Build"){
steps{
script{
helloWorldExternal(name: "nimtechnology", dayOfWeek: "Monday")
}
}
}
}
}
Phân tích chúng ta thấy underscore “_” là nó sẽ sử global function ở var
def call() nhận các parameter từ pipeline script
load 1 global function khác và truyền name qua đó
xong nó run file script .sh