diff --git a/docker/.github/workflows/docker-deploy.yml b/docker/.github/workflows/docker-deploy.yml new file mode 100644 index 0000000..6f23d0b --- /dev/null +++ b/docker/.github/workflows/docker-deploy.yml @@ -0,0 +1,60 @@ +name: Build, Dockerize and Deploy + +on: + push: + branches: [ main ] + +env: + IMAGE: ${{ secrets.DOCKER_REPOSITORY }}:${{ github.sha }} + +jobs: + build-and-publish: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 17 + + - name: Cache Maven + uses: actions/cache@v4 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-m2- + + - name: Build with Maven (skip tests) + run: mvn -B package -DskipTests + + - name: Log in to Docker Hub + uses: docker/login-action@v4 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build Docker image + run: docker build -t $IMAGE . + + - name: Push Docker image + run: docker push $IMAGE + + deploy: + needs: build-and-publish + runs-on: ubuntu-latest + steps: + - name: Deploy to remote via SSH + uses: appleboy/ssh-action@v0.1.7 + with: + host: ${{ secrets.REMOTE_HOST }} + username: ${{ secrets.REMOTE_USER }} + key: ${{ secrets.SSH_PRIVATE_KEY }} + script: | + docker pull $IMAGE + docker stop app || true + docker rm app || true + docker run -d --name app -p 8080:8080 --restart unless-stopped $IMAGE diff --git a/src/main/java/group/goforward/battlbuilder/controllers/PlatformController.java b/src/main/java/group/goforward/battlbuilder/controllers/PlatformController.java index 68aa742..223ce93 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/PlatformController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/PlatformController.java @@ -30,7 +30,8 @@ public class PlatformController { p.getKey(), p.getLabel(), p.getCreatedAt(), - p.getUpdatedAt() + p.getUpdatedAt(), + p.getIsActive() )) .toList(); } diff --git a/src/main/java/group/goforward/battlbuilder/web/dto/admin/PlatformDto.java b/src/main/java/group/goforward/battlbuilder/web/dto/admin/PlatformDto.java index 19c0c3b..9a07db2 100644 --- a/src/main/java/group/goforward/battlbuilder/web/dto/admin/PlatformDto.java +++ b/src/main/java/group/goforward/battlbuilder/web/dto/admin/PlatformDto.java @@ -7,5 +7,6 @@ public record PlatformDto( String key, String label, OffsetDateTime createdAt, - OffsetDateTime updatedAt + OffsetDateTime updatedAt, + Boolean is_active ) {} diff --git a/src/main/webapp/WEB-INF/views/platform-manager.jsp b/src/main/webapp/WEB-INF/views/platform-manager.jsp index 1c90d91..db90424 100644 --- a/src/main/webapp/WEB-INF/views/platform-manager.jsp +++ b/src/main/webapp/WEB-INF/views/platform-manager.jsp @@ -5,6 +5,20 @@ Platform Manager +
@@ -53,6 +67,7 @@ ID Key Label + Is Active Created At Updated At Actions @@ -105,6 +120,7 @@ \${platform.id} \${platform.key} \${platform.label} + \${platform.is_active} \${formatDate(platform.createdAt)} \${formatDate(platform.updatedAt)}