> DevOps/Git Actions

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

Janku 2024. 6. 23. 00:17

 

 

 

 

 

 

학습 목표:

  1.  새로운 Event > Push
  2. Step에서 호출되는 action (uses & with)

새로운 Event > Push

- 복습 ) GitHub Actions에서는 다양한 이벤트를 통해 워크플로우를 트리거하며, 각 이벤트는 고유한 트리거 조건이 있음
- 이 중, 이번에 살펴볼 push event 는 [리포지토리에 커밋이 푸시될 때 트리거]될 때 구동

 


더보기

추가적인 Events

다양한 on Event

 

- 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

 

 


결과: 

 

 

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