GitHub Actions는 CI/CD와 같은 workflow를 자동화 할 수 있는 도구라고 설명되어 있는데,
쉽게 말해 GitHub 내 어떤 이벤트(push, pull, merge ...)가 발생하면 해당 이벤트에 대해 정해진 동작을 실행하게 하는 도구
액션을 이용해서 할 것
깃허브 액션을 통해서 푸시-> 빌드-> s3 업로드
액션을 이용해서 추가로 할 수 있는 것
s3 업로드 후 EC2 까지 업로드 가능
-> s3(파일 저장소),서버(EC2)에 뿌려주고 싶으면 code deploy의 도움이 필요로 함.
->깃허브 액션은 바로 ec2에 접근하여 명령을 수행할 수 없고
코드 디플로이는 저장공간이 없고 단지 역할만 수행하기 때문에 이런 단계가 생긴다.
./github/workflows
폴더 생성test-every-push.yml
파일 생성 .yml 파일의 구성
name : '[workflow 이름]'
on :
#사용자가 정한 플랫폼을 통해 일련의 과정을 실행한다.
여러개의 job을 사용할 수 있으며,여러개의 job을 사용할 때는 서로 정보를 교환 할 수있다.
jobs:
test:
#job이름
name: Test Lint, tsc, build
#사용할 환경 설정
runs-on : ubuntu-lastest
# GitHub Actions는 해당 프로젝트를 리눅스 환경에 checkout하고 나서 실행을 합니다.checkout하는 것처럼요. 꼭 필요합니다.
#누군가 만들어놓은 Action을 사용. 이때는 uses라는 키워드를 사용
- uses: actions/checkout@v2
id: cache
with:
# node_modules라는 폴더를 검사하여
path: node_modules
# 아래 키값으로 cache가 돼있는지 확인합니다.
key: npm-packages-${{ hashFiles('**/package-lock.json') }}
- name: Install Dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: npm install
- run: npm run lint
if: ${{ always() }}
- run: npm run tsc
if: ${{ always() }}
- run: npm run build
if: ${{ always() }}
[Settings > Secrets]
에AWS_IAM_MANAGER_KEY_ID
AWS_IAM_MANAGER_SECRET_ACCESS_KEY