잇뉴얼 (IT_Manual)

[Github] CI/CD를 위한 Github action 본문

Git

[Github] CI/CD를 위한 Github action

잇뉴얼 2022. 7. 6. 03:00
728x90
반응형

[Github] CI/CD를 위한 Github action


프로젝트를 완성했다면, 배포를 해야할껍니다. 그런데 이 배포를 수동으로 해야된다면, 상당히 힘들껍니다. 이러한 불편함을 해결하기 위해서 GitHub에는 action 이라는 기능을 가지고 있습니다. Github에 소스파일을 올리면, 자동으로 연결된 서버에 배포를 해주는 자동화 시스템인데요. Github action에 대해 한번 간단하게 알아보도록 하겠습니다.

▶ CI/CD

Github action을 알기전에 Ci/CD를 간단하게 알아보겠습니다. 해당 용어의 뜻은 다음과 같습니다.

  • CI : 개발자를 위한 자동화 프로세스인 지속적인 통합 (Continuous Integration), 빌드/테스트 자동화 과정
  • CD : 지속적인 서비스 제공 (Continuous Delivery) 혹은 지속적인 배포 (Continuous Deployment)

ⓒ Rad Hat

CI/CD는 지속적 통합 및 지속적 제공 (CD, Continuous Delivery)의 구축 사례만을 지칭할 수도 있고, 지속적 통합, 지속적 제공, 지속적 배포라는 3가지 구축 사례 모두를 의미할 수 도 있습니다. 자세한건 더 공부한 다음 정리해서 올려야겠습니다.

참고 자료 : 레드헷 [CI/CD(지속적 통합/지속적 제공): 개념, 방법, 장점, 구현 과정]
 

CI/CD(지속적 통합/지속적 제공): 개념, 방법, 장점, 구현 과정

CI/CD는 애플리케이션의 통합 및 테스트부터 제공 및 배포까지 전체 라이프사이클에서 지속적인 자동화와 모니터링을 제공합니다. 개념, 차이점, 학습방법(인강)을 보세요.

www.redhat.com

▶ Github action

Github action 은 위에서 언급한 CI/CD를 위한 도구라 생각하시면 됩니다. 로컬에서 작업을 한 다음, Github 저장소에 push를 하면, 자동으로 Github action이 동작하여, 개발자가 원하는 방식으로 자동화가 진행이 되는데요. 그런데 프로젝트를 그냥 올린다고 Github action이 작동하는것이 아닌, 어떤 파일이 있어야지만 Github action이 동작하게 됩니다.

▶ .github/workflows

자동화를 동작시키기 위해서는 프로젝트 최상단에 .github/workflows 폴더를 생성해줘야합니다. 해당 폴더가 아닌 폴더들은 GIthub action 이 인식을 하지 못하며, 해당 폴더안에 있는 파일만 인식을 하게 됩니다.

▶ yml 파일

자동화를 진행하기 위해서는 yml파일이 .github/workflows 안에 있어야됩니다. 

name: learn-github-actions
on:
    push:
      branches: [ master, dev ]
    pull_request:
      branches: [ master ]
      paths:
        - "**.js"
      paths-ignore:
        - "doc/**"
jobs:
  build:
    strategy:
      matrix:
        node-version: [10.x, 12.x]

    runs-on: ubuntu-latest
    steps:
      - name: Checkout source code
        uses: actions/checkout@v2
        
      - name: My First Step
        run:
          npm install
          npm test
          npm build

      - name: Cache yarn dependencies
        uses: actions/cache@v1
        id: yarn-cache
        with:
          path: node_modules
          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
          restore-keys: |
            ${{ runner.os }}-yarn-

 yml 안에 작성된 코드입니다. 해당 코드는 위에서부터 순서대로 작동을 하게 됩니다. yml 을 작성하는 방법은 공부를 더 해서 따로 정리를 해봐야겠습니다. 

참고자료
- Github Action에 대한 소개와 사용법
- Github Action 사용법 정리

 

반응형

'Git' 카테고리의 다른 글

[GitHub] README.md(Markdown) 작성법  (0) 2022.07.07
Comments