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