| # |
| # 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: Java CI |
| on: |
| push: |
| branches: [master, 3.2.x] |
| concurrency: |
| group: ${{ github.workflow }}-${{ github.ref }} |
| cancel-in-progress: true |
| env: |
| MAVEN_OPTS: -Dmaven.artifact.threads=256 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn |
| jobs: |
| build: |
| runs-on: ubuntu-latest |
| strategy: |
| fail-fast: false |
| matrix: |
| java: [17, 21] |
| profile: [test-derby, test-h2] |
| name: build (Java ${{ matrix.java }}, ${{ matrix.profile }}) |
| steps: |
| - uses: actions/checkout@v7.0.1 |
| - name: Setup Java JDK |
| uses: actions/setup-java@v6.0.0 |
| with: |
| distribution: 'zulu' |
| java-version: ${{ matrix.java }} |
| - name: 'Cache Maven packages' |
| uses: actions/cache@v6.1.0 |
| with: |
| path: ~/.m2 |
| key: cache-${{ matrix.java }}-${{ matrix.profile }} |
| restore-keys: cache-${{ matrix.java }}-${{ matrix.profile }} |
| - name: 'Build with Maven' |
| run: mvn -P${{ matrix.profile }} -B clean install --file pom.xml |
| - name: 'Remove snapshots before caching' |
| run: find ~/.m2 -name '*SNAPSHOT' | xargs rm -Rf |