정구리의 우주정복
[Git Action] Git Action CI/CD 구축하기 본문
반응형
나도 멋진 CI/CD 를 갖고싶다
Git Action 을 사용해서 만들어봐야징
서버는 Synology 사용했다
git action 작성하는거는 어렵지 않았는데 서버 설정이 굉장히 어려웠음 ..
폴더는 .github > workflows > deploy.yml 생성하면 된덩
name: CI/CD for Synology
on:
pull_request:
branches:
- main
types:
- closed
jobs:
build:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '21'
- name: Build with Gradle
run: ./gradlew build
- name: Build Docker image
run: docker build -t ${{ secrets.DOCKER_REGISTRY }}/moneymoa-backend:latest .
- name: Login to Synology Docker
run: echo ${{ secrets.SYNOLOGY_PASSWORD }} | docker login ${{ secrets.DOCKER_REGISTRY }} -u "${{ secrets.SYNOLOGY_USER }}" --password-stdin
- name: Push Docker image
run: docker push ${{ secrets.DOCKER_REGISTRY }}/moneymoa-backend:latest
- name: Deploy to Synology server
uses: appleboy/ssh-action@v0.1.0
with:
host: ${{ secrets.SYNOLOGY_DOMAIN }}
username: ${{ secrets.SYNOLOGY_USER }}
password: ${{ secrets.SYNOLOGY_PASSWORD }}
port: ${{ secrets.SYNOLOGY_PORT }}
script: |
container_id=$(/usr/local/bin/docker ps -aq --filter name=moneymoa-backend)
if [ -n "$container_id" ]; then
/usr/local/bin/docker stop moneymoa-backend
/usr/local/bin/docker rm moneymoa-backend;
fi
/usr/local/bin/docker pull ${{ secrets.DOCKER_REGISTRY }}/moneymoa-backend:latest
/usr/local/bin/docker run -d --name moneymoa-backend -p 48977:48977 ${{ secrets.DOCKER_REGISTRY }}/moneymoa-backend:latest --network my_network
크게는 on, jobs 두개로 나뉜다
on 에는 어떤 경우에 git action 을 동작시킬지
jobs 에는 어떤 동작들을 시킬지 정의 하면 됨 !!!
나는 main 에 pr 을 통해서 코드가 merge 되어 pr 이 close 된 경우 cicd가 돌게끔 만들었다
이후에는 gradle build > docker image 생성 > 생성한 이미지 서버에 push > push 한 이미지로 container build 하는 순서로 작성했다
Secret 설정은 여기서 뚱뚱뚱 하면 된당
job 에서 정의한 과정대로 CI/CD가 도는걸 볼 수 있다 ㅜㅜ
해보기전에는 겁나 어렵게 느껴졌었는데 실제로 해보니까 그냥 순서대로 명령어 실행해주는 스크립트 ? 인것같다 물론 더 깊게 들어가면 굉장히 어려워지겠지만 나는 응애라서 이정도만 .. 푸히히 재밌다
반응형
'JAVA > PROJECT' 카테고리의 다른 글
Comments