듣고 보는 잡학지식 : Github Actions로 개발 주기 자동화 1

Gwonyeong·2022년 12월 25일
1

Github Actions

목록 보기
1/2

CICD?

개발 작업 :
1. IDE에서 코딩
2. 빌드
3. 테스트
4. 배포!
이후 버그가 발생하면 1번부터 다시 실행하게 됨...

CE : Continous Integration (CI)

지속적인 통합
코딩, 빌드, 테스트를 의미하는 것.

CD : Continuous Delivery

지속적인 제공 / 배포


Github Actions로 트러블 슈팅?

Github 에 Push, Pull Request 등 특정 이벤트가 발생하면 테스트코드가 자동으로 실행되게 하여 버그를 잡아낼 수 있음.
=> Github에서 바로 커밋을 해도 적용이 가능함!

우측 위의 Create Status Badge를 클릭하면 링크를 카피할 수 있는데

README.md등에 붙여 넣으면 디버그 테스트를 성공했다고 이미지를 띄울 수 있음!


Github Actions 템플릿

템플릿을 사용하기 위한 용어정리

  • workflows : 워크플로우가 나무라면(전체)
  • Actions : 액션은 잎 (부분)이라고 볼 수 있음.

Workflow > Job > Step > Action
Workflow안에 Job이 포함되는 개념

기본적으로 워크플로우를 생성하면 위와같은 경로에 저장됨.


name: Node.js Package

on:
  push :
  	branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16
      - run: npm ci
      - run: npm test

  publish-npm:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16
          registry-url: https://registry.npmjs.org/
      - run: npm ci
      - run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{secrets.npm_token}}

공식 Github Actions 문법

on

on:
  push :
  	branches: [main]

어떤 이벤트에 이 yml파일을 실행할지.

위의 경우에는 main 브랜치에 푸시가 될 때 이 파일이 실행되는 것.
이외에도 PR등 여러 이벤트를 지정할 수 있으며 공식 문서에 상세히 나와있음.

Job

runs-on: ubuntu-latest
steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3

Repo에 올라온 코드를 우분투 환경으로 받는 과정

- run: npm ci
- run: npm publish

run : 실행할 명령어

env:
   NODE_AUTH_TOKEN: ${{secrets.npm_token}}

깃허브에서 설정부분의 Screts => Actions로 들어가면 key와 value를 지정해 환경 변수에 들어갈 만한 비밀값을 넣을 수 있음.

EC2 인스턴스로 연결하는 경우 pem키 등이 들어갈 수 있는 것임!

위와 같은 경우 npm_token이라는 Key에 원하는 value를 넣어 사용할 수 있음.

profile
부동의 첫사랑

0개의 댓글