[TIL] CI/CD

오경준·2022년 10월 12일
0

CI/CD란

개발자를 위한 자동화 프로세스인 통합을 의미한다.
CI를 성공적으로 구현할 경우 어플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로 여러명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있다.

Github Action

Github에서 공식으로 제공하는 빌드, 테스트, 배포 파이프라인 자동화를 위한 CI/CD 플랫폼이다.
이벤트가 발생했을때 수행되는 워크 플로우를 .github/workflows 폴더에
yml형식으로 저장한다.

아래는 .github/workflows 폴터의 yml 파일이다.

// .github/workflows/client.yml

name: client
on:
  push:
    branches:
      - reference
jobs:
  build:
    runs-on: ubuntu-20.04
    steps:
      - name: Checkout source code.
        uses: actions/checkout@v2
      - name: Install dependencies
        run: npm install
        working-directory: 디렉토리
      - name: Build
        run: npm run build
        working-directory: 디렉토리
      - name: SHOW AWS CLI VERSION
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          AWS_EC2_METADATA_DISABLED: true
        run: |
          aws --version
      - name: Sync Bucket
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          AWS_EC2_METADATA_DISABLED: true
        run: |
          aws s3 sync \
            --region ap-northeast-2 \
            build s3://AWS S3 버킷이름 \
            --delete
        working-directory: 디렉토리



        

AWS S3 접근을 위한 ACCESS KEY와 SECRET KEY는 절대 yml 파일 안에 작성해서는 안되며 외부에 노출되서는 안된다.

0개의 댓글