Skip to content
Closed

Cicd #54

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 47 additions & 9 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,66 @@
name: Java CI with Gradle

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build:

build-docker-image:
runs-on: ubuntu-latest
permissions:
contents: read

steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0

uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
- name: Grant execute permission for gradlew
run: chmod +x gradlew
# Spring Boot 어플리케이션 Build..
- name: Build with Gradle Wrapper
run: ./gradlew build -x test
run: ./gradlew build -x test
env:
DB_PASSWORD : ${{ secrets.DB_PASSWORD }}
DB_URL : ${{ secrets.DB_URL }}
DB_USERNAME : ${{ secrets.DB_USERNAME }}
SECRET_KEY : ${{ secrets.SECRET_KEY }}
# Docker 이미지 Build
- name: docker image build
run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/spring-cicd-test:latest .
# DockerHub Login (push 하기 위해)
- name: docker login
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
# Docker hub 로 push
- name: Docker Hub push
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/spring-cicd-test

# EC2에서 컨테이너 실행
run-docker-image-on-ec2:
needs: build-docker-image
runs-on: self-hosted
steps:
- name: docker pull
run: sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/spring-cicd-test:latest
- name: docker stop old container
run: |
if [ $(sudo docker ps -a -q -f name=spring-cicd-test) ]; then
sudo docker stop spring-cicd-test
fi
- name: docker run new container with env
run: |
sudo docker run --rm -d -p 80:8080 \
--name spring-cicd-test \
-e DB_URL=${{ secrets.DB_URL }} \
-e DB_USERNAME=${{ secrets.DB_USERNAME }} \
-e DB_PASSWORD=${{ secrets.DB_PASSWORD }} \
-e SECRET_KEY=${{ secrets.SECRET_KEY }} \
${{ secrets.DOCKERHUB_USERNAME }}/spring-cicd-test:latest
- name: delete old docker images
run: sudo docker system prune -f
4 changes: 4 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
FROM openjdk:17
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.example.onederful.domain.cdtest.controller;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/test")
public class CdController {

@GetMapping
public ResponseEntity<?> test() {
return ResponseEntity.ok("cd successful");
}
}
1 change: 1 addition & 0 deletions src/main/java/com/example/onederful/filter/JwtFilter.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ public void doFilter(
requestURI.startsWith("/swagger-ui") ||
requestURI.startsWith("/v3/api-docs") ||
requestURI.startsWith("/swagger-resources") ||
requestURI.startsWith("/api/test") ||
requestURI.startsWith("/webjars")) {
filterChain.doFilter(servletRequest, servletResponse);
return;
Expand Down
Loading