간단한 Spring Boot 앱을 통해 GitHub Actions로 CI 구축 과정을 정리해보자 !
1️⃣ Spring Boot 앱 생성
2️⃣ Git 프로젝트 설정

git add.
git commit -m "initial commit"
git push origin main
1️⃣ GitHub Actions Workflow 생성
develop 브랜치 생성 & 푸쉬git swith -c develop
git push -u origin develop
feature/add-workflow 브랜치 생성 git switch -c feature/add-workflow
2️⃣run-test.yaml 파일 생성
- GitHub Actions의 워크플로우 파일
- develop과 feature/* 브랜치에서 푸시 이벤트나 풀 리퀘스트가 발생하면 테스트가 실행되도록 설정

# Actions 이름 github 페이지에서 볼 수 있다.
name: Run Test
# Event Trigger 특정 액션 (Push, Pull_Request)등이 명시한 Branch에서 일어나면 동작을 수행한다.
on:
push:
# 배열로 여러 브랜치를 넣을 수 있다.
branches: [ develop, feature/* ]
# github pull request 생성시
pull_request:
branches:
- develop # -로 여러 브랜치를 명시하는 것도 가능
# 실제 어떤 작업을 실행할지에 대한 명시
jobs:
build:
# 스크립트 실행 환경 (OS)
# 배열로 선언시 개수 만큼 반복해서 실행한다. ( 예제 : 1번 실행)
runs-on: [ ubuntu-latest ]
# 실제 실행 스크립트
steps:
# uses는 github actions에서 제공하는 플러그인을 실행.(git checkout 실행)
- name: checkout
uses: actions/checkout@v4
# with은 plugin 파라미터 입니다. (java 17버전 셋업)
- name: java setup
uses: actions/setup-java@v2
with:
distribution: 'adopt' # See 'Supported distributions' for available options
java-version: '17'
- name: make executable gradlew
run: chmod +x ./gradlew
# run은 사용자 지정 스크립트 실행
- name: run unittest
run: |
./gradlew clean test
3️⃣ feature/add-worflows 브랜치에서 푸쉬
git add .
git commit -m "ADD workflow"
feature/add-workflow
4️⃣ Workflow 성공적으로 수행 확인
- GitHub Actions 페이지에서 워크플로우가 성공적으로 수행된 것을 확인 가능

5️⃣ develop 브랜치로 Pull Request 생성
- feature/add-workflow 브랜치에서 develop 브랜치로 Pull Request생성

6️⃣ 테스트 후 Merge

7️⃣ main 브랜치로 PR 및 Merge

8️⃣ feature/add-workflow 브랜치 삭제
git branch -D feature/add-workflow
🤯 테스트 실패 가능

💡 CI(Continuous Integration)
-main 브랜치에 병합되기 전에 자동화된 테스트를 수행하여, 테스트 결과에 따라 병합을 진행할지 말지를 결정하는 과정을 자동화하는 것
출처 : [TeamSparta]