💡 개발자를 위한 자동화 프로세스인 지속적인 통합
Code - Build - Test 단계에서 적용
💡 지속적인 서비스 제공 혹은 지속적인 배포
Relase - Delpoy - Operate 단계에서 적용
Github가 공식적으로 제공하는 CI/CD 플랫폼
pull request
나 push
같은 이벤트를 트리거로 Github 작업 workflow를 구성할 수 있음📌 Workflow: 하나 이상의 작업이 실행되는 자동화 프로세스
- .yml 이나 .yaml 파일에 이해 구성됨
- 생성한 workflow는.github/workflows
디렉토리에 위치
CI/CD를 적용할 애플리케이션이 있는 레포지토리를 만든다. 이 때 public으로 만들어야 제한없이 Github Action을 사용할 수 있다.
IAM 계정에 로그인해서 access key를 발급 받는다.
발급 받은 키를 레포지토리에서 다음과 같이 등록해준다.
레포지토리의 Actions 탭에서 workflow를 생성한다.
name: client
#트리거: 여기서는 main 브랜치에 push되는 경우
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-22.04
steps:
- name: Checkout source code.
uses: actions/checkout@v3
- 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://<버킷 이름> \
--delete
working-directory: <작업할 디렉토리>
workflow에서 설정한 트리거(main 브랜치에 push)가 발생하면 workflow가 실행되어 aws s3 버킷이 새로 업로드 된다.
version 2.0으로 새로 빌드된 것이 반영된 s3 버킷