From 3d868aacf2b893cbe658a6f7a1caa787be746ff3 Mon Sep 17 00:00:00 2001 From: David Arthur Date: Mon, 19 Aug 2024 16:46:20 -0400 Subject: [PATCH] MINOR add GH action for PR builds (#16895) For now this will only run on PRs with branch names starting with "gh-" Reviewers: Chia-Ping Tsai --- .github/workflows/pr.yml | 100 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 .github/workflows/pr.yml diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml new file mode 100644 index 00000000000..00a108890f4 --- /dev/null +++ b/.github/workflows/pr.yml @@ -0,0 +1,100 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: pr + +on: + pull_request: + types: [opened, synchronize, reopened] + branches: 'gh-*' + +jobs: + validate: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + java: [8, 11, 17, 21] + name: Compile and Check Java ${{ matrix.java }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + persist-credentials: false + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: ${{ matrix.java }} + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + env: + GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true + with: + gradle-version: wrapper + # Only write to the cache from trunk + #cache-read-only: ${{ github.ref != 'refs/heads/trunk' }} + cache-read-only: false + # Cache downloaded JDKs in addition to the default directories. + gradle-home-cache-includes: | + caches + notifications + jdks + gradle-home-cache-cleanup: true + cache-overwrite-existing: true + - name: Compile and validate + run: ./gradlew --build-cache --info --scan check -x test + + test: + needs: validate + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + java: [ 11, 17 ] + name: JUnit tests Java ${{ matrix.java }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + persist-credentials: false + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: ${{ matrix.java }} + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + env: + GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true + with: + gradle-version: wrapper + # Only write to the cache from trunk + #cache-read-only: ${{ github.ref != 'refs/heads/trunk' }} + cache-read-only: false + # Cache downloaded JDKs in addition to the default directories. + gradle-home-cache-includes: | + caches + notifications + jdks + gradle-home-cache-cleanup: true + cache-overwrite-existing: true + - name: Test + run: | + ./gradlew --build-cache --scan --continue \ + -PtestLoggingEvents=started,passed,skipped,failed \ + -PignoreFailures=true -PmaxParallelForks=2 \ + -PmaxTestRetries=1 -PmaxTestRetryFailures=10 \ + test