1

How can I zip the artifacts before copying to s3 bucket, this is done as the beanstalk requires zip file to update. I wanted to deploy the dotnet publish code in beanstalk. I am using Gitlab CI/CD to trigger the build when new changes are pushed to the gitlab repo

In my .gitlab-ci.yml file what am doing is

  1. build and publish the code using dotnet publish
  2. copy the published folder artifact to s3 bucket as zip
  3. create new beanstalk application version
  4. update beanstalk environment to reflect the new changes.

Here I was able to perform all the steps except step 3. Can anyone please help me on how can I Zip the published folder and copy that zip to s3 bucket. Please find my relavant code below:

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 Answers1

0

I got the answer to this issue we can simply run a zip -r ../published.zip *

this will create a zip file and can upload this zip folder to s3.

Please let me know if we have any other better solution to this.