【问题标题】:How can i publish artifacts to S3 buckets using jenkinsfile?如何使用 jenkinsfile 将工件发布到 S3 存储桶?
【发布时间】:2020-08-10 05:51:37
【问题描述】:

我想使用 Jenkinsfile 将我的成功构建工件发布到 AWS S3 存储桶。

请帮助我,我是一只新蜜蜂。

通过谷歌搜索,我知道我们必须为此使用 S3 发布者插件。但现在确定如何编写一个 groovy 脚本。

问候, 亚布拉曼尼亚L

【问题讨论】:

    标签: amazon-web-services jenkins amazon-s3 jenkins-pipeline jenkins-plugins


    【解决方案1】:
    1. 在 Jenkins 上安装一个名为 Pipeline AWS 的插件。插件可以安装在“管理插件”部分。
    2. 在凭据 -> 系统 -> 全局凭据下添加您的 AWS 访问密钥 ID 和秘密访问密钥。确保这些凭据具有所需的 S3 权限。
    3. 管道的示例 groovy 代码。
    node {
        stage('Upload') {
            dir('path/to/your/project/workspace'){
                withAWS(region:'your-S3-bucket-region',credentials:'newly-created-credentials-ID') {
                     def identity=awsIdentity();
                    // Upload files from working directory to project workspace
                    s3Upload(bucket:"use-S3", workingDir:'your-working-dir', includePathPattern:'**/*');
                }
    
            };
        }
    }
    

    【讨论】:

    • 您好@udhav 非常感谢您的回复,工作目录是 /var/lib/jenkins/workspace// ... 那么这是否会将整个 gitclone 上传到 S3?
    • @SubramanianLakshmanan 是的,因为路径模式是“*”。您可以具体上传单个文件。
    • 我有一个问题:s3Upload 下的 workigDir 是什么。是 /var/lib/jenkins 还是 s3 存储桶的子文件夹?
    • eg 1. 包括特定扩展名的所有文件:s3Upload(bucket:"my-bucket", path:'path/to/targetFolder/', includePathPattern:'**/*.txt', workingDir:'/var/lib/jenkins/workspace/<project-name>/<dir-where-files-exist>') 例如 2. 包括除特定扩展名之外的所有文件:s3Upload(bucket:"my-bucket", path:'path/to/targetFolder/', includePathPattern:'**/*', workingDir:'/var/lib/jenkins/workspace/<project-name>/<dir-where-files-exist>', excludePathPattern:'**/*.txt') 3. jenkins 插件文档:plugins.jenkins.io/pipeline-aws/#s3upload
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 2012-06-02
    • 2020-11-10
    • 2013-03-06
    • 2016-06-07
    • 1970-01-01
    相关资源
    最近更新 更多