name: Build on: workflow_dispatch: pull_request: branches: [ main ] push: branches: [ main ] concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} # Cancel only when the run is NOT on `main` branch cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} jobs: validate-pr: runs-on: macos-latest-xlarge name: Validate PR steps: - uses: actions/checkout@v5 - name: Set up JDK 21 uses: actions/setup-java@v5 with: java-version: '21' distribution: 'temurin' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 with: add-job-summary: 'always' cache-read-only: true - name: Build with Gradle run: ./gradlew clean ktlintCheck build koverLog koverHtmlReport env: JAVA_OPTS: "-Xmx8g -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Dkotlin.daemon.jvm.options=-Xmx6g" - name: Upload Reports if: always() uses: actions/upload-artifact@v4 with: name: junit-results path: | **/build/test-results/test/*.xml build/reports - name: Disable Auto-Merge on Fail if: failure() && github.event_name == 'pull_request' run: gh pr merge --disable-auto "$PR_URL" env: PR_URL: ${{github.event.pull_request.html_url}} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}