TIL-2024.06.23 - Git Actions - 002. Steps 가 호출하는 action

학습 목표:
- 새로운 Event > Push
- Step에서 호출되는 action (uses & with)
새로운 Event > Push
- 복습 ) GitHub Actions에서는 다양한 이벤트를 통해 워크플로우를 트리거하며, 각 이벤트는 고유한 트리거 조건이 있음
- 이 중, 이번에 살펴볼 push event 는 [리포지토리에 커밋이 푸시될 때 트리거]될 때 구동
추가적인 Events

- push: 리포지토리에 커밋이 푸시될 때 트리거 (특정 브랜치나 태그에 대해서만 트리거 가능)
on:
push:
branches:
- main
tags:
- v1.*
- pull_request: 풀 리퀘스트가 열리거나 업데이트될 때 트리거 (특정 브랜치나 태그에 대해서만 트리거 가능)
on:
pull_request:
branches:
- main
- schedule: 지정된 cron 스케줄에 따라 주기적으로 워크플로우를 트리거
on:
schedule:
- cron: '0 0 * * *' # 매일 자정에 실행
- workflow_dispatch: 수동으로 워크플로우를 트리거
on:
workflow_dispatch:
inputs:
name:
description: 'Person to greet'
required: true
default: 'World'
- release: 릴리스가 생성, 수정, 삭제될 때 트리거
on:
release:
types: [published, edited, deleted]
- issues: 이슈가 열리거나 수정될 때 트리거
on:
issues:
types: [opened, edited]
- issue_comment: 이슈에 댓글이 달리거나 수정될 때 트리거
on:
issue_comment:
types: [created, edited, deleted]
.. 등
> 여러 이벤트를 결합하여 워크플로우를 트리거도 가능
name: Complex Workflow
on:
push:
branches:
- main
pull_request:
branches:
- main
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
release:
types: [published]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Run a build script
run: echo "Building the project..."
Action @ Step (+ "with" keyword)
> Action 으로 호출되는 step
- "Step"은 단일 실행 단위를 나타내며, 각 "step"은 명령을 실행 (shell script command) || 특정 액션 (action)을 호출
- 일전에 살펴본, shell script command 는 run 키워드를 사용하지만,
- 이번에 살펴볼, action 은 uses 키워드를 사용
- step 중, with 키워드는 해당 action 에 필요한 추가 설정을 제공
uses 키워드
- uses 키워드는 특정 액션을 지정할 때 사용.
- 액션은 리포지토리와 버전 태그로 식별 (e.g. actions/checkout@v2는 actions 조직의 checkout 액션의 2번째 버전 의미)
with 키워드
- with 키워드는 액션에 전달할 매개변수나 설정값을 지정할 때 사용.
- 각 액션마다 사용할 수 있는 매개변수가 다르며, 이는 해당 액션의 문서에 자세히 설명.
전체 코드:
name: Test Project
on: push
jobs:
test:
runs-on: ubuntu-latest # environment
steps:
# SECT: actions/checkout (리포지토리의 소스 코드를 워크플로우 실행 환경으로 체크아웃(다운로드)하는 기능)
- name: Get code
uses: actions/checkout@v3 # uses > action & run: run > shell script (command)
# SECT: Install NODE
- name: Install NodeJS
uses: actions/setup-node@v3
with: # configuration (액션에 전달할 매개변수나 설정값을 지정할 때 사용됩니다. with 키워드 아래에 나열된 키-값 쌍은 해당 액션에 필요한 추가적인 설정을 제공)
node-version: 18
# SECT: Install Dependencies
- name: Install dependencies
run: npm ci
# SECT: Run Test
- name: Run Tests
run: npm test
결과:

- 결과적으로 잘 작동하는 것을 확인할 수 있었다!