오늘의 학습내용
Code > Build > Test > Release > Deploy > Operate
자동화 프로세스의 지속적인 통합을 의미함
Code - Build - Test 단계에 해당
: 지속적인 서비스 제공/배포를 의미함
Release - Deploy - Operate 단계에 해당
코드가 빌드되면서 최종적으로 배포가 되는 단계를 자동화 단계로 만드는데, 이를 파이프라인을 구축한다고 함
Source 단계
원격 저장소 소스 코드에 변경 사항이 있을 경우, 이를 다음 단계로 전달하는 작업을 수행함
Build 단계
Source 단계에서 전달받은 코드를 컴파일, 빌드, 테스트하여 가공함.
Deploy 단계
Build 결과물을 실제 서비스에 반영하는 작업을 수행함
이번 Github Action 실습을 위해서 아래와 같은 Tool들을 이용했다.
1) AWS - S3
2) Github Action
(VScode에서도 설정 가능)
repository - Actions - New workflow 클릭
필자는 js 기반 코드인 관계로 이에 해당하는 워크플로우를 생성하였음
상세페이지에서 워크플로우 명칭과 내용을 설정해줄 수 있음
워크플로우 내용
name: client // workflow 이름 설정
on: // 어떤 event가 발생했을 때, workflow를 실행시킬지 설정(주로 push/pullrequest가 사용됨)
push:
branches: // workflow를 실행시킬 branch 이름 기입
- 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: ./my-agora-states-client
- name: Build
run: npm run build
working-directory: ./my-agora-states-client
- name: SHOW AWS CLI VERSION
env: // 환경변수 설정(아래 설정에 따라 secret key를 발행해줘야 함)
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 // aws버젼 확인
- 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: | // Sync Bucket에 맞는 실행 조건 설정
aws s3 sync \ // aws s3(AWS에서 제공하는 온라인 스토리지 웹 서비스) 활용
--region ap-northeast-2 \ // 지역 설정(서울 코드)
build s3://fe-76-wongee93 \ // s3 버킷명 기입
--delete
working-directory: ./my-agora-states-client
AWS S3 버킷 속성 하단의 '정정 웹 사이트 호스팅'에서 배포 url 확인이 가능함