name: CI on: push: branches: - zkbesu pull_request: branches: - zkbesu jobs: build_and_test: runs-on: ubuntu-latest-128 env: architecture: "amd64" GRADLE_OPTS: "-Xmx6g -Dorg.gradle.parallel=true -Dorg.gradle.workers.max=4" steps: - name: Checkout uses: actions/checkout@v3 - name: Set up JDK 21 uses: actions/setup-java@v3 with: java-version: 21 distribution: temurin - name: Spotless run: ./gradlew spotlessCheck - name: Test & Build run: ./gradlew build - name: Test Report uses: dorny/test-reporter@v1 if: success() || failure() # run this step even if previous step failed with: name: JUnit Tests # Name of the check run which will be created path: '**/test-results/test/*.xml' # Path to test results reporter: java-junit # Format of test results only-summary: true max-annotations: 50 publish: needs: build_and_test if: github.event_name != 'pull_request' runs-on: ubuntu-latest-128 env: architecture: "amd64" GRADLE_OPTS: "-Xmx6g -Dorg.gradle.parallel=true -Dorg.gradle.workers.max=4" steps: - name: Checkout uses: actions/checkout@v3 - name: Set up JDK 21 uses: actions/setup-java@v3 with: java-version: 21 distribution: temurin - name: Publish Java artifacts run: ./gradlew publish env: CLOUDSMITH_USER: ${{ secrets.CLOUDSMITH_USER }} CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }} - name: Publish distribution artifacts run: | sudo apt update sudo apt install -y python3 python3-pip python3-venv ./gradlew cloudsmithUpload env: CLOUDSMITH_USER: ${{ secrets.CLOUDSMITH_USER }} CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }} - name: Set up QEMU for Docker uses: docker/setup-qemu-action@v3 with: platforms: arm64 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 with: platforms: linux/amd64,linux/arm64 - name: Check Dockerfile syntax run: | docker run --rm -i hadolint/hadolint < docker/Dockerfile - name: Login to Docker Hub for self hosted uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USER_RW }} password: ${{ secrets.DOCKER_PAT_RW }} - name: Build and Publish Docker Image run: | ./gradlew -Pdocker-platform=linux/amd64,linux/arm64 distDocker