GIT ACTION + Elasticbeanstalk

이상학·2021년 11월 6일
0

AWS

목록 보기
6/6

서비스 CI/CD를 위해 gitaction 사용하기로 결정

git aciton(build) -> S3에 code bundle 업로드 -> elasticbeanstalk deploy(eb deploy)

Classic_DRF/.github/workflows/main.yml

name: PlayplzAction-deploy

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Create ZIP deployment package
        run: zip -r deploy_package.zip ./

      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEYID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: ${{ secrets.AWS_REGION }}


      - name: Create env file
        run: |
          touch .env
          echo SECRET_KEY="${{ secrets.SECRET_KEY }}" >> .env
          echo VIMEO_SECRET_KEY = "${{ secrets.VIMEO_SECRET_KEY }}" >> .env
          echo DEBUG = "${{ secrets.DEBUG }}" >> .env
          echo DB_NAME= "${{ secrets.DB_NAME }}">> .env
          echo DB_USER= "${{ secrets.DB_USER }}">> .env
          echo DB_PASSWORD= "${{ secrets.DB_PASSWORD }}">> .env
          echo DB_HOST= "${{ secrets.DB_HOST }}">> .env
          echo DB_PORT= "${{ secrets.DB_PORT }}">> .env 
          echo AWS_ACCESS_KEYID= "${{ secrets.AWS_ACCESS_KEYID }}">> .env
          echo AWS_SECRET_ACCESS_KEY="${{ secrets.AWS_SECRET_ACCESS_KEY }}" >> .env
          echo AWS_STORAGE_BUCKET_NAME="${{ secrets.AWS_STORAGE_BUCKET_NAME }}" >> .env
          echo AWS_REGION= "${{ secrets.AWS_REGION}}">> .env
          cat .env    


      - name: Upload package to S3 bucket
        run: aws s3 cp deploy_package.zip s3://playplz/gitaction/deploy-${{ github.sha }}.zip

      - name: Create new ElasticBeanstalk Application Version
        run: |
          aws elasticbeanstalk create-application-version \
          --application-name classic_DRF \
          --source-bundle S3Bucket="playplz",S3Key="gitaction/deploy-${{ github.sha }}.zip" \
          --version-label "ver-${{ github.sha }}" \
          --description "commit-sha-${{ github.sha }}"

      - name: Deploy new ElasticBeanstalk Application Version
        run: aws elasticbeanstalk update-environment --environment-name Classicdrf-env --version-label "ver-${{ github.sha }}"


      # - name: Generate deployment package
      #   run: zip -r deploy-${{ github.sha }}.zip . -x '*.git*'

      # - name: Beanstalk Deploy for app
      #   uses: einaregilsson/beanstalk-deploy@v18
      #   with:
      #     aws_access_key: ${{secrets.AWS_ACCESS_KEYID}}
      #     aws_secret_key: ${{secrets.AWS_SECRET_ACCESS_KEY}}
      #     application_name: PLAYPLZ_NEW
      #     environment_name: Playplznew-dev
      #     region: ${{secrets.AWS_REGION}}
      #     version_label: "ver-${{ github.sha }}"
      #     deployment_package: deploy-${{ github.sha }}.zip
      #     use_existing_version_if_available : "true"
      #     existing_bucket_name : playplz
      
      
     

결과

   
profile
기억의 지배장

0개의 댓글