feat(ci): add deployment workflow and update Dockerfile
All checks were successful
CI / Get Changed Files (pull_request) Successful in 33s
CI / eslint (pull_request) Successful in 37s
CI / prettier (pull_request) Successful in 35s
CI / Checkstyle Main (pull_request) Successful in 52s
CI / test-build (pull_request) Successful in 52s

This commit is contained in:
csimonis 2025-04-23 14:27:47 +02:00
parent b07a3a935a
commit 453fc719f7
3 changed files with 43 additions and 22 deletions

View file

@ -0,0 +1,21 @@
name: Deploy
on:
push:
branches:
- "main"
- "feat/deployment"
paths:
- "backend/**"
jobs:
build-image:
runs-on: ubuntu-latest
name: Build Docker Image
steps:
- uses: actions/checkout@v4
- name: Build Image
run: docker buildx build -f .docker/Dockerfile -t git.kjan.de/SZUT/casino-backend:latest .
- name: Login
run: echo ${DOCKER_PASS} | docker login git.kjan.de --username ${DOCKER_USER} --password-stdin
- name Push
run: docker push git.kja.de/SZUT/casino-backend:latest

View file

@ -1,17 +1,17 @@
FROM gradle:jdk22 AS builder FROM gradle:jdk23 AS builder
WORKDIR /app WORKDIR /app
COPY gradlew build.gradle.kts settings.gradle.kts ./ COPY gradlew build.gradle.kts settings.gradle.kts config ./
COPY gradle gradle COPY gradle gradle
RUN chmod +x gradlew RUN chmod +x gradlew
RUN ./gradlew dependencies RUN gradle dependencies
COPY src src COPY src src
RUN ./gradlew clean build -x test RUN gradle clean build -x test -x checkstyleMain -x checkstyleTest -x compileTestJava
FROM openjdk:22-jdk-slim FROM openjdk:23-jdk-slim AS runtime
WORKDIR /app WORKDIR /app
COPY --from=builder /app/build/libs/*.jar app.jar COPY --from=builder /app/build/libs/*.jar app.jar

View file

@ -1,17 +1,17 @@
spring.datasource.url=jdbc:postgresql://${DB_HOST:localhost}:5432/postgresdb spring.datasource.url=jdbc:postgresql://${DB_HOST:localhost}:${DB_PORT:5432}/${DB_NAME:postgresdb}
spring.datasource.username=postgres_user spring.datasource.username=${DB_USER:postgres_user}
spring.datasource.password=postgres_pass spring.datasource.password=${DB_PASS:postgres_pass}
server.port=8080 server.port=${HTTP_PORT:8080}
spring.jpa.hibernate.ddl-auto=update spring.jpa.hibernate.ddl-auto=update
stripe.secret.key=${STRIPE_SECRET_KEY:sk_test_51QrePYIvCfqz7ANgqam8rEwWcMeKiLOof3j6SCMgu2sl4sESP45DJxca16mWcYo1sQaiBv32CMR6Z4AAAGQPCJo300ubuZKO8I} stripe.secret.key=${STRIPE_SECRET_KEY:sk_test_51QrePYIvCfqz7ANgqam8rEwWcMeKiLOof3j6SCMgu2sl4sESP45DJxca16mWcYo1sQaiBv32CMR6Z4AAAGQPCJo300ubuZKO8I}
stripe.webhook.secret=whsec_746b6a488665f6057118bdb4a2b32f4916f16c277109eeaed5e8f8e8b81b8c15 stripe.webhook.secret=${STRIPE_WEBHOOK_SECRET:whsec_746b6a488665f6057118bdb4a2b32f4916f16c277109eeaed5e8f8e8b81b8c15}
app.frontend-host=http://localhost:4200 app.frontend-host=${FE_URL:http://localhost:4200}
spring.application.name=lf12_starter spring.application.name=casino
#client registration configuration #client registration configuration
spring.security.oauth2.client.registration.authentik.client-id=MDqjm1kcWKuZfqHJXjxwAV20i44aT7m4VhhTL3Nm spring.security.oauth2.client.registration.authentik.client-id=${AUTH_CLIENT_ID:MDqjm1kcWKuZfqHJXjxwAV20i44aT7m4VhhTL3Nm}
spring.security.oauth2.client.registration.authentik.client-secret=GY2F8te6iAVYt1TNAUVLzWZEXb6JoMNp6chbjqaXNq4gS5xTDL54HqBiAlV1jFKarN28LQ7FUsYX4SbwjfEhZhgeoKuBnZKjR9eiu7RawnGgxIK9ffvUfMkjRxnmiGI5 spring.security.oauth2.client.registration.authentik.client-secret=${AUTH_CLIENT_SECRET:GY2F8te6iAVYt1TNAUVLzWZEXb6JoMNp6chbjqaXNq4gS5xTDL54HqBiAlV1jFKarN28LQ7FUsYX4SbwjfEhZhgeoKuBnZKjR9eiu7RawnGgxIK9ffvUfMkjRxnmiGI5}
spring.security.oauth2.client.registration.authentik.provider=authentik spring.security.oauth2.client.registration.authentik.provider=authentik
spring.security.oauth2.client.registration.authentik.client-name=Authentik spring.security.oauth2.client.registration.authentik.client-name=Authentik
spring.security.oauth2.client.registration.authentik.scope=openid,email,profile spring.security.oauth2.client.registration.authentik.scope=openid,email,profile
@ -20,16 +20,16 @@ spring.security.oauth2.client.registration.authentik.authorization-grant-type=au
spring.security.oauth2.client.registration.authentik.redirect-uri={baseUrl}/login/oauth2/code/{registrationId} spring.security.oauth2.client.registration.authentik.redirect-uri={baseUrl}/login/oauth2/code/{registrationId}
# Provider settings # Provider settings
spring.security.oauth2.client.provider.authentik.issuer-uri=https://oauth.simonis.lol/application/o/casino-dev/ spring.security.oauth2.client.provider.authentik.issuer-uri=${AUTH_PROVIDER_ISSUER:https://oauth.simonis.lol/application/o/casino-dev/}
spring.security.oauth2.client.provider.authentik.authorization-uri=https://oauth.simonis.lol/application/o/authorize/ spring.security.oauth2.client.provider.authentik.authorization-uri=${AUTH_PROVIDER_AUTHORIZE_URI:https://oauth.simonis.lol/application/o/authorize/}
spring.security.oauth2.client.provider.authentik.token-uri=https://oauth.simonis.lol/application/o/token/ spring.security.oauth2.client.provider.authentik.token-uri=${AUTH_PROVIDER_TOKEN_URI:https://oauth.simonis.lol/application/o/token/}
spring.security.oauth2.client.provider.authentik.user-info-uri=https://oauth.simonis.lol/application/o/userinfo/ spring.security.oauth2.client.provider.authentik.user-info-uri=${AUTH_PROVIDER_USERINFO_URI:https://oauth.simonis.lol/application/o/userinfo/}
spring.security.oauth2.client.provider.authentik.jwk-set-uri=https://oauth.simonis.lol/application/o/casino-dev/jwks/ spring.security.oauth2.client.provider.authentik.jwk-set-uri=${AUTH_PROVIDER_JWKS_URI:https://oauth.simonis.lol/application/o/casino-dev/jwks/}
spring.security.oauth2.client.provider.authentik.user-name-attribute=preferred_username spring.security.oauth2.client.provider.authentik.user-name-attribute=${AUTH_PROVIDER_NAME_ATTR:preferred_username}
# Resource server config # Resource server config
spring.security.oauth2.resourceserver.jwt.issuer-uri=https://oauth.simonis.lol/application/o/casino-dev/ spring.security.oauth2.resourceserver.jwt.issuer-uri=${AUTH_JWT_ISSUER_URI:https://oauth.simonis.lol/application/o/casino-dev}/
spring.security.oauth2.resourceserver.jwt.jwk-set-uri=https://oauth.simonis.lol/application/o/casino-dev/jwks/ spring.security.oauth2.resourceserver.jwt.jwk-set-uri=${AUTH_JWT_JWT_SET_URI:https://oauth.simonis.lol/application/o/casino-dev/jwks/}
#OIDC provider configuration: #OIDC provider configuration:
logging.level.org.springframework.security=DEBUG logging.level.org.springframework.security=DEBUG