2023-09-21 09:42:43 -04:00
# 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-Atlas
on :
pull_request :
branches :
2023-12-22 13:34:22 -05:00
- '6.4'
2023-09-21 09:42:43 -04:00
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
runs-on : [ self-hosted, Linux, X64, OCI]
strategy :
fail-fast : false
matrix :
include :
- rdbms : oracle_atps
- rdbms : oracle_db19c
- rdbms : oracle_db21c
- rdbms : oracle_db23c
steps :
2023-10-06 01:30:30 -04:00
- uses : actions/checkout@v4
2023-09-21 09:42:43 -04:00
with :
persist-credentials : false
2024-10-28 12:19:55 -04:00
- name : Reclaim disk space and sanitize user home
run : .github/ci-prerequisites-atlas.sh
2023-09-21 09:42:43 -04:00
- name : Start database
env :
RDBMS : ${{ matrix.rdbms }}
RUNID : ${{ github.run_number }}
run : ci/database-start.sh
- name : Set up Java 11
2024-01-31 08:03:54 -05:00
uses : graalvm/setup-graalvm@v1
2023-09-21 09:42:43 -04:00
with :
2024-01-31 08:03:54 -05:00
distribution : 'graalvm'
java-version : '21'
2024-10-25 05:28:29 -04:00
- name : Generate cache key
id : cache-key
run : |
CURRENT_BRANCH="${{ github.repository != 'hibernate/hibernate-orm' && 'fork' || github.base_ref || github.ref_name }}"
CURRENT_MONTH=$(/bin/date -u "+%Y-%m")
CURRENT_DAY=$(/bin/date -u "+%d")
ROOT_CACHE_KEY="buildtool-cache-atlas"
echo "buildtool-monthly-cache-key=${ROOT_CACHE_KEY}-${CURRENT_MONTH}" >> $GITHUB_OUTPUT
echo "buildtool-monthly-branch-cache-key=${ROOT_CACHE_KEY}-${CURRENT_MONTH}-${CURRENT_BRANCH}" >> $GITHUB_OUTPUT
echo "buildtool-cache-key=${ROOT_CACHE_KEY}-${CURRENT_MONTH}-${CURRENT_BRANCH}-${CURRENT_DAY}" >> $GITHUB_OUTPUT
2024-10-25 06:27:06 -04:00
- name : Cache Maven/Gradle Dependency/Dist Caches
2023-09-21 09:42:43 -04:00
id : cache-maven
2024-10-25 05:28:29 -04:00
uses : actions/cache@v4
# if it's not a pull request, we restore and save the cache
if : github.event_name != 'pull_request'
2023-09-21 09:42:43 -04:00
with :
path : |
2024-10-25 05:28:29 -04:00
~/.m2/repository/
~/.m2/wrapper/
2024-10-25 06:27:06 -04:00
~/.gradle/caches/modules-2
2023-09-21 09:42:43 -04:00
~/.gradle/wrapper/
2024-10-25 05:28:29 -04:00
# A new cache will be stored daily. After that first store of the day, cache save actions will fail because the cache is immutable but it's not a problem.
# The whole cache is dropped monthly to prevent unlimited growth.
# The cache is per branch but in case we don't find a branch for a given branch, we will get a cache from another branch.
key : ${{ steps.cache-key.outputs.buildtool-cache-key }}
restore-keys : |
${{ steps.cache-key.outputs.buildtool-monthly-branch-cache-key }}-
${{ steps.cache-key.outputs.buildtool-monthly-cache-key }}-
2024-10-25 06:27:06 -04:00
- name : Restore Maven/Gradle Dependency/Dist Caches
2024-10-25 05:28:29 -04:00
uses : actions/cache/restore@v4
# if it a pull request, we restore the cache but we don't save it
if : github.event_name == 'pull_request'
with :
path : |
~/.m2/repository/
~/.m2/wrapper/
2024-10-25 06:27:06 -04:00
~/.gradle/caches/modules-2
2024-10-25 05:28:29 -04:00
~/.gradle/wrapper/
key : ${{ steps.cache-key.outputs.buildtool-cache-key }}
restore-keys : |
${{ steps.cache-key.outputs.buildtool-monthly-branch-cache-key }}-
${{ steps.cache-key.outputs.buildtool-monthly-cache-key }}-
2023-09-21 09:42:43 -04:00
- name : Run build script
env :
RDBMS : ${{ matrix.rdbms }}
RUNID : ${{ github.run_number }}
run : ./ci/build-github.sh
shell : bash
- name : Upload test reports (if Gradle failed)
2023-12-15 00:59:40 -05:00
uses : actions/upload-artifact@v4
2023-09-21 09:42:43 -04:00
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