Skip to content
Merged
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
51 changes: 51 additions & 0 deletions .github/workflows/backend-build-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: ✅ Backend Build Test
run-name: ${{ github.actor }} is Build Test 🚀
on:
push:
branches:
- main
pull_request:
branches:
- main

defaults:
run:
working-directory: ./backend-board

permissions:
contents: read

jobs:
build-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'

- name: Make docker-compose.yml
run: echo "${{ secrets.DOCKER_COMPOSE_YML }}" | base64 -d > docker-compose.yml

- name: Run docker
run: docker compose -f "docker-compose.yml" up -d mysql-sandbox redis-sandbox

- name: Wait for MySQL
run: |
while ! docker exec mysql-sandbox mysqladmin ping -h localhost --silent; do
echo "Waiting for MySQL..."
sleep 2
done

- name: Make application.yml
run: |
mkdir -p ./src/main/resources
cd ./src/main/resources
echo "${{ secrets.APPLICATION_YML }}" | base64 -d > application.yml

- name: Test with Gradle
run: ./gradlew clean test

- name: Build with Gradle
run: ./gradlew clean build -x test
30 changes: 30 additions & 0 deletions .github/workflows/backend-check-style.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: 📝 Backend Check Style
run-name: ${{ github.actor }} is Check Style 🚀
on:
push:
branches:
- main
pull_request:
branches:
- main

defaults:
run:
working-directory: ./backend-board

permissions:
contents: read

jobs:
check-style:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
- name: Main checkstyle
run: ./gradlew --console verbose clean checkstyleMain
- name: ️Test checkstyle
run: ./gradlew --console verbose clean checkstyleTest
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
docker-compose.yml
/nginx
8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions backend-board/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ out/
!**/src/main/**/out/
!**/src/test/**/out/
/src/main/resources/application.yml
/src/test/resources/application.yml

### NetBeans ###
/nbproject/private/
Expand Down
59 changes: 37 additions & 22 deletions backend-board/build.gradle
Original file line number Diff line number Diff line change
@@ -1,42 +1,57 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.4.4'
id 'io.spring.dependency-management' version '1.1.7'
id 'java'
id 'org.springframework.boot' version '3.4.4'
id 'io.spring.dependency-management' version '1.1.7'
id 'checkstyle'
}

checkstyle {
maxWarnings = 0
configFile = file("${rootDir}/naver-checkstyle-rules.xml")
configProperties = ["suppressionFile": "${rootDir}/naver-checkstyle-suppressions.xml"]
toolVersion = "10.21.3"
}

group = 'com'
version = '0.0.1-SNAPSHOT'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
mavenCentral()
}

dependencies {
//implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
//implementation 'org.springframework.boot:spring-boot-starter-data-redis'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
//runtimeOnly 'com.mysql:mysql-connector-j'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'com.mysql:mysql-connector-j'
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0'
}

tasks.named('test') {
useJUnitPlatform()
useJUnitPlatform()
}

test {
jvmArgs = ["-javaagent:${configurations.testRuntimeClasspath.find { it.name.contains('mockito-core') }}"]
}
Loading