깃허브 액션

eunji lee·2022년 6월 23일
0

리액트인강정리

목록 보기
4/4

깃허브 액션이란 ?

GitHub Actions는 CI/CD와 같은 workflow를 자동화 할 수 있는 도구라고 설명되어 있는데,
쉽게 말해 GitHub 내 어떤 이벤트(push, pull, merge ...)가 발생하면 해당 이벤트에 대해 정해진 동작을 실행하게 하는 도구

  • 액션을 이용해서 할 것
    깃허브 액션을 통해서 푸시-> 빌드-> s3 업로드

  • 액션을 이용해서 추가로 할 수 있는 것

  • s3 업로드 후 EC2 까지 업로드 가능
    -> s3(파일 저장소),서버(EC2)에 뿌려주고 싶으면 code deploy의 도움이 필요로 함.
    ->깃허브 액션은 바로 ec2에 접근하여 명령을 수행할 수 없고
    코드 디플로이는 저장공간이 없고 단지 역할만 수행하기 때문에 이런 단계가 생긴다.

셋팅

  1. 프로젝트 생성
  2. 프로젝트 루트에
    ./github/workflows 폴더 생성
    test-every-push.yml 파일 생성
  • 깃허브 액션은 .yaml 파일을 사용 한다.
  • 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() }}
  1. 배포 action을 추가하려면
    깃허브 레포지토리 [Settings > Secrets]
    필요한 키 추가 (aws) 후 yml 파일 수정
  • 키는 대문자 or 소문자로만 가능
    ->키 네이밍 예시
AWS_IAM_MANAGER_KEY_ID
AWS_IAM_MANAGER_SECRET_ACCESS_KEY
profile
안녕하세요! 이은지 입니다.

0개의 댓글