Skip to content

Commit

Permalink
Merge pull request #44 from dnd-side-project/dev
Browse files Browse the repository at this point in the history
dev -> main
  • Loading branch information
Starlight258 authored Feb 17, 2024
2 parents 4c79b72 + b6998a5 commit d4993a0
Show file tree
Hide file tree
Showing 113 changed files with 4,059 additions and 784 deletions.
File renamed without changes.
88 changes: 88 additions & 0 deletions .github/workflows/build-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Build

on:
push:
branches:
- main
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
steps:
# repository checkout
- uses: actions/checkout@v2

- name: Set up JDK 17
uses: actions/setup-java@v1
with:
java-version: 17

- name: Run Checkstyle
run: ./gradlew checkstyleMain checkstyleTest
- name: Make firebase-adminsdk.json
run: |
touch src/main/resources/timeet-firebase-adminsdk.json
echo "${{ secrets.FIREBASE_ADMINSDK }}" | base64 --decode > src/main/resources/timeet-firebase-adminsdk.json
- name: Make application-prod.yml
run: |
touch src/main/resources/application-prod.yml
echo "${{ secrets.APPLICATION_PROD }}" | base64 --decode > src/main/resources/application-prod.yml
- name: Make application-test.yml
run: |
touch src/main/resources/application-test.yml
echo "${{ secrets.APPLICATION_TEST }}" | base64 --decode > src/main/resources/application-test.yml
- name: Make application-local.yml
run: |
touch src/main/resources/application-local.yml
echo "${{ secrets.APPLICATION_LOCAL }}" | base64 --decode > src/main/resources/application-local.yml
- name: Set output
id: vars
run: echo ::set-output name=tag::${GITHUB_REF#refs/*/}

- name: Build and analyze
run: ./gradlew clean build --info

- name: Docker Setup QEMU
uses: docker/[email protected]

- name: Docker Setup Buildx
uses: docker/[email protected]

- name: Docker Login
uses: docker/[email protected]
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}

- name: Build and Push Docker Image
run: |
JAR_FILE=$(ls ./build/libs/*.jar | head -n 1)
docker buildx build --platform linux/amd64,linux/arm64 \
-t syw5141/dnd-10th-2-backend:latest \
--build-arg JAR_FILE="$JAR_FILE" \
--push .
deploy:
needs: build
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Set output
id: vars
run: echo ::set-output name=tag::${GITHUB_REF#refs/*/}

- name: Deploy on rpi4 server using docker
uses: appleboy/[email protected]
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
script: |
cd ~/dnd-10th-2-backend
docker-compose pull
docker-compose up --force-recreate --build -d
docker image prune -f
22 changes: 18 additions & 4 deletions .github/workflows/build.yml → .github/workflows/check.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
name: Build
name: check

on: [pull_request, workflow_dispatch]
on: [ pull_request, workflow_dispatch ]


jobs:
build:
name: Build
style:
name: Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
Expand All @@ -15,6 +15,12 @@ jobs:
uses: actions/setup-java@v1
with:
java-version: 17
- name: Run Checkstyle
run: ./gradlew checkstyleMain checkstyleTest
- name: Make firebase-adminsdk.json
run: |
touch src/main/resources/timeet-firebase-adminsdk.json
echo "${{ secrets.FIREBASE_ADMINSDK }}" | base64 --decode > src/main/resources/timeet-firebase-adminsdk.json
- name: Make application-prod.yml
run: |
touch src/main/resources/application-prod.yml
Expand All @@ -41,3 +47,11 @@ jobs:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}
run: ./gradlew clean build sonar --info

- name: Verify JAR File Exists
run: |
ls -l ./build/libs/
if [ -z "$(ls -A ./build/libs/*.jar)" ]; then
echo "No JAR files found in ./build/libs directory."
exit 1
fi
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.env
timeet-firebase-adminsdk.json
HELP.md
.gradle
build/
Expand Down
4 changes: 3 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# JDK 17을 기반으로 하는 이미지 사용
FROM openjdk:17-alpine
FROM openjdk:17-oracle

# 작업 디렉토리
WORKDIR /usr/src/app
Expand All @@ -13,5 +13,7 @@ COPY ${JAR_PATH}/*.jar ${JAR_PATH}/app.jar
# 환경변수 설정 (실행중인 컨테이너에 액세스 가능)
ENV JAR_PATH ${JAR_PATH}

EXPOSE 8080

# ENV 이용해서 실행
CMD java -jar ${JAR_PATH}/app.jar
9 changes: 9 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ plugins {
id 'org.springframework.boot' version '3.2.1'
id 'io.spring.dependency-management' version '1.1.4'
id "org.sonarqube" version "4.0.0.2929"
id 'checkstyle'
}

group = 'org.dnd'
Expand Down Expand Up @@ -31,6 +32,9 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0'
implementation("org.springframework.boot:spring-boot-devtools")
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
implementation 'com.google.firebase:firebase-admin:9.2.0'
implementation 'org.springframework.boot:spring-boot-starter-websocket'


compileOnly 'org.projectlombok:lombok'
Expand All @@ -56,4 +60,9 @@ sonar {
properties {
property "sonar.projectKey", "dnd-10th-2-backend"
}
}

checkstyle {
toolVersion '10.13.0'
configFile file("${project.rootDir}/config/checkstyle-config.xml")
}
Loading

0 comments on commit d4993a0

Please sign in to comment.