19 Commits
Author SHA1 Message Date
tiennm99 35fb8cf2ef ci: fix gradlew path and permissions for Build Server job
Last Build & Test run failed with exit 127 "./gradlew: No such file or
directory". After the Maven-to-Gradle conversion the wrapper lives at
server/gradlew, not at the repo root. Two fixes:

1. Workflow invokes server/gradlew directly instead of ./gradlew.
2. Mark server/gradlew as executable (mode 100755) in the git index so the
   Linux runner can exec it without a chmod step.
2026-04-11 08:39:13 +07:00
tiennm99 b7ff184387 refactor: convert server from Maven to Gradle
Replace server/pom.xml with Gradle 9.2.1 (Kotlin DSL) + Shadow plugin
for fat jar packaging.

New files:
- server/build.gradle.kts   (Kotlin DSL script)
- server/settings.gradle.kts
- server/gradle/wrapper/    (committed wrapper, pinned to 9.2.1)
- server/gradlew, gradlew.bat

Deleted:
- server/pom.xml

Gradle config:
- plugins: java, com.gradleup.shadow 8.3.5
- toolchain: JavaLanguageVersion.of(25) (auto-provisions if missing)
- deps: netty-all 4.1.115.Final, protobuf-java 3.25.5, gson 2.11.0,
  junit-bom 5.11.3 + junit-jupiter (test)
- compiler: -parameters, UTF-8
- test: useJUnitPlatform()
- shadowJar: main class com.miti99.caro.server.SimpleServer,
  mergeServiceFiles(), append META-INF/io.netty.versions.properties
- default assembly depends on shadowJar

Output path migration:
- server/target/caro-server-0.0.1-beta.jar moves under Gradle output conventions.

Infrastructure:
- server/Dockerfile: eclipse-temurin:25-jdk + committed wrapper
  (no Maven image); runtime stage unchanged. COPY order optimized.
- .github/workflows/build.yml: setup-java temurin 25 +
  gradle/actions/setup-gradle, run gradlew with -p server.
- .gitignore: add .gradle/, whitelist wrapper jar after *.jar rule.

Docs + README fully updated to Gradle commands across:
README.md, codebase-summary.md, code-standards.md, deployment-guide.md,
project-overview.md, system-architecture.md.

Validation: gradlew clean assemble check passes all 37 tests on Java 25.
2026-04-10 20:50:53 +07:00
tiennm99 4feee3b858 chore: remove deploy-pages workflow and cleanup unused files
- Remove .github/workflows/deploy-pages.yml. Docker Compose is now the
  canonical deployment path.
- Delete unreferenced demo.gif (tracked, no markdown references).
- Delete stale landlords-client/ leftover from pre-refactor Maven cache.
- Delete empty client/public/ directory.
- Drop demo.gif entry from .dockerignore.
- Clean up .gitignore: dedupe target/.project/.classpath/.settings/.DS_Store
  entries, remove stale /ratel-landlords/.project line, group by purpose.
- Bump client/README.md Node.js requirement 18+ to 22+ (aligns with CI).
- Update docs to drop GitHub Pages references:
  - codebase-summary.md: drop deploy-pages.yml from tree and CI section.
  - deployment-guide.md: replace Option A (GH Pages) with Docker Compose.
  - project-overview-pdr.md: Phase 4 no longer mentions GH Pages.
  - project-roadmap.md: Phase 6 describes CI-only, notes deploy-pages
    removal; Phase 7 entry lists cleanup items; maintenance schedule
    now says rebuild Docker images.
  - system-architecture.md: deployment diagram shows Docker Compose only.

Validation: mvn -f server/pom.xml clean verify passes 37 tests on Java 25.
2026-04-10 19:48:19 +07:00
tiennm99 1297b7d25a refactor: rename web-client/ to client/ and update compose + CI references
- git mv web-client/ -> client/ (internal files untouched, history preserved).
- docker-compose.yml: rename service web-client -> client, container
  caro-web-client -> caro-client, build context ./web-client -> ./client.
- .github/workflows/build.yml: rename job build-web-client -> build-client,
  working-directory web-client -> client, cache-dependency-path updated.
- .github/workflows/deploy-pages.yml: update paths filter, working-directory,
  cache-dependency-path, upload-pages-artifact path (web-client/** -> client/**),
  workflow display name.
- client/package.json: rename npm package caro-web-client -> caro-client,
  version 1.0.0 -> 0.0.1-beta to align with server artifact.
- Regenerate package-lock.json with new name/version.
- .gitignore: web-client/dist -> client/dist.

Validation: npm run build in client/ succeeds (20 modules transformed).
2026-04-10 19:22:39 +07:00
tiennm99 5b68ee9cc4 refactor: standalone maven, java 25, shade, gson, junit 5, rename to server/
Build system modernization:
- Delete root parent pom.xml; server/pom.xml is now standalone.
- Drop Spring Boot parent; use maven-shade-plugin 3.6.0 for fat jar.
- Upgrade source/target to Java 25 (LTS); pin explicit dep versions:
    netty-all 4.1.115.Final, protobuf-java 3.25.5, gson 2.11.0,
    junit-jupiter 5.11.3, maven-compiler-plugin 3.13.0,
    maven-surefire-plugin 3.5.2, maven-shade-plugin 3.6.0.
- New coordinates: com.miti99.caro:caro-server:0.0.1-beta.
- Shade transformers: manifest (main class), services, appending
  (Netty io.netty.versions.properties merge).

Dependency migration:
- Replace com.smallnico:noson with gson across 5 files (7 call sites):
    MapHelper, TransferProtocolUtils, ServerEventListener_CODE_GAME_WATCH,
    ServerEventListener_CODE_GET_ROOMS, ServerEventListener_CODE_ROOM_CREATE.
  All call sites now funnel through existing JsonUtils wrapper (DRY).
- Migrate GomokuHelperTest + GomokuAITest from JUnit 4 to JUnit 5
  (org.junit.Test -> org.junit.jupiter.api.Test,
   org.junit.Assert.* -> org.junit.jupiter.api.Assertions.*).

Directory + infra:
- git mv landlords-server/ -> server/.
- Rewrite server/Dockerfile: Java 25 base images
  (maven:3.9-eclipse-temurin-25 build, eclipse-temurin:25-jre-alpine runtime),
  simplified COPY paths (no more multi-module layout).
- docker-compose.yml: dockerfile points to server/Dockerfile.
- .github/workflows/build.yml: setup-java temurin 25,
  `mvn -f server/pom.xml -B clean verify`.

Validation: mvn verify on Java 25 passes all 37 tests (29 GomokuHelper
+ 8 GomokuAI), shade produces caro-server-0.0.1-beta.jar cleanly.

Note: package names remain org.nico.ratel.landlords.* in this phase;
renamed to com.miti99.caro.{common,server}.* in Phase 4.
2026-04-10 19:10:51 +07:00
tiennm99 58820fbb9f ci: rename Build.yml to build.yml for naming consistency 2026-04-10 17:23:55 +07:00
tiennm99 e8c08139db ci: modernize GitHub Actions, add Pages deployment
- Replace outdated Build.yml (v2 actions, JDK 1.8, 3-OS matrix)
  with modern workflow (v4 actions, JDK 21, single ubuntu runner)
- Add separate web client build job
- Add deploy-pages.yml for auto-deploying web-client to GitHub Pages
  on push to master (web-client/** changes only)
- Set Vite base path to /caro/ for GitHub Pages compatibility
2026-04-10 10:29:36 +07:00
EldersJavasandGitHub b877c2e0e5 解决一个运行判定错误 2021-05-22 20:31:47 +08:00
EldersJavasandGitHub 3181f7c270 Update Build.yml 2021-01-03 12:03:18 +08:00
EldersJavasandGitHub 7ecefe6128 Update Build.yml 2021-01-03 10:36:11 +08:00
EldersJavasandGitHub 216cc8f126 Update Build.yml 2021-01-03 10:33:27 +08:00
EldersJavasandGitHub abfdd19731 Update Build.yml 2021-01-03 10:32:10 +08:00
EldersJavasandGitHub 4f91c2661e Update Build.yml 2021-01-03 08:17:41 +08:00
EldersJavasandGitHub 8dba6fabc0 add cache 2021-01-03 08:13:41 +08:00
EldersJavasandGitHub b4130e4ac9 Update and rename WindowsBuild.yml to Build.yml 2021-01-02 15:19:43 +08:00
EldersJavasandGitHub 8e89cb7e2e Update WindowsBuild.yml 2021-01-02 15:06:24 +08:00
EldersJavasandGitHub dc0a1c674a Update and rename maven.yml to WindowsBuild.yml 2021-01-02 15:02:12 +08:00
EldersJavasandGitHub 18ed1972b6 Update maven.yml 2021-01-02 14:26:39 +08:00
EldersJavasandGitHub 0a24b07c72 Create maven.yml 2021-01-02 14:20:29 +08:00