Skip to content

Commit

Permalink
Merge pull request #25 from TaeKyeongKim/backend-dev
Browse files Browse the repository at this point in the history
[team-2][Miller] STEP1 (1주차 수요일) PR
  • Loading branch information
Dae-Hwa committed May 25, 2022
2 parents 0f0bf8c + 14fdb84 commit dd58674
Show file tree
Hide file tree
Showing 30 changed files with 1,069 additions and 0 deletions.
68 changes: 68 additions & 0 deletions .github/workflows/build-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Build and Deploy of Continuous Deployment

on:
pull_request:
branches: [ backend-dev ]
types: [ closed ]

permissions:
contents: read

jobs:
build:
if: github.event.pull_request.merged
runs-on: ubuntu-latest

defaults:
run:
working-directory: ./backend

steps:
## gradle tasks
- uses: actions/checkout@v3

- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build with Gradle
run: ./gradlew clean build -x test

## docker tasks
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v3
with:
context: ./backend
push: true
tags: rxdcxdrnine/airbnb:latest

deploy:
if: github.event.pull_request.merged
needs: build
runs-on: ubuntu-latest

steps:
- name: Docker Pull and Run on EC2
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_SSH_KEY }}
script: |
sudo docker pull rxdcxdrnine/airbnb:latest
sudo docker stop airbnb-server && sudo docker rm airbnb-server
sudo docker run -d --name airbnb-server -p 8080:8080 rxdcxdrnine/airbnb:latest
34 changes: 34 additions & 0 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Build and Test for Continuous Integration

on:
pull_request:
branches: [ backend-dev ]

permissions:
contents: read

jobs:
build:
runs-on: ubuntu-latest

defaults:
run:
working-directory: ./backend

steps:
- uses: actions/checkout@v3

- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build with Gradle
run: ./gradlew clean build -x test

- name: Test with Gradle
run: SPRING_PROFILES_ACTIVE=[test] ./gradlew test
37 changes: 37 additions & 0 deletions backend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
HELP.md
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

### VS Code ###
.vscode/
5 changes: 5 additions & 0 deletions backend/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
FROM openjdk:11-jre-slim-buster
ARG JAR_FILE=./build/libs/airbnb-0.0.1.jar
COPY ${JAR_FILE} app.jar
# 배포 환경 데이터베이스 구성 시 spring.profiles.active=prod 로 변경 예정
ENTRYPOINT ["java","-Dspring.profiles.active=test", "-jar","/app.jar"]
34 changes: 34 additions & 0 deletions backend/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
plugins {
id 'org.springframework.boot' version '2.7.0'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}

group = 'com.codesquad'
version = '0.0.1'
sourceCompatibility = '11'

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'mysql:mysql-connector-java'
implementation 'com.h2database:h2' // testImplementation 으로 변경 예정
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
useJUnitPlatform()
}
16 changes: 16 additions & 0 deletions backend/docker/database-local.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
version: "3"

services:
database:
image: mysql:8.0
container_name: mysql-airbnb
ports:
- "3306:3306"
environment:
- MYSQL_DATABASE=airbnb
- MYSQL_ROOT_PASSWORD=team-2
- TZ=Asia/Seoul

command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
Binary file added backend/gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
5 changes: 5 additions & 0 deletions backend/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading

0 comments on commit dd58674

Please sign in to comment.