最近有一个Jenkins插件读取node节点文件内容的需求,各种翻找之后,终于解决,嘿嘿
1.需要让插件运行在node节点上
// 如果整个pipline都是运行在子节点上面的,那下面stage和post就不需要再次声明节点了
// 在stage上面调用plugin
stages {
stage('Stage1'){
agent {
label('MyNode')
}
steps {
script {
runMyPlugin
}
}
}
}
// 运行结束后搞事情
post {
always {
node('MyNode') {
script {
runMyPlugin
}
}
}
}
2.在Jenkins插件里读文件
// 读文件
String filePath = "D:\test.txt";
FilePath file= new FilePath(launcher.getChannel(), filePath);
if (folder.exists()){
BufferedReader reader = new BufferedReader(new InputStreamReader(fp.read(), StandardCharsets.UTF_8));
// 可以用reader搞事情了
}
String folderPath = "D:\TestFolder";
FilePath folder = new FilePath(launcher.getChannel(), folderPath);
if (folder.exists()){
for (FilePath fp : folder.list()) {
if (fp.getName().equals("tarFileName")) {
BufferedReader reader = new BufferedReader(new InputStreamReader(fp.read(), StandardCharsets.UTF_8));
// 愉快的搞事情吧
}
}
}