使用Jenkinsfile和AWS Code部署部署应用程序

时间:2016-06-08 06:00:01

标签: jenkins aws-code-deploy jenkinsfile

我正在从Jenkins 1.x迁移到Jenkins 2.我想使用Jenkinsfile构建和部署应用程序。 我能够构建gradle应用程序,但我对使用Jenkinsfile通过AWS Codedeploy部署应用程序感到困惑。

这是我的jenkinsfile

node {
   // Mark the code checkout 'stage'....
   stage 'Checkout'
   // Get some code from a GitHub repository
      git branch: 'master', 
       credentialsId: 'xxxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxx', 
       url: 'https://github.com/somerepo/someapplication.git'

   // Mark the code build 'stage'....
   stage 'Build'
   // Run the gradle build
      sh '/usr/share/gradle/bin/gradle build -x test -q buildZip -Pmule_env=aws-dev -Pmule_config=server'

    stage 'Deploy via Codedeploy'
    //Run using codedeploy agent
}

我搜索了许多教程,但他们正在使用AWS Code部署插件。 你能帮我用Jenkinsfile通过AWS Codedeploy部署应用程序吗?

谢谢。

1 个答案:

答案 0 :(得分:4)

或者,您可以使用AWS CLI命令执行代码部署。这涉及两个步骤。

步骤1 - 将部署捆绑包推送到S3存储桶。请参阅以下命令:

aws --profile {profile_name} deploy push --application-name {code_deploy_application_name} --s3-location s3://<s3_file_path>.zip

其中:

  1. profile_name = AWS个人资料的名称(如果使用多个帐户)
  2. code_deploy_application_name = AWS代码部署应用程序的名称。
  3. s3_file_path =部署捆绑包zip文件的S3文件路径。
  4. 第2步 - 启动代码部署 第二个命令用于触发代码部署。请参阅以下命令:

    aws --profile {profile} deploy create-deployment  --application-name {code_deploy_application_name} --deployment-group-name {code_deploy_group_name} --s3-location bucket={s3_bucket_name},bundleType=zip,key={s3_bucket_zip_file_path}

    其中:

    1. profile =您的AWS个人资料的名称(如果使用多个帐户)
    2. code_deploy_application_name =与步骤1相同。
    3. code_deploy_group_name =代码部署组的名称。这与您的代码部署应用程序相关联。
    4. s3_bucket_name =将存储部署工件的S3存储桶的名称。 (确保执行代码部署的角色具有s3存储桶的权限。)
    5. s3_bucket_zip_file_path =与步骤1相同。