github action practice

깃허브 액션~!
내 프로젝트가 다른 환경에서도 잘 동작하는지 확인해보자

.github/workflows/github-actions.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
name: github actions practice

on:
workflow_dispatch:
branches: [master]

jobs:
test:
runs-on: ${{matrix.os}}

strategy:
matrix:
os: [ubuntu-latest, macos-latest] # https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions
node-version: [10.x, 11.x, 12.x, 13.x, 14.x, 15.x, 16.x]

steps:
- uses: actions/checkout@v2 # 레포 클론할 때 필요

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2 # 노드
with:
node-version: ${{ matrix.node-version }}

- name: Install Rest Dependencies
run: npm install

- name: Initiate Test
run: npm test
  • name ; 원하는 이름을 설정해준다
  • on ; 워크플로를 트리거하는 이벤트를 지정한다 (실행 조건)
    • on: push ; 이렇게 단일 값을 지정해 줄 수 있다
    • on: [push, pull_request] ; 배열 값으로 지정해 줄 수도 있다
    • 나는 workflow_dispatch를 사용했는데, 이거를 사용하면 수동으로 워크플로우를 시작해야 한다. 깃허브 액션은 사용량 제한이 있어서 일단 아끼고 본다
  • jobs.<job_id>.strategy.matrix ; 워크플로를 실행할 환경을 설정한다
  • jobs.<job_id>.setps[*].uses ; actions/checkout@v2, actions/setup-node@v2를 사용했다. actions/checkout@v2은 현재 레포를 테스트 환경으로 클론 할 때 필요한 것이고, actions/setup-node@v2는 노드 버전을 구성하는데 권장하는 방법이라고 한다
  • jobs.<job_id>.steps[*].run ; 원하는 cli를 설정할 수 있다
  • jobs.<job_id>.steps[*].name ; 각 단계에 이름을 붙여줄 수 있다. 깃허브 액션 페이지에서 로그를 식별할 때 도움을 준다

참고