From f8c0e3e8b6439e410033f1448dd38dd22c5072b9 Mon Sep 17 00:00:00 2001 From: siujamo Date: Fri, 5 Jun 2026 08:58:55 +0800 Subject: [PATCH 1/9] ci: fix build error --- .gitea/workflows/build-and-deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/build-and-deploy.yml b/.gitea/workflows/build-and-deploy.yml index 1d83a90..4c04e5b 100644 --- a/.gitea/workflows/build-and-deploy.yml +++ b/.gitea/workflows/build-and-deploy.yml @@ -25,6 +25,7 @@ jobs: ./gradlew bootJar -x test -PartefactVersion="${{ gitea.event.release.tag_name }}" -PbuildChannel=stable + -Pvendor=${{ vars.VENDOR }} - name: Resolve JAR file path id: jar From ceac8a3f8c233dc3395169cab4bd3856fc9d2d95 Mon Sep 17 00:00:00 2001 From: siujamo Date: Fri, 5 Jun 2026 09:14:37 +0800 Subject: [PATCH 2/9] ci: fix build error --- .gitea/workflows/build-and-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/build-and-deploy.yml b/.gitea/workflows/build-and-deploy.yml index 4c04e5b..a2de098 100644 --- a/.gitea/workflows/build-and-deploy.yml +++ b/.gitea/workflows/build-and-deploy.yml @@ -51,7 +51,7 @@ jobs: uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_TOKEN }} + password: ${{ vars.DOCKER_HUB_TOKEN }} - name: Generate image tags id: meta From fb2732508a165b19e0d04c4e58b96d4b8b6b37bd Mon Sep 17 00:00:00 2001 From: siujamo Date: Fri, 5 Jun 2026 09:30:28 +0800 Subject: [PATCH 3/9] ci: fix build error --- .gitea/workflows/build-and-deploy.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/build-and-deploy.yml b/.gitea/workflows/build-and-deploy.yml index a2de098..b63a7c3 100644 --- a/.gitea/workflows/build-and-deploy.yml +++ b/.gitea/workflows/build-and-deploy.yml @@ -50,8 +50,8 @@ jobs: - name: Log in to Docker Hub uses: docker/login-action@v3 with: - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ vars.DOCKER_HUB_TOKEN }} + username: ${{ vars.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_TOKEN }} - name: Generate image tags id: meta From c18a108a2b1f39855794e831f12e3a1a40dc4462 Mon Sep 17 00:00:00 2001 From: siujamo Date: Fri, 5 Jun 2026 09:40:12 +0800 Subject: [PATCH 4/9] ci: fix build error --- .gitea/workflows/build-and-deploy.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/build-and-deploy.yml b/.gitea/workflows/build-and-deploy.yml index b63a7c3..9a9c559 100644 --- a/.gitea/workflows/build-and-deploy.yml +++ b/.gitea/workflows/build-and-deploy.yml @@ -56,10 +56,9 @@ jobs: - name: Generate image tags id: meta run: | - DOCKERHUB_USER="${{ secrets.DOCKER_HUB_USERNAME }}" - REPO_NAME=$(echo "${{ gitea.repository.name }}" | tr '[:upper:]' '[:lower:]') - echo "tag_version=${DOCKERHUB_USER}/${REPO_NAME}:${{ gitea.event.release.tag_name }}" >> "$GITHUB_OUTPUT" - echo "tag_latest=${DOCKERHUB_USER}/${REPO_NAME}:latest" >> "$GITHUB_OUTPUT" + DOCKERHUB_USER="${{ vars.DOCKER_HUB_USERNAME }}" + echo "tag_version=${DOCKERHUB_USER}/${APP_NAME}:${{ gitea.event.release.tag_name }}" >> "$GITHUB_OUTPUT" + echo "tag_latest=${DOCKERHUB_USER}/${APP_NAME}:latest" >> "$GITHUB_OUTPUT" - name: Build and push Docker image uses: docker/build-push-action@v6 From 62fcce3005bd6a32b4dc0ae3a2f64d020f418c8b Mon Sep 17 00:00:00 2001 From: siujamo Date: Fri, 5 Jun 2026 10:20:15 +0800 Subject: [PATCH 5/9] feat: add OCI labels and README push for Docker Hub Add OCI standard labels to Dockerfile.ci and push README.md to Docker Hub image page via docker-pushrm in CI workflow. --- .gitea/workflows/build-and-deploy.yml | 15 +++++++++++- .gitlab-ci.yml | 34 --------------------------- Dockerfile.ci | 12 ++++++++++ 3 files changed, 26 insertions(+), 35 deletions(-) delete mode 100644 .gitlab-ci.yml diff --git a/.gitea/workflows/build-and-deploy.yml b/.gitea/workflows/build-and-deploy.yml index 9a9c559..20220dc 100644 --- a/.gitea/workflows/build-and-deploy.yml +++ b/.gitea/workflows/build-and-deploy.yml @@ -65,8 +65,21 @@ jobs: with: context: . file: Dockerfile.ci - build-args: JAR_FILE=${{ steps.jar.outputs.file }} + build-args: | + JAR_FILE=${{ steps.jar.outputs.file }} + IMAGE_VERSION=${{ gitea.event.release.tag_name }} + IMAGE_VENDOR=${{ vars.VENDOR }} + BUILD_DATE=${{ gitea.event.release.published_at }} push: true tags: | ${{ steps.meta.outputs.tag_version }} ${{ steps.meta.outputs.tag_latest }} + + - name: Push README to Docker Hub + run: > + docker run --rm + -v "$(pwd)/README.md:/workspace/README.md:ro" + -e DOCKER_USER="${{ vars.DOCKER_HUB_USERNAME }}" + -e DOCKER_PASS="${{ secrets.DOCKER_HUB_TOKEN }}" + chko/docker-pushrm:latest + "${{ vars.DOCKER_HUB_USERNAME }}/${{ env.APP_NAME }}" diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 618e6fb..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,34 +0,0 @@ -variables: - GRADLE_OPTS: -Dorg.gradle.daemon=false - DOCKER_HOST: unix:///var/run/docker.sock - -stages: - - release - -release: - stage: release - image: amazoncorretto:21-alpine - cache: - key: gradle - paths: - - .gradle/wrapper - - .gradle/caches - before_script: - - chmod +x gradlew - - apk add --no-cache docker-cli - script: - - ./gradlew bootJar -x test -PartefactVersion="$CI_COMMIT_TAG" - - JAR_FILE=$(find build/libs -name '*.jar' | head -1) - - echo "Building Docker image for tag $CI_COMMIT_TAG with JAR $JAR_FILE" - - docker build - -f Dockerfile.ci - --build-arg JAR_FILE="$JAR_FILE" - -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG" - . - - docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG" "$CI_REGISTRY_IMAGE:latest" - - echo "Pushing image $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG" - - docker login "$CI_REGISTRY" -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" - - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG" - - docker push "$CI_REGISTRY_IMAGE:latest" - rules: - - if: $CI_COMMIT_TAG diff --git a/Dockerfile.ci b/Dockerfile.ci index 5b0e97c..7925330 100644 --- a/Dockerfile.ci +++ b/Dockerfile.ci @@ -2,6 +2,18 @@ FROM amazoncorretto:21-alpine WORKDIR /app ARG JAR_FILE +ARG IMAGE_VERSION=dev +ARG IMAGE_VENDOR=OnixByte +ARG BUILD_DATE + COPY ${JAR_FILE} app.jar +LABEL org.opencontainers.image.title="delta-force-guide-server" \ + org.opencontainers.image.description="REST API backend for managing Delta Force game firearm builds and modifications" \ + org.opencontainers.image.version="${IMAGE_VERSION}" \ + org.opencontainers.image.vendor="${IMAGE_VENDOR}" \ + org.opencontainers.image.source="https://git.onixbyte.com/onixbyte/delta-force-guide-server" \ + org.opencontainers.image.licenses="MIT" \ + org.opencontainers.image.created="${BUILD_DATE}" + ENTRYPOINT ["java", "-jar", "app.jar"] From a2469c7573426dad9fb4ea076008ab72a55c75ed Mon Sep 17 00:00:00 2001 From: siujamo Date: Mon, 8 Jun 2026 13:32:16 +0800 Subject: [PATCH 6/9] docs: update application configuration example --- config/application-prod.yaml.example | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/config/application-prod.yaml.example b/config/application-prod.yaml.example index ae00f78..e68c145 100644 --- a/config/application-prod.yaml.example +++ b/config/application-prod.yaml.example @@ -9,15 +9,19 @@ spring: host: localhost port: 6379 database: 0 - # password: 6hLFVqfGPviTYukn # Uncomment if password is necessary + # password: qwerty # Uncomment if password is necessary logging: pattern: # dateformat: dd MMM yyyy HH:mm:ss.SSS # Modify this for custom date format. app: - common: - version: 1.3.0.8-dev # Application version, you can change to any version you like, used for communication with frontend. + cookie: + http-only: true + secure: false + same-site: none + path: '/' + max-age: P1D cors: allowed-origins: # Cross-origin allowed origins - "http://localhost:5173" # Dev server for vite. @@ -41,12 +45,10 @@ app: issuer: dfguide.local # Issuer host secret: qwertyuiopasdfghjklzxcvbnm123456 # JWT singing secret, a 32-byte long or longer string is recommended valid-time: PT2H # JWT valid duration - cookie: # Cookie settings. - http-only: true - secure: false - same-site: lax - path: '/' - max-age: PT2H + webhook: + github: + secret: 123456 + allowed-users: [ octotcat, onixbyte ] springdoc: api-docs: From 3f2066f8b232022a64781656a743b54d9aa15e9d Mon Sep 17 00:00:00 2001 From: siujamo Date: Mon, 8 Jun 2026 14:14:05 +0800 Subject: [PATCH 7/9] fix: update docker-pushrm README mount path from /workspace to /data docker-pushrm v2 changed the WORKDIR from /workspace to /data, causing the README push step to fail when using the :latest tag. --- .gitea/workflows/build-and-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/build-and-deploy.yml b/.gitea/workflows/build-and-deploy.yml index 20220dc..22c736f 100644 --- a/.gitea/workflows/build-and-deploy.yml +++ b/.gitea/workflows/build-and-deploy.yml @@ -78,7 +78,7 @@ jobs: - name: Push README to Docker Hub run: > docker run --rm - -v "$(pwd)/README.md:/workspace/README.md:ro" + -v "$(pwd)/README.md:/data/README.md:ro" -e DOCKER_USER="${{ vars.DOCKER_HUB_USERNAME }}" -e DOCKER_PASS="${{ secrets.DOCKER_HUB_TOKEN }}" chko/docker-pushrm:latest From 0269683b68346fd3ebbf74ad260e72cce3715447 Mon Sep 17 00:00:00 2001 From: siujamo Date: Mon, 8 Jun 2026 14:46:19 +0800 Subject: [PATCH 8/9] fix: mount README.md to / not /data for docker-pushrm The docker-pushrm image (busybox-based) has no WORKDIR set, defaulting to /. FindReadmeFile() searches ./ relative to WORKDIR, so the file must be at /README.md, not /data/ or /workspace/. --- .gitea/workflows/build-and-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/build-and-deploy.yml b/.gitea/workflows/build-and-deploy.yml index 22c736f..a1e400c 100644 --- a/.gitea/workflows/build-and-deploy.yml +++ b/.gitea/workflows/build-and-deploy.yml @@ -78,7 +78,7 @@ jobs: - name: Push README to Docker Hub run: > docker run --rm - -v "$(pwd)/README.md:/data/README.md:ro" + -v "$(pwd)/README.md:/README.md:ro" -e DOCKER_USER="${{ vars.DOCKER_HUB_USERNAME }}" -e DOCKER_PASS="${{ secrets.DOCKER_HUB_TOKEN }}" chko/docker-pushrm:latest From 2b099a6b2cce061fbe8566636d0f4f452a376ea7 Mon Sep 17 00:00:00 2001 From: siujamo Date: Mon, 8 Jun 2026 14:56:54 +0800 Subject: [PATCH 9/9] fix: use update-container-description-action instead of raw docker-pushrm The raw docker run with docker-pushrm keeps failing due to WORKDIR / mount path mismatches. Replace with the official GitHub Action wrapper from the same author, which handles the internals correctly. --- .gitea/workflows/build-and-deploy.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/build-and-deploy.yml b/.gitea/workflows/build-and-deploy.yml index a1e400c..caed485 100644 --- a/.gitea/workflows/build-and-deploy.yml +++ b/.gitea/workflows/build-and-deploy.yml @@ -76,10 +76,11 @@ jobs: ${{ steps.meta.outputs.tag_latest }} - name: Push README to Docker Hub - run: > - docker run --rm - -v "$(pwd)/README.md:/README.md:ro" - -e DOCKER_USER="${{ vars.DOCKER_HUB_USERNAME }}" - -e DOCKER_PASS="${{ secrets.DOCKER_HUB_TOKEN }}" - chko/docker-pushrm:latest - "${{ vars.DOCKER_HUB_USERNAME }}/${{ env.APP_NAME }}" + uses: christian-korneck/update-container-description-action@v1 + env: + DOCKER_USER: ${{ vars.DOCKER_HUB_USERNAME }} + DOCKER_PASS: ${{ secrets.DOCKER_HUB_TOKEN }} + with: + destination_container_repo: ${{ vars.DOCKER_HUB_USERNAME }}/${{ env.APP_NAME }} + provider: dockerhub + readme_file: README.md