Skip to content

Build

Build #5480

Workflow file for this run

name: Build
env:
JAVA_OPTS: "-Xms512m -Xmx6048m -Xss128m -XX:ReservedCodeCacheSize=512m -server"
GRADLE_OPTS: "-Xms512m -Xmx6048m -Xss128m -XX:ReservedCodeCacheSize=512m -server"
GRADLE_BUILD_OPTIONS: "--no-daemon -x check -x test -x javadoc --configure-on-demand --max-workers=8 --no-configuration-cache"
TERM: xterm-256color
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_PACKAGE_REGISTRY_USER: ${{ secrets.GH_PACKAGE_REGISTRY_USER }}
GH_PACKAGE_REGISTRY_TOKEN: ${{ secrets.GH_PACKAGE_REGISTRY_TOKEN }}
DEVELOCITY_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
JDK_CURRENT: 25
JDK_LATEST: 25
JDK_DISTRIBUTION: "oracle"
##########################################################################
concurrency:
group: "workflow = ${{ github.workflow }}, ref = ${{ github.event.ref }}, pr = ${{ github.event.pull_request.id }}"
cancel-in-progress: true
on:
workflow_dispatch:
schedule:
- cron: '0 23 * * *'
# push:
# branches: [ master ]
pull_request:
types: [ assigned ]
# branches: [ master ]
##########################################################################
jobs:
initialize:
if: ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') }}
runs-on: ubuntu-latest
name: "Initialize Build"
outputs:
jdks: ${{ steps.determine-jdk.outputs.jdks }}
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Determine JDKs
id: determine-jdk
run: |
if [ "$JDK_CURRENT" == "$JDK_LATEST" ]; then
echo "jdks=[\"$JDK_CURRENT\"]" >> "$GITHUB_OUTPUT"
else
echo "jdks=[\"$JDK_CURRENT\", \"$JDK_LATEST\"]" >> "$GITHUB_OUTPUT"
fi
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: ${{ env.JDK_CURRENT }}
distribution: ${{ env.JDK_DISTRIBUTION }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Initialize
run: ls ./ci && find ./ci -type f -name "*.sh" -exec chmod +x "{}" \; && ./ci/init-build.sh
##########################################################################
build-pull-request:
if: ${{ (github.event_name == 'pull_request' && github.event.assignee.login == 'apereocas-bot') }}
runs-on: ubuntu-latest
name: "Build Pull Request"
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: ${{ env.JDK_CURRENT }}
distribution: ${{ env.JDK_DISTRIBUTION }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Initialize
run: ls ./ci && find ./ci -type f -name "*.sh" -exec chmod +x "{}" \; && ./ci/init-build.sh
- name: Build with JDK ${{ env.JDK_CURRENT }}
run: ./gradlew build -PsourceCompatibility=${{ env.JDK_CURRENT }} -PtargetCompatibility=${{ env.JDK_CURRENT }} ${{ env.GRADLE_BUILD_OPTIONS }}
##########################################################################
build:
needs: [initialize]
continue-on-error: false
runs-on: ubuntu-latest
name: "Build"
strategy:
fail-fast: false
matrix:
jdk: ${{ fromJson(needs.initialize.outputs.jdks) }}
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up JDK ${{ matrix.jdk }}
uses: actions/setup-java@v5
with:
java-version: ${{ matrix.jdk }}
distribution: ${{ env.JDK_DISTRIBUTION }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Initialize
run: find ./ci -type f -name "*.sh" -exec chmod +x "{}" \; && ./ci/init-build.sh
shell: bash
- name: Build with JDK ${{ matrix.jdk }}
run: ./gradlew build -PsourceCompatibility=${{ matrix.jdk }} -PtargetCompatibility=${{ matrix.jdk }} ${{ env.GRADLE_BUILD_OPTIONS }}
- uses: actions/upload-artifact@v5
with:
name: binary-artifacts-${{ matrix.jdk }}
path: ./**/build/libs/*.*
##########################################################################
build-graalvm:
runs-on: ubuntu-latest
needs: [initialize]
continue-on-error: false
name: "Build Native"
steps:
- name: Checkout
uses: actions/checkout@v6
- uses: graalvm/setup-graalvm@v1
with:
distribution: 'graalvm'
java-version: ${{ env.JDK_LATEST }}
github-token: ${{ secrets.GITHUB_TOKEN }}
cache: 'gradle'
set-java-home: 'true'
- name: GraalVM Versions
run: |
echo "GRAALVM_HOME: $GRAALVM_HOME"
echo "JAVA_HOME: $JAVA_HOME"
java --version
native-image --version
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
- name: Initialize
run: find ./ci -type f -name "*.sh" -exec chmod +x "{}" \; && ./ci/init-build.sh
- name: Build with Gradle
timeout-minutes: 20
run: chmod +x ./ci/tests/native/build.sh && ./ci/tests/native/build.sh