GitHub Actions (2) - workflow 만들기

김설영·2022년 8월 9일
0

GitHub-Actions

목록 보기
2/2

참고 자료
GitHub Actions 공식문서

1. WorkFlow 생성


깃허브 액션을 사용하기 위해 workflow를 생성해보자.

  1. GitHub Repository의 .github/workflows 디렉토리를 만든다.

  2. YAML 파일을 생성한다. (예 : learn-github-actions.yml)

    • 혹은, Actions 탭에 들어가서 Pubulish Java Package with Gradle의 configure 버튼을 눌러 자동으로 생성한다.

2. YAML file 작성 및 커밋


  1. 예를 들어, 코드가 푸시될 때 마다 특정 명령을 자동으로 trigger 하는 workflow를 구성한다고 해 보자.

  2. 다음과 같이 코드를 구성할 수 있다.

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v
  1. 변경 내용을 GitHub Repository에 커밋한다.

  2. 이 Workflow 파일은 해당 리포지토리에 설치되었고, 누군가 변경 사항을 푸시할 때마다 이 파일은 자동으로 실행된다.


3. YAML 명령어 정리


  • name: learn-github-actions
    • workflow의 이름을 지정한다.
    • GitHub repository의 Actions 탭에 나타나는 이름이다.
    • 나는 name을 deploy로 지정하였다. 아래와 같이 나타난다.

  • on: [push]
    • 해당 workflow에 대한 Trigger를 지정
    • 위에서는 push 이벤트를 trigger로 지정하였다. 리포지 토리에 변경사항을 push할 때 마다 workflow 실행이 trigger된다.
    • 특정 분기, 경로 또는 태그에 대해 제한을 걸 수도 있는 등, trigger를 다양하게 구성할 수 있다. (참고)
  • jobs:
    • 해당 workflow에서 발생하는 작업을 그룹화한다.
  • check-bats-version:

    • 작업의 이름을 정의하였음.
    • 하위 키는 작업의 속성을 정의
  • runs-on: ubuntu-latest

    • 최신 버전의 Ubuntu Linux 가상 머신을 사용하여 작업을 수행하겠다는 명령어
    • 이는 GitHub에서 제공(호스팅)하는 새로운 가상 머신에서 실행됨을 의미함
    • Runner 관련 명령어
  • steps:

    • 작업(jobs)에서 실행되는 모든 단계를 그룹화
    • 해당 섹션 아래의 항목 : 별도의 작업 or Shell script
  • - uses: actions/checkout@v3

    • actions/checkout@v3를 실행하도록 지정함
    • 저장소로 부터 코드를 내려받기 위한 Action
    • Repository를 Runner에서 checkout → 코드에 대해 스크립트 수행
    • Workflow가 Repository의 코드에 대해 실행될 때 마다, checkout 작업을 사용해야 함.

💡 Git의 Checkout이란?
Git repository에서 특정 branch로 전환하는 작업을 의미.
-> 해당 작업을 위해서는 GitHub에 올려둔 코드를 Local 컴퓨터로 내려받는 작업이 반드시 선행되어야 한다.

💡 GitHub Actions의 Checkout Action
GitHub Actions의 입장에서의 Git checkout
-> GitHub repository의 코드를 CI 서버로 내려받은 후, 특정 브랜치로 전환하는 행위

  • - uses: actions/setup-node@v3

    • with: node-version: '14'
    • 지정된 버전의 Node.js 설치
    • Java 설치 예
  • - run: npm install -g bats

    • run : Runner에서 명령을 실행하도록 작업에 지시하는 것
    • run 다음에 작성된 내용을 정해준 환경에서 그대로 실행한다.
    • 위의 경우, npm을 사용하여 bats 소프트웨어 테스트 패키지를 설치하라는 명령.
    • linux 명령어 예
  • - run: bats -v

    • bats -v 를 실행

4. 요약


  • 각 단계는 단일 작업 or Shell script를 실행
  • name: : workflow 이름 지정
  • on : workflow가 자동으로 실행될 시점 지정(push, pull...)
  • jobs : 작업 그룹화
    jobs:
        name-of-jobs:
            codes...
  • runs-on : Runner의 OS 지정
  • steps : 작업에서 실행되는 모든 step을 그룹화
  • uses : 실행할 내용 지정.
    • uses: actions/checkout@v3 : actions의 checkout@v3 기능 실행
    • uses: actions/setup-node@v3 with: node-version: '14' : 14 버전의 Node.js 설치기능 실행
  • run : 명령어 실행. runs-on에 지정된 OS로 실행 됨.
profile
블로그 이동하였습니당! -> https://kimsy8979.tistory.com/

0개의 댓글