ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TIL-2024.06.23 - Git Actions - 002. Steps 가 호출하는 action
    > DevOps/Git Actions 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

     

     


    결과: 

     

     

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

     

     

     

     

    댓글

Designed by Tistory.