AWS/Docker+CICD
CICD 파이프 라인 구축 1 (CI 구축 하기 Spring boot 를 사용해서)
sehunbang
2024. 4. 4. 14:22
배포 하는 sampleapp 은 깃허브나 노션페이지 참조.

현재 상황


github 이니셜 세팅




여기서 git add * 과 git add . 읠 차이!
git add * = gitignore파일에 있는 파일들도 stage로 올리는 것
git add . = gitignore 파일에 있는 파일명들은 제외하고 stage에 올리는 것
읻단은 init commit 이기에 * 을 했습니다.


(일단 밑에 yaml 파일 보면 알겠지만 dev 나 feature 브랜치에서 push 가 일어나면 실행 하도록 설정 되어 있습니다
그래서 dev 랑 feat/* 브랜치 를 만들었습니다. )
# Event Trigger 특정 액션 (Push, Pull_Request)등이 명시한 Branch에서 일어나면 동작을 수행한다.
on:
push:
# 배열로 여러 브랜치를 넣을 수 있다.
branches: [ dev, feat/* ]
. git hub workflows 파일 만들기

# 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
workflow 설명
- develop 이나 feature로 시작하는 브랜치에 코드가 push 되거나 develop 을 destination으로 하는 pull request가 생성되면,
./gradlew clean test 를 실행한다.
이것을 pr 올리면



실제 예제. 코드가 수정 되었을때

테스트 코드에 문제가 있을시엔

이메일로 도 옵니다

그래서 지금 문제 있는테스트 코드를 보면

테스트를 고치고 통과시키고 다시 push 하면

그러면 됩니다
