0%

github action 간단 사용법

Github Action

Github Action은 Github에서 제공하는 CI/CD 서비스입니다. Github Action을 사용하면 자동으로 워크플로우를 실행할 수 있어 빌드, 테스트, 배포 등을 자동화할 수 있습니다.

Github Action 사용법

github action을 사용하기 위해서는 .github/workflows 디렉토리에 워크플로우 파일을 작성해야 합니다. 워크플로우 파일은 .yml 확장자를 가지며, 워크플로우 파일은 크게 name, on, jobs 섹션으로 구성되어 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
name: CI 하기

on:
push:
branches: [ main ]

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout source code.
uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'adopt'
- naem: Build with Gradle
run: ./gradlew build

name은 워크플로우의 이름을 나타냅니다.

on

on은 워크플로우가 실행되는 조건을 나타냅니다. 위 예제에서는 push 이벤트가 발생하고 브랜치가 main일 때 워크플로우가 실행됩니다. cron을 사용하여 주기적으로 워크플로우를 실행할 수도 있습니다.

1
2
3
on:
schedule:
- cron: '0 0 * * *'

하지만 cron의 느슨한 제약조건으로 인해 정확한 시간에 실행되지 않을 수 있으니 주의해야 합니다.

jobs

jobs는 워크플로우의 작업을 나타냅니다. jobs는 여러개의 작업을 가질 수 있으며, 각 작업은 runs-on, steps로 구성되어 있습니다.

여러개의 jobs를 가질 때 병렬로 실행됩니다. 만약 jobs가 서로 의존성이 있을 때는 needs 키워드를 사용하여 의존성을 나타낼 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
jobs:
job1:
runs-on: ubuntu-latest
steps:
- name: Step 1
run: echo "Hello, World!"
job2:
needs: job1
runs-on: ubuntu-latest
steps:
- name: Step 1
run: echo "Hello, World!"

혹은 if 키워드를 사용하여 조건에 따라 작업을 실행할 수도 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
jobs:
job1:
runs-on: ubuntu-latest
steps:
- name: Step 1
run: echo "Hello, World!"
job2:
if: always()
runs-on: ubuntu-latest
steps:
- name: Step 1
run: echo "Hello, World!"

runs-on

runs-on은 작업이 실행되는 환경을 나타냅니다. ubuntu-latest, windows-latest, macos-latest 등을 사용할 수 있습니다.

steps

steps는 작업의 단계를 나타냅니다. 각 단계는 name, run, uses로 구성되어 있습니다.

name은 단계의 이름을 나타냅니다.

uses는 마켓플레이스에서 제공하는 액션을 사용할 때 사용합니다. 예를 들어, actions/checkout@v3는 소스코드를 체크아웃하는 액션을 사용합니다.

run은 직접 명령어를 실행할 때 사용합니다. uses를 사용해서 환경을 설정하고, run을 사용해서 빌드, 테스트, 배포 등을 실행할 수 있습니다.

실행

github-action

actions 탭에서 워크플로우를 확인할 수 있습니다. 워크플로우가 성공적으로 실행되었다면 초록색 체크 마크가 표시됩니다. 실패했다면 빨간색 엑스표시가 표시됩니다.

github-action
내부에 들어가면 각 jobs 실행 결과를 확인할 수 있습니다.

github-action
jobs를 클릭하면 각 steps의 실행 결과를 확인할 수 있습니다.

마무리

Github Action을 사용하면 낮은 러닝커브로 CI/CD를 구축할 수 있습니다. Github Action을 사용하여 빌드, 테스트, 배포 등을 자동화하면 개발 생산성을 높일 수 있습니다.