diff --git a/.gitea/workflows/build-and-deploy.yml b/.gitea/workflows/build-and-deploy.yml index 1d83a90..caed485 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 @@ -49,24 +50,37 @@ jobs: - name: Log in to Docker Hub uses: docker/login-action@v3 with: - username: ${{ secrets.DOCKER_HUB_USERNAME }} + username: ${{ vars.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_TOKEN }} - 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 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 + 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 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"] 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: