토이프로젝트/CICD 도입기

프로젝트 CI/CD 도입기 -5 (Github action으로 s3에 업로드)

to,min 2024. 10. 8. 18:04

 

action 만들기

 

1. Actions 탭 -> 좌측 New workflow

 

 

2. simple workflow

 

 

3. workflow 코드 작성

- 아래 코드 중 버킷 URL ,region 등은 개인에 맞게 변경해야합니다.

- dev 와 main 에 push 이벤트가 발생하면 브랜치에 맞게 s3에 업로드 합니다.

* 추후 CodeDeploy 에서 배포를 하기 위하여 S3엔 압축파일로 업로드*

name: Deploy to S3

on:
  push:
    branches:
      - dev
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v2

      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v2
        
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          # 개인에 맞는 환경으로 변경 필요
          aws-region: your-aws-region

      - name: Set S3 Bucket Path
        id: s3path
        # 개인에 맞는 환경으로 변경 필요, 현재는 s3/<branch name> 경로
        run: |
          if [ "${{ github.ref }}" == "refs/heads/main" ]; then
            echo "S3_PATH=main" >> $GITHUB_ENV
          else
            echo "S3_PATH=dev" >> $GITHUB_ENV
          fi

	 # 본인의 s3 Url로 변경 필요
       - name: Zip files for deployment
        run: |
          zip -r deployment_package.zip . -x ".git/*"

      - name: Upload zip to S3
        run: |
          aws s3 cp deployment_package.zip s3://your-bucket-name/${{ env.S3_PATH }}/deployment_package.zip

 

4. Secret 정보 등록  (aws key 등)

(AWS Access key 생성 방법 참고 : https://tomin.tistory.com/9)

 

[AWS] Access key 발급하기

AWS Access key 를 발급하려한다.AWS 밖에서 AWS 서비스를 접근하여 작업하려면 해당 key가 있어야한다. Access key 는 IAM 사용자를 생성하여 그 계정에 Key를 받아야 한다.(root x)IAM 사용자를 생성하여 그 I

tomin.tistory.com

 

 

4.1 Settings -> Secrets and variables -> Actions-> New repository secret 클릭

 

4.2 aws access key 정보 등록 

 

 

 

5. 결과 확인

- 정상적으로 파이프라인을 구성하면, 버킷에 이런식으로 프로젝트 압축 파일이 upload 됨을 볼 수 있다.