我的总体目标是,从S3同步文件,然后硬链接以避免“多个副本”并在构建docker容器时节省空间。这是我到目前为止所拥有的
withAWS(region: 'us-east-1') {
s3Download(
bucket: 'artifacts.mydomain.tld',
file: "${env.ORACLE_RPM}",
path: "${env.HOME}/${env.ORACLE_RPM}",
)
script {
linkBlocking("etc/docker/${env.PROJECT}/${env.ORACLE_RPM}", "${env.HOME}/${env.ORACLE_RPM}")
}
}
s3Download
有效,但我不确定如果有更新的版本,它是否会更新文件。
然而,当我尝试使用FileSystem
类时,我实际上无法找出正确的调用约定,构造函数至少似乎未被记录。
答案 0 :(得分:0)
还没弄清楚如何在groovy中执行此操作,当我尝试使用Java的nio Files
时出现沙箱错误,但是使用shell步骤进行操作
withAWS(region: 'us-east-1') {
script {
try {
s3Download(
bucket: 'artifacts.mydomain.tld',
file: "${env.HOME}/${env.ORACLE_RPM}",
path: "${env.ORACLE_RPM}",
)
}
catch (Exception e ) {// don't update the file if it exists
}
finally {
sh "ln -f ${env.HOME}/${env.ORACLE_RPM} etc/docker/${env.PROJECT}/${env.ORACLE_RPM}"
}
}
}