描述:使用阿里云对象存储服务来建立交付仓库。
好处:1.可靠性、高可用性 2.上传、下载速度
Jenkins是当前最常用的CI服务器,Aliyun-OSS-Plugin for Jenkins的功能是:将构建后的artifact上传到OSS的指定位置上去。
在Jenkins中安装插件, 请到 Manage Jenkins | Advanced | Upload,上传插件(.hpi文件) 安装完毕后请重新启动Jenkins 插件位置:mvn打包后存在于target下
在使用插件之前,必须先在[Manage Jenkins | Configure System | 阿里云OSS账户设置]中配置阿里云帐号的Access Key、Secret Key和阿里云EndPoint后缀.
在Jenkins Job的Post-build actions,用户可以设上传Artifact到阿里云OSS。需要填写的信息是:
- Bucket名称: artifact要存放的bucket
- 要上传的artifacts: 文件之间用;隔开。支持通配符描述,比如 text/*.zip
- Object前缀设置:可以设置object key的前缀,支持Jenkins环境变量比如: "${JOB_NAME}/${BUILD_ID}/${BUILD_NUMBER}/"
- 完成后删除文件:勾选表示上传成功后会把本地文件删除。
例如一个job的名称是test,用户的设置如下
- bucketName: f2c
- 要上传的artifacts: hello.txt;hello1.txt
- Object前缀: ${JOB_NAME}/${BUILD_ID}/${BUILD_NUMBER}
那么上传后的文件url为: http://f2c.oss-cn-hangzhou.aliyuncs.com/test/2015-01-20_14-22-46/5/hello.txt
集成jenkins pipeline,用户可以上传Artifact到阿里云OSS
例如一个job的名称是test,用户的设置如下
- Bucket名称: bucket-local-2
- 要上传的artifacts:usr/local/dingdang/src/github.com/dingdang//target/.jar
- Object前缀设置:{JOB_NAME}
则在jenkins的pipeline中配置
node {
stage('upload') {
echo '开始执行upload'
bucketName = 'bucket-local-2'//bucket名称
filesPath = 'usr/local/dingdang/src/github.com/dingdang/*/target/*.jar'//文件位置 (可以以变量的方式传入tag版本,指定文件)
objectPrefix = 'test/${JOB_NAME}'//前缀
isDel = 'true'//写true,则会删除文件
step([$class: 'AliyunOSSPublisher', bucketName: bucketName,filesPath: filesPath,objectPrefix: objectPrefix,isDel: isDel])
echo 'deploy执行完毕'
}
}
pipeline项目构建的时候,就会触发上传参数
原作者:[email protected] 原code地址:https://github.com/fit2cloud/aliyun-oss-plugin
本篇code在的基础上增加了两个功能:1.支持通过pipeline完成文件上传 2.支持文件上传后删除本地文件
优点:
1.原先的构建方式每个jenkins job都需要配置一次Post-build Actions,本篇code可以让多个job复用一条pipeline完成上传操作。
2.降低jenkins磁盘占用率,统一交付仓库。
非常感谢原作者提供的框架,若有侵权请联系我删除:[email protected]
博客地址:https://blog.csdn.net/qq_37822090/article/details/106918659
本代码是功能测试版,质量比较低,jenkins新版本还有坑,正式版代码就没merge了,有需要的可以留言或联系