name: CI on: push: tags: - '*' jobs: build: runs-on: hostinger steps: - name: Checkout sources uses: actions/checkout@v4 - name: Setup Gradle uses: gradle/actions/setup-gradle@v3 - 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: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 with: driver: docker-container - 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: context: "docker/build/docker" platforms: linux/amd64,linux/arm64 push: true pull: true tags: | gitea.woggioni.net/woggioni/rbcs:vanilla gitea.woggioni.net/woggioni/rbcs:vanilla-${{ steps.retrieve-version.outputs.VERSION }} target: release-vanilla cache-from: type=registry,ref=gitea.woggioni.net/woggioni/rbcs:buildx - name: Build rbcs memcache Docker image uses: docker/build-push-action@v5.3.0 with: context: "docker/build/docker" platforms: linux/amd64,linux/arm64 push: true pull: true tags: | gitea.woggioni.net/woggioni/rbcs:memcache gitea.woggioni.net/woggioni/rbcs:memcache-${{ steps.retrieve-version.outputs.VERSION }} target: release-memcache cache-from: type=registry,ref=gitea.woggioni.net/woggioni/rbcs:buildx cache-to: type=registry,mode=max,compression=zstd,image-manifest=true,oci-mediatypes=true,ref=gitea.woggioni.net/woggioni/rbcs:buildx - name: Build rbcs native Docker image uses: docker/build-push-action@v5.3.0 with: context: "docker/build/docker" platforms: linux/amd64 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:native gitea.woggioni.net/woggioni/rbcs:native-${{ steps.retrieve-version.outputs.VERSION }} target: release-native - name: Publish artifacts env: PUBLISHER_TOKEN: ${{ secrets.PUBLISHER_TOKEN }} run: ./gradlew publish