diff --git a/.gitea/workflows/build-dev.yaml b/.gitea/workflows/build-dev.yaml deleted file mode 100644 index c58f88c..0000000 --- a/.gitea/workflows/build-dev.yaml +++ /dev/null @@ -1,97 +0,0 @@ -name: CI -on: - push: - branches: - - 'dev' -jobs: - build: - runs-on: woryzen - steps: - - name: Checkout sources - uses: actions/checkout@v4 - - name: Execute Gradle build - run: ./gradlew build - - name: Prepare Docker image build - run: ./gradlew prepareDockerBuild - - name: Get project version - id: retrieve-version - run: ./gradlew -q version >> "$GITHUB_OUTPUT" - - name: Login to Gitea container registry - uses: docker/login-action@v3 - with: - registry: gitea.woggioni.net - username: woggioni - password: ${{ secrets.PUBLISHER_TOKEN }} - - - name: Build rbcs Docker image - uses: docker/build-push-action@v5.3.0 - with: - builder: "multiplatform-builder" - context: "docker/build/docker" - platforms: linux/amd64,linux/arm64 - push: true - pull: true - tags: | - gitea.woggioni.net/woggioni/rbcs:dev-vanilla - target: release-vanilla - - - name: Build rbcs memcache Docker image - uses: docker/build-push-action@v5.3.0 - with: - builder: "multiplatform-builder" - context: "docker/build/docker" - platforms: linux/amd64,linux/arm64 - push: true - pull: true - tags: | - gitea.woggioni.net/woggioni/rbcs:dev-memcache - target: release-memcache - - - name: Build rbcs redis Docker image - uses: docker/build-push-action@v5.3.0 - with: - builder: "multiplatform-builder" - context: "docker/build/docker" - platforms: linux/amd64,linux/arm64 - push: true - pull: true - tags: | - gitea.woggioni.net/woggioni/rbcs:dev-redis - target: release-redis - - - name: Build rbcs full Docker image - uses: docker/build-push-action@v5.3.0 - with: - builder: "multiplatform-builder" - context: "docker/build/docker" - platforms: linux/amd64,linux/arm64 - push: true - pull: true - tags: | - gitea.woggioni.net/woggioni/rbcs:dev-full - target: release-full - - - name: Build rbcs native Docker image - uses: docker/build-push-action@v5.3.0 - with: - builder: "multiplatform-builder" - context: "docker/build/docker" - platforms: linux/amd64 - push: true - pull: true - tags: | - gitea.woggioni.net/woggioni/rbcs:dev-native - target: release-native - - - name: Build rbcs jlink Docker image - uses: docker/build-push-action@v5.3.0 - with: - builder: "multiplatform-builder" - context: "docker/build/docker" - platforms: linux/amd64 - push: true - pull: true - tags: | - gitea.woggioni.net/woggioni/rbcs:dev-jlink - target: release-jlink - diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index ee68f54..d3e1d3f 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -3,111 +3,224 @@ on: push: tags: - '*' + branches: + - 'dev' +env: + JAVA_VERSION: '25' + GRADLE_VERSION: '9.7.1' jobs: build: - runs-on: woryzen + name: Build and publish + runs-on: hostinger + timeout-minutes: 120 + container: + image: gitea.woggioni.net/woggioni/gitea-runner/archlinux:latest steps: - - name: Checkout sources - uses: actions/checkout@v4 + - name: Checkout repository + uses: actions/checkout@v6 + with: + fetch-depth: 0 + - name: Set up JDK + uses: actions/setup-java@v5 + with: + distribution: 'graalvm' + java-version: ${{ env.JAVA_VERSION }} + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v6 + with: + gradle-version: ${{ env.GRADLE_VERSION }} + cache-read-only: false - name: Execute Gradle build - run: ./gradlew build + run: ./gradlew --no-daemon build - name: Prepare Docker image build - run: ./gradlew prepareDockerBuild - - name: Get project version - id: retrieve-version - run: ./gradlew -q version >> "$GITHUB_OUTPUT" + run: ./gradlew --no-daemon prepareDockerBuild + - name: Publish artifacts + if: startsWith(github.ref, 'refs/tags/') + env: + PUBLISHER_TOKEN: ${{ secrets.PUBLISHER_TOKEN }} + run: ./gradlew --no-daemon publish + - name: Upload Docker build context + uses: actions/upload-artifact@v3 + with: + name: docker-context + path: docker/build/docker + docker-release: + name: Push release Docker images + runs-on: hostinger + needs: build + if: startsWith(github.ref, 'refs/tags/') + timeout-minutes: 90 + steps: + - name: Download Docker build context + uses: actions/download-artifact@v3 + with: + name: docker-context + path: docker/build/docker - name: Login to Gitea container registry uses: docker/login-action@v3 with: registry: gitea.woggioni.net username: woggioni password: ${{ secrets.PUBLISHER_TOKEN }} - - - name: Build rbcs Docker image - uses: docker/build-push-action@v5.3.0 + - name: Build rbcs Docker image + uses: docker/build-push-action@v6 with: builder: "multiplatform-builder" context: "docker/build/docker" - build-args: VERSION=${{ steps.retrieve-version.outputs.VERSION }},REVISION=${{ github.sha }} + build-args: VERSION=${{ github.ref_name }},REVISION=${{ github.sha }} platforms: linux/amd64,linux/arm64 push: true pull: true tags: | gitea.woggioni.net/woggioni/rbcs:latest - gitea.woggioni.net/woggioni/rbcs:${{ steps.retrieve-version.outputs.VERSION }} + gitea.woggioni.net/woggioni/rbcs:${{ github.ref_name }} target: release-vanilla - - - name: Build rbcs memcache Docker image - uses: docker/build-push-action@v5.3.0 + - name: Build rbcs memcache Docker image + uses: docker/build-push-action@v6 with: builder: "multiplatform-builder" context: "docker/build/docker" - build-args: VERSION=${{ steps.retrieve-version.outputs.VERSION }},REVISION=${{ github.sha }} + build-args: VERSION=${{ github.ref_name }},REVISION=${{ github.sha }} platforms: linux/amd64,linux/arm64 push: true pull: true tags: | gitea.woggioni.net/woggioni/rbcs:memcache - gitea.woggioni.net/woggioni/rbcs:${{ steps.retrieve-version.outputs.VERSION }}-memcache + gitea.woggioni.net/woggioni/rbcs:${{ github.ref_name }}-memcache target: release-memcache - - - name: Build rbcs redis Docker image - uses: docker/build-push-action@v5.3.0 + - name: Build rbcs redis Docker image + uses: docker/build-push-action@v6 with: builder: "multiplatform-builder" context: "docker/build/docker" - build-args: VERSION=${{ steps.retrieve-version.outputs.VERSION }},REVISION=${{ github.sha }} + build-args: VERSION=${{ github.ref_name }},REVISION=${{ github.sha }} platforms: linux/amd64,linux/arm64 push: true pull: true tags: | gitea.woggioni.net/woggioni/rbcs:redis - gitea.woggioni.net/woggioni/rbcs:${{ steps.retrieve-version.outputs.VERSION }}-redis + gitea.woggioni.net/woggioni/rbcs:${{ github.ref_name }}-redis target: release-redis - - - name: Build rbcs full Docker image - uses: docker/build-push-action@v5.3.0 + - name: Build rbcs full Docker image + uses: docker/build-push-action@v6 with: builder: "multiplatform-builder" context: "docker/build/docker" - build-args: VERSION=${{ steps.retrieve-version.outputs.VERSION }},REVISION=${{ github.sha }} + build-args: VERSION=${{ github.ref_name }},REVISION=${{ github.sha }} platforms: linux/amd64,linux/arm64 push: true pull: true tags: | gitea.woggioni.net/woggioni/rbcs:full - gitea.woggioni.net/woggioni/rbcs:${{ steps.retrieve-version.outputs.VERSION }}-full + gitea.woggioni.net/woggioni/rbcs:${{ github.ref_name }}-full target: release-full - - - name: Build rbcs native Docker image - uses: docker/build-push-action@v5.3.0 + - name: Build rbcs native Docker image + uses: docker/build-push-action@v6 with: builder: "multiplatform-builder" context: "docker/build/docker" - build-args: VERSION=${{ steps.retrieve-version.outputs.VERSION }},REVISION=${{ github.sha }} + build-args: VERSION=${{ github.ref_name }},REVISION=${{ github.sha }} platforms: linux/amd64 push: true pull: true tags: | gitea.woggioni.net/woggioni/rbcs:native - gitea.woggioni.net/woggioni/rbcs:${{ steps.retrieve-version.outputs.VERSION }}-native + gitea.woggioni.net/woggioni/rbcs:${{ github.ref_name }}-native target: release-native - - - name: Build rbcs jlink Docker image - uses: docker/build-push-action@v5.3.0 + - name: Build rbcs jlink Docker image + uses: docker/build-push-action@v6 with: builder: "multiplatform-builder" context: "docker/build/docker" - build-args: VERSION=${{ steps.retrieve-version.outputs.VERSION }},REVISION=${{ github.sha }} + build-args: VERSION=${{ github.ref_name }},REVISION=${{ github.sha }} platforms: linux/amd64 push: true pull: true tags: | gitea.woggioni.net/woggioni/rbcs:jlink - gitea.woggioni.net/woggioni/rbcs:${{ steps.retrieve-version.outputs.VERSION }}-jlink + gitea.woggioni.net/woggioni/rbcs:${{ github.ref_name }}-jlink + target: release-jlink + docker-dev: + name: Push dev Docker images + runs-on: hostinger + needs: build + if: github.ref == 'refs/heads/dev' + timeout-minutes: 90 + steps: + - name: Download Docker build context + uses: actions/download-artifact@v3 + with: + name: docker-context + path: docker/build/docker + - name: Login to Gitea container registry + uses: docker/login-action@v3 + with: + registry: gitea.woggioni.net + username: woggioni + password: ${{ secrets.PUBLISHER_TOKEN }} + - name: Build rbcs Docker image + uses: docker/build-push-action@v6 + with: + builder: "multiplatform-builder" + context: "docker/build/docker" + platforms: linux/amd64,linux/arm64 + push: true + pull: true + tags: | + gitea.woggioni.net/woggioni/rbcs:dev-vanilla + target: release-vanilla + - name: Build rbcs memcache Docker image + uses: docker/build-push-action@v6 + with: + builder: "multiplatform-builder" + context: "docker/build/docker" + platforms: linux/amd64,linux/arm64 + push: true + pull: true + tags: | + gitea.woggioni.net/woggioni/rbcs:dev-memcache + target: release-memcache + - name: Build rbcs redis Docker image + uses: docker/build-push-action@v6 + with: + builder: "multiplatform-builder" + context: "docker/build/docker" + platforms: linux/amd64,linux/arm64 + push: true + pull: true + tags: | + gitea.woggioni.net/woggioni/rbcs:dev-redis + target: release-redis + - name: Build rbcs full Docker image + uses: docker/build-push-action@v6 + with: + builder: "multiplatform-builder" + context: "docker/build/docker" + platforms: linux/amd64,linux/arm64 + push: true + pull: true + tags: | + gitea.woggioni.net/woggioni/rbcs:dev-full + target: release-full + - name: Build rbcs native Docker image + uses: docker/build-push-action@v6 + with: + builder: "multiplatform-builder" + context: "docker/build/docker" + platforms: linux/amd64 + push: true + pull: true + tags: | + gitea.woggioni.net/woggioni/rbcs:dev-native + target: release-native + - name: Build rbcs jlink Docker image + uses: docker/build-push-action@v6 + with: + builder: "multiplatform-builder" + context: "docker/build/docker" + platforms: linux/amd64 + push: true + pull: true + tags: | + gitea.woggioni.net/woggioni/rbcs:dev-jlink target: release-jlink - - name: Publish artifacts - env: - PUBLISHER_TOKEN: ${{ secrets.PUBLISHER_TOKEN }} - run: ./gradlew publish - diff --git a/docker/Dockerfile b/docker/Dockerfile index 8e78d8f..cca75d8 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -12,14 +12,14 @@ WORKDIR /var/lib/rbcs FROM base-release AS release-vanilla LABEL org.opencontainers.image.title=rbcs -LABEL org.opencontainers.image.description=RBCS vanilla image +LABEL org.opencontainers.image.description="RBCS vanilla image" ADD rbcs-cli-envelope-*.jar rbcs.jar ADD logback.xml /etc/rbcs/logback.xml ENTRYPOINT ["java", "-jar", "/var/lib/rbcs/rbcs.jar"] FROM base-release AS release-memcache LABEL org.opencontainers.image.title=rbcs-memcache -LABEL org.opencontainers.image.description=RBCS image with memcache plugin +LABEL org.opencontainers.image.description="RBCS image with memcache plugin" ADD --chown=rbcs:rbcs rbcs-cli-envelope-*.jar rbcs.jar RUN mkdir plugins WORKDIR /var/lib/rbcs/plugins @@ -30,7 +30,7 @@ ENTRYPOINT ["java", "-jar", "/var/lib/rbcs/rbcs.jar"] FROM base-release AS release-redis LABEL org.opencontainers.image.title=rbcs-redis -LABEL org.opencontainers.image.description=RBCS image with redis plugin +LABEL org.opencontainers.image.description="RBCS image with redis plugin" ADD --chown=rbcs:rbcs rbcs-cli-envelope-*.jar rbcs.jar RUN mkdir plugins WORKDIR /var/lib/rbcs/plugins @@ -41,7 +41,7 @@ ENTRYPOINT ["java", "-jar", "/var/lib/rbcs/rbcs.jar"] FROM base-release AS release-full LABEL org.opencontainers.image.title=rbcs-full -LABEL org.opencontainers.image.description=RBCS image with all plugins +LABEL org.opencontainers.image.description="RBCS image with all plugins" ADD --chown=rbcs:rbcs rbcs-cli-envelope-*.jar rbcs.jar RUN mkdir plugins WORKDIR /var/lib/rbcs/plugins @@ -60,12 +60,12 @@ RUN chown rbcs:rbcs /var/tmp/rbcs FROM scratch AS release-native LABEL org.opencontainers.image.title=rbcs-native -LABEL org.opencontainers.image.description=RBCS image with a native executable with GraalVM +LABEL org.opencontainers.image.description="RBCS image with a native executable with GraalVM" COPY --from=base-native /etc/passwd /etc/passwd COPY --from=base-native /etc/rbcs /etc/rbcs COPY --from=base-native /var/lib/rbcs /var/lib/rbcs COPY --from=base-native /var/tmp/rbcs /var/tmp/rbcs -ADD rbcs-cli.upx /usr/bin/rbcs-cli +ADD --chmod=755 rbcs-cli.upx /usr/bin/rbcs-cli ADD logback.xml /etc/rbcs/logback.xml USER rbcs WORKDIR /var/lib/rbcs @@ -74,7 +74,7 @@ ENTRYPOINT ["/usr/bin/rbcs-cli", "-XX:MaximumHeapSizePercent=70", "-Dio.netty.tm FROM debian:12-slim AS release-jlink LABEL org.opencontainers.image.title=rbcs-jlink -LABEL org.opencontainers.image.description=RBCS image with a jlink distribution +LABEL org.opencontainers.image.description="RBCS image with a jlink distribution" RUN mkdir -p /usr/share/java/rbcs RUN --mount=type=bind,source=.,target=/build/distributions tar -xf /build/distributions/rbcs-cli*.tar -C /usr/share/java/rbcs RUN chmod 755 /usr/share/java/rbcs/bin/* diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index f8e1ee3..61285a6 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37f78a6..c42672d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.7.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME