Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
2026-01-20 19:28:25 -05:00
7 changed files with 78 additions and 30 deletions

22
.gitea/workflows/ci.yaml Normal file
View File

@@ -0,0 +1,22 @@
name: spring-api-ci
on:
push:
branches: ["**"]
pull_request:
jobs:
build-test:
runs-on: ubuntu
steps:
- uses: actions/checkout@v4
- name: Setup Java 21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
cache: maven
- name: Build & test
run: mvn -B -ntp clean verify

12
.idea/dataSources.xml generated
View File

@@ -55,5 +55,17 @@
</jdbc-additional-properties>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
<data-source source="LOCAL" name="ashburn" uuid="d86f68e1-137c-460b-b6cf-77966d4f8cbe">
<driver-ref>postgresql</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>org.postgresql.Driver</jdbc-driver>
<jdbc-url>jdbc:postgresql://ash.gofwd.group:5433/postgres</jdbc-url>
<jdbc-additional-properties>
<property name="com.intellij.clouds.kubernetes.db.host.port" />
<property name="com.intellij.clouds.kubernetes.db.enabled" value="false" />
<property name="com.intellij.clouds.kubernetes.db.container.port" />
</jdbc-additional-properties>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component>
</project>

View File

@@ -1,6 +1,6 @@
# Stage 1: Build the application (The Build Stage)
# Use a Java SDK image with Maven pre-installed
FROM maven:3.9-jdk-17-slim AS build
FROM maven:3.9.6-eclipse-temurin-21 AS build
# Set the working directory inside the container
WORKDIR /app
@@ -17,8 +17,9 @@ RUN mvn clean package -DskipTests
# Stage 2: Create the final lightweight image (The Runtime Stage)
# Use a smaller Java Runtime Environment (JRE) image for a smaller footprint
FROM openjdk:17-jre-slim
FROM eclipse-temurin:21-jre
ENV SPRING_PROFILES_ACTIVE=prod
# Set the working directory in the final image
WORKDIR /app

View File

@@ -1,9 +0,0 @@
services:
postgres:
image: 'postgres:latest'
environment:
- 'POSTGRES_DB=mydatabase'
- 'POSTGRES_PASSWORD=secret'
- 'POSTGRES_USER=myuser'
ports:
- '5432'

View File

@@ -1,28 +1,26 @@
version: '3.8'
services:
# --- 1. Spring API Service (Backend) ---
ss_builder-api:
build:
context: ./backend # Path to your Spring project's root folder
dockerfile: Dockerfile # Assumes you have a Dockerfile in ./backend
container_name: ss_builder-api
battlbuilder_api:
container_name: battlbuilder_api
hostname: battlbuilder_api
image: gitea.gofwd.group/forward_group/ballistic-builder-spring/spring-api:latest
ports:
- "8080:8080" # Map host port 8080 to container port 8080
environment:
# These environment variables link the API to the database service defined below
- SPRING_DATASOURCE_URL=jdbc:postgresql://r710.dev.gofwd.group:5433/ss_builder
- SPRING_DATASOURCE_URL=jdbc:postgresql://ash.gofwd.group:5433/ss_builder
- SPRING_DATASOURCE_USERNAME=dba
- SPRING_DATASOURCE_PASSWORD=!@#Qwerty
- SPRING_PROFILES_ACTIVE=prod
- AI_ENRICHMENT_PROVIDER=off
networks:
- app-network
# --- 2. Next.js App Service (Frontend) ---
nextjs-app:
build:
context: ./frontend # Path to your Next.js project's root folder
dockerfile: Dockerfile # Assumes you have a Dockerfile in ./frontend
container_name: ss_builder-app
bb_web_app:
hostname: bb_web_app
container_name: bb_web_app
image: gitea.gofwd.group/sean/shadow-gunbuilder-ai-proto/webui:latest
ports:
- "3000:3000" # Map host port 3000 to container port 3000
environment:
@@ -32,7 +30,7 @@ services:
# For local testing, you might need the host IP for Next.js to call back
# - NEXT_PUBLIC_API_URL_LOCAL=http://localhost:8080
depends_on:
- ss_builder-api
- battlbuilder_api
networks:
- app-network

24
push-image.sh Executable file
View File

@@ -0,0 +1,24 @@
#!/usr/bin/env bash
set -e
REGISTRY="gitea.gofwd.group"
OWNER="forward_group/ballistic-builder-spring"
IMAGE="spring-api"
TAG=$(git rev-parse --short HEAD)
FULL_IMAGE="$REGISTRY/$OWNER/$IMAGE"
echo "Building $FULL_IMAGE:$TAG"
docker build -f docker/backend/Dockerfile -t $FULL_IMAGE:$TAG .
echo "Tagging latest"
docker tag $FULL_IMAGE:$TAG $FULL_IMAGE:latest
echo "Pushing $TAG"
docker push $FULL_IMAGE:$TAG
echo "Pushing latest"
docker push $FULL_IMAGE:latest
echo "Done!"

View File

@@ -1,8 +1,8 @@
spring.application.name=BattlBuilderAPI
# Database connection properties
spring.datasource.url=jdbc:postgresql://r710.gofwd.group:5433/ss_builder
spring.datasource.username=postgres
spring.datasource.password=cul8rman
spring.datasource.url=jdbc:postgresql://ash.gofwd.group:5433/ss_builder
spring.datasource.username=dba
spring.datasource.password=!@#Qwerty
spring.datasource.driver-class-name=org.postgresql.Driver
@@ -77,8 +77,8 @@ app.beta.invite.tokenMinutes=30
# Ai Enrichment Settings
ai.minConfidence=0.75
ai.openai.apiKey=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
ai.openai.apiKey=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
ai.openai.model=gpt-4.1-mini
ai.enrichment.provider=off
spring.jackson.serialization.fail-on-empty-beans=false