Dotnet核心代码将gitlab CI / CD中的Zip作为zip发布到s3

时间:2020-10-15 15:13:01

标签: amazon-s3 gitlab gitlab-ci gitlab-ci-runner

在复制到s3存储桶之前,我如何压缩工件,这是因为beantalk需要更新zip文件而完成的。 我想在beantalk中部署dotnet发布代码。当新的更改推送到gitlab存储库时,我正在使用Gitlab CI / CD触发构建

在我的.gitlab-ci.yml文件中,正在做什么

  1. 使用dotnet publish构建并发布代码
  2. 将已发布的文件夹工件以zip格式复制到s3存储桶中
  3. 创建新的beantalk应用程序版本
  4. 更新beantalk环境以反映新变化。

在这里,我能够执行步骤3以外的所有步骤。任何人都可以帮助我压缩发布的文件夹并将该zip复制到s3存储桶。请在下面找到我的相关代码:

build:
  image: mcr.microsoft.com/dotnet/core/sdk:3.1
  script:
    - dotnet publish -c Release -o /builds/maskkk/samplewebapplication/publish/ 
  stage: build
  artifacts:
    paths:
      - /builds/maskkk/samplewebapplication/publish/
deployFile:
  image: python:latest
  stage: deploy  
  script:
    - pip install awscli
    - aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID
    - aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY
    - aws configure set region us-east-2
    - aws s3 cp --recursive /builds/maskkk/samplewebapplication/publish/ s3://elasticbeanstalk-us-east-2-654654456/JBGood-$CI_PIPELINE_ID   
    - aws elasticbeanstalk create-application-version --application-name Test5 --version-label JBGood-$CI_PIPELINE_ID --source-bundle S3Bucket=elasticbeanstalk-us-east-2-654654456,S3Key=JBGood-$CI_PIPELINE_ID
    - aws elasticbeanstalk update-environment --application-name Test5 --environment-name Test5-env --version-label JBGood-$CI_PIPELINE_ID````

1 个答案:

答案 0 :(得分:0)

我得到了这个问题的答案,我们可以简单地运行一个 zip -r ../published.zip *

这将创建一个zip文件,并且可以将该zip文件夹上传到s3。

请告知我们是否还有其他更好的解决方案。