Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
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
12 changes: 12 additions & 0 deletions .github/workflows/bump-version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: release
on:
pull_request:
types:
- labeled

jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: haya14busa/action-bumpr@v1
54 changes: 54 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: release
on:
push:
branches:
- main

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

jobs:
release:
runs-on: ubuntu-latest
outputs:
next_version: ${{ steps.bump.outputs.next_version }}
steps:
- uses: actions/checkout@v4
- uses: haya14busa/action-bumpr@v1
id: bump

package:
runs-on: ubuntu-latest
needs: release

permissions:
contents: read
packages: write
attestations: write
id-token: write

steps:
- uses: actions/checkout@v4

- uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}


- uses: docker/metadata-action@v5
id: meta
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=raw,value=latest
type=raw,value=${{ needs.release.outputs.next_version }}

- uses: docker/build-push-action@v6
with:
context: ./backend
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
37 changes: 37 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Test
on:
pull_request:
branches: [ dev ]
jobs:
test:
runs-on: ubuntu-latest
permissions:
contents: read
env:
PROJECT_DIR: backend
KAKAO_CLIENT: ${{ secrets.KAKAO_CLIENT }}
KAKAO_SECRET: ${{ secrets.KAKAO_SECRET }}
steps:
- uses: actions/checkout@v4

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

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4

- name: Run tests
run: ./gradlew test
working-directory: ${{ env.PROJECT_DIR }}

- name: Upload test report
if: always()

uses: actions/upload-artifact@v4
with:
name: junit-test-report
path: ${{ env.PROJECT_DIR }}/build/reports/tests/test
include-hidden-files: true
11 changes: 10 additions & 1 deletion backend/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,13 @@ out/
.env

### .idea ###
.idea
.idea

### websocket test ###
src/main/resources/static/ws-test.html
src/main/resources/static/ws-test.js



### images/thumbnail ###
images/thumbnail/**
9 changes: 9 additions & 0 deletions backend/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM gradle:jdk21 AS builder
WORKDIR /app
COPY . .
RUN ./gradlew clean build -x test

FROM openjdk:21-slim
WORKDIR /app
COPY --from=builder /app/build/libs/*.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]
5 changes: 5 additions & 0 deletions backend/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ 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-websocket'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'

/* DATABASE */
runtimeOnly 'com.mysql:mysql-connector-j'
Expand All @@ -38,8 +40,11 @@ dependencies {
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
testImplementation 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
testRuntimeOnly 'com.h2database:h2'
testImplementation 'org.springframework.security:spring-security-test'

/* ETC */
implementation 'org.apache.commons:commons-lang3:3.12.0'
annotationProcessor 'org.projectlombok:lombok'
compileOnly 'org.projectlombok:lombok'

Expand Down
7 changes: 3 additions & 4 deletions backend/src/main/java/io/f1/backend/BackendApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@
@SpringBootApplication
public class BackendApplication {

public static void main(String[] args) {
SpringApplication.run(BackendApplication.class, args);
}

public static void main(String[] args) {
SpringApplication.run(BackendApplication.class, args);
}
}
21 changes: 11 additions & 10 deletions backend/src/main/java/io/f1/backend/domain/admin/entity/Admin.java
Original file line number Diff line number Diff line change
@@ -1,27 +1,28 @@
package io.f1.backend.domain.admin.entity;

import io.f1.backend.global.entity.BaseEntity;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

import java.time.LocalDateTime;

@Entity
public class Admin extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(nullable = false)
private String username;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(nullable = false)
private String password;
@Column(nullable = false)
private String username;

@Column(nullable = false)
private LocalDateTime lastLogin;
@Column(nullable = false)
private String password;

@Column(nullable = false)
private LocalDateTime lastLogin;
}

This file was deleted.

This file was deleted.

12 changes: 0 additions & 12 deletions backend/src/main/java/io/f1/backend/domain/game/Player.java

This file was deleted.

26 changes: 0 additions & 26 deletions backend/src/main/java/io/f1/backend/domain/game/Room.java

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package io.f1.backend.domain.game.api;

import io.f1.backend.domain.game.app.RoomService;
import io.f1.backend.domain.game.dto.request.RoomCreateRequest;
import io.f1.backend.domain.game.dto.request.RoomValidationRequest;
import io.f1.backend.domain.game.dto.response.RoomCreateResponse;
import io.f1.backend.domain.game.dto.response.RoomListResponse;

import jakarta.validation.Valid;

import lombok.RequiredArgsConstructor;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/rooms")
@RequiredArgsConstructor
public class RoomController {

private final RoomService roomService;

@PostMapping
@ResponseStatus(HttpStatus.CREATED)
public RoomCreateResponse saveRoom(@RequestBody @Valid RoomCreateRequest request) {
return roomService.saveRoom(request);
}

@PostMapping("/validation")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void validateRoom(@RequestBody @Valid RoomValidationRequest request) {
roomService.validateRoom(request);
}

@GetMapping
public RoomListResponse getAllRooms() {
return roomService.getAllRooms();
}
}
Loading
Loading