# The main CI of Hibernate ORM is https://ci.hibernate.org/job/hibernate-orm-pipeline/. # However, Hibernate ORM builds run on GitHub actions regularly # to check that it still works and can be used in GitHub forks. # See https://docs.github.com/en/free-pro-team@latest/actions # for more information about GitHub actions. name: Hibernate ORM build on: push: branches: - 'main' pull_request: branches: - 'main' permissions: {} # none # See https://github.com/hibernate/hibernate-orm/pull/4615 for a description of the behavior we're getting. concurrency: # Consider that two builds are in the same concurrency group (cannot run concurrently) # if they use the same workflow and are about the same branch ("ref") or pull request. group: "workflow = ${{ github.workflow }}, ref = ${{ github.event.ref }}, pr = ${{ github.event.pull_request.id }}" # Cancel previous builds in the same concurrency group even if they are in process # for pull requests or pushes to forks (not the upstream repository). cancel-in-progress: ${{ github.event_name == 'pull_request' || github.repository != 'hibernate/hibernate-orm' }} jobs: build: permissions: contents: read name: Java 11 runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - rdbms: h2 - rdbms: hsqldb - rdbms: derby - rdbms: mysql - rdbms: mariadb - rdbms: postgresql - rdbms: edb - rdbms: oracle - rdbms: db2 - rdbms: mssql - rdbms: sybase # Running with CockroachDB requires at least 2-4 vCPUs, which we don't have on GH Actions runners # - rdbms: cockroachdb # Running with HANA requires at least 8GB memory just for the database, which we don't have on GH Actions runners # - rdbms: hana steps: - uses: actions/checkout@v2 with: persist-credentials: false - name: Reclaim Disk Space run: .github/ci-prerequisites.sh - name: Start database env: RDBMS: ${{ matrix.rdbms }} run: ci/database-start.sh - name: Set up Java 11 uses: actions/setup-java@v2 with: distribution: 'temurin' java-version: '11' - name: Get year/month for cache key id: get-date run: echo "yearmonth=$(/bin/date -u "+%Y-%m")" >> $GITHUB_OUTPUT shell: bash - name: Cache Maven local repository uses: actions/cache@v2 id: cache-maven with: path: | ~/.m2/repository ~/.gradle/caches/ ~/.gradle/wrapper/ # refresh cache every month to avoid unlimited growth key: maven-localrepo-${{ steps.get-date.outputs.yearmonth }} - name: Run build script env: RDBMS: ${{ matrix.rdbms }} run: ./ci/build-github.sh shell: bash - name: Upload test reports (if Gradle failed) uses: actions/upload-artifact@v2 if: failure() with: name: test-reports-java11-${{ matrix.rdbms }} path: | ./**/target/reports/tests/ ./**/target/reports/checkstyle/ - name: Omit produced artifacts from build cache run: ./ci/before-cache.sh