Để đọc hoặc ghi file thì bạn có thể sử dụng bash script hoặc powershell, tuy nhiên cách làm đó phụ thuộc vào hệ điều hành của Jenkins node(agent) , trong bài viết này bạn sẻ học được cách sử dụng groovy để đọc và ghi file.
writeFile: Ghi tệp vào không gian làm việc
Ghi nội dung đã cho vào một tệp có tên trong thư mục hiện tại.
file
Kiểu dữ liệu: String
text
Kiểu dữ liệu: String
encoding(không bắt buộc)
Mã hóa đích cho tệp. Nếu để trống, mã hóa mặc định của nền tảng sẽ được sử dụng. Nếu văn bản là một chuỗi được mã hóa Base64, thì dữ liệu nhị phân được giải mã có thể được ghi vào tệp bằng cách chỉ định “Base64” làm mã hóa.
Kiểu dữ liệu: String
Ví dụ:
writeFile(file: "filename.txt", text: "áéíóú", encoding: "UTF-8")
readFile: Đọc tệp từ không gian làm việc
Đọc một tệp từ một đường dẫn tương đối (với gốc trong thư mục hiện tại, thường là không gian làm việc) và trả về nội dung của nó dưới dạng một chuỗi thuần túy.
file
Đường dẫn tương đối ( /-phân cách) đến tệp trong không gian làm việc để đọc.
Kiểu dữ liệu: String
encoding(không bắt buộc)
Bảng mã để sử dụng khi đọc tệp. Nếu để trống, mã hóa mặc định của nền tảng sẽ được sử dụng. Các tệp nhị phân có thể được đọc thành một chuỗi được mã hóa Base64 bằng cách chỉ định “Base64” làm mã hóa.
Kiểu dữ liệu: String
Ví dụ:
readFile(file: "zorg.txt",encoding: "UTF-8")
Thực hành
Trong Jenkinsfile sau, có hai giai đoạn. Trong giai đoạn đầu tiên, bạn sẻ tạo một biến chứa text và bạn sẻ sử dụng hàm writeFile để ghi nó ra một tệp. Sau đó, bạn sẻ thực thi ls như một chương trình bên ngoài bằng cách sử dụng sh .
Trong giai đoạn thứ hai, bạn sẻ sử dụng hàm readFile để đọc nội dung của tệp.
pipeline {
agent { label 'master' }
stages {
stage('write') {
steps {
script {
def data = "Hello World"
writeFile(file: 'test.txt', text: data)
sh "ls -l"
}
}
}
stage('read') {
steps {
script {
def data = readFile(file: 'test.txt')
println(data)
}
}
}
}
}