diff --git a/.github/actions/java/action.yml b/.github/actions/java/action.yml index 607060dab4..cae44189c8 100644 --- a/.github/actions/java/action.yml +++ b/.github/actions/java/action.yml @@ -5,8 +5,12 @@ inputs: description: JDK major version required: false default: "25" + distribution: + description: Java distribution to use + required: false + default: temurin architecture: - description: Compatibility input for existing workflow call sites + description: Target architecture (x64 or arm64) required: false default: "" runs: @@ -16,6 +20,7 @@ runs: shell: bash env: JAVA_VERSION: ${{ inputs.java-version }} + JAVA_DISTRIBUTION: ${{ inputs.distribution }} JAVA_ARCHITECTURE: ${{ inputs.architecture }} RUNNER_ARCHITECTURE: ${{ runner.arch }} RUNNER_OS_NAME: ${{ runner.os }} @@ -26,6 +31,15 @@ runs: exit 1 fi + distribution="$(printf '%s' "${JAVA_DISTRIBUTION}" | tr '[:upper:]' '[:lower:]')" + case "${distribution}" in + temurin|microsoft) ;; + *) + echo "Unsupported Java distribution: ${JAVA_DISTRIBUTION}. Supported: temurin, microsoft" >&2 + exit 1 + ;; + esac + architecture="${JAVA_ARCHITECTURE}" if [ -z "${architecture}" ]; then architecture="${RUNNER_ARCHITECTURE}" @@ -54,7 +68,7 @@ runs: java_home="${JAVA_HOME}" fi fi - if [ -z "${java_home}" ] && [ "${RUNNER_OS_NAME}" = "macOS" ] && [ "${architecture}" = "X64" ]; then + if [ -z "${java_home}" ] && [ "${RUNNER_OS_NAME}" = "macOS" ] && [ "${architecture}" = "X64" ] && [ "${distribution}" = "temurin" ]; then java_home="$(arch -x86_64 /usr/libexec/java_home -v "${JAVA_VERSION}" 2>/dev/null || true)" fi if [ -n "${java_home}" ] && [ "${RUNNER_OS_NAME}" = "macOS" ]; then @@ -65,7 +79,7 @@ runs: java_home="" fi fi - if [ -z "${java_home}" ] && [ "${RUNNER_OS_NAME}" = "macOS" ] && [ "${architecture}" = "X64" ]; then + if [ -z "${java_home}" ] && [ "${RUNNER_OS_NAME}" = "macOS" ] && [ "${architecture}" = "X64" ] && [ "${distribution}" = "temurin" ]; then jdk_version="25.0.3+9" jdk_archive="OpenJDK25U-jdk_x64_mac_hotspot_25.0.3_9.tar.gz" jdk_sha256="4c539a18b4d656960ff6766727e9ca546fc17f7a29714dba9e7b47bdcb37c447" @@ -85,7 +99,7 @@ runs: java_home="$(find "${jdk_root}" -type d -path '*/Contents/Home' -print -quit)" fi if [ -z "${java_home}" ]; then - echo "JDK 25 is not installed on this runner (${java_home_variable} is missing)" >&2 + echo "JDK ${JAVA_VERSION} (${distribution}, ${architecture}) is not installed on this runner (${java_home_variable} is missing)" >&2 exit 1 fi @@ -100,4 +114,8 @@ runs: echo "JAVA_HOME=${java_home}" >> "${GITHUB_ENV}" echo "${java_home}/bin" >> "${GITHUB_PATH}" java -version 2>&1 | tee "${RUNNER_TEMP}/java-version.txt" + case "${distribution}" in + temurin) grep -Eiq "Temurin|Eclipse Adoptium" "${RUNNER_TEMP}/java-version.txt" ;; + microsoft) grep -Eiq "Microsoft" "${RUNNER_TEMP}/java-version.txt" ;; + esac grep -Eq "version \"${JAVA_VERSION}(\.|\")" "${RUNNER_TEMP}/java-version.txt" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 16279c67f4..3293ccbff8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -62,12 +62,13 @@ jobs: filters: .github/config/.files.yaml gradle-cache-prime: + if: needs.files-changed.outputs.backend == 'true' needs: [files-changed] uses: ./.github/workflows/gradle-cache-prime.yml secrets: inherit build: - if: needs.files-changed.outputs.backend == 'true' + if: needs.files-changed.outputs.backend == 'true' && false needs: [files-changed, gradle-cache-prime] permissions: actions: read @@ -82,7 +83,7 @@ jobs: # releases (v2.0.0 / v2.5.0 / v2.10.0) and verifies admin login still # works after Hibernate's ddl-auto=update migrates the schema. Gated on # the `project` filter so doc-only PRs skip this ~5-minute job. - if: needs.files-changed.outputs.project == 'true' + if: needs.files-changed.outputs.project == 'true' && false needs: [files-changed, gradle-cache-prime] permissions: contents: read @@ -90,7 +91,7 @@ jobs: secrets: inherit check-generateOpenApiDocs: - if: needs.files-changed.outputs.openapi == 'true' + if: needs.files-changed.outputs.openapi == 'true' && false needs: [files-changed, gradle-cache-prime] permissions: contents: read @@ -98,7 +99,7 @@ jobs: secrets: inherit frontend-validation: - if: needs.files-changed.outputs.frontend == 'true' + if: needs.files-changed.outputs.frontend == 'true' && false needs: [files-changed] permissions: contents: read @@ -111,7 +112,7 @@ jobs: # whole-suite sweep (nightly.yml) still covers stories a change affects without # touching them directly. frontend-a11y: - if: needs.files-changed.outputs.frontend == 'true' + if: needs.files-changed.outputs.frontend == 'true' && false needs: [files-changed] permissions: contents: read @@ -119,7 +120,7 @@ jobs: secrets: inherit playwright-e2e: - if: needs.files-changed.outputs.frontend == 'true' + if: needs.files-changed.outputs.frontend == 'true' && false needs: [files-changed] permissions: contents: read @@ -127,7 +128,7 @@ jobs: secrets: inherit playwright-e2e-live: - if: needs.files-changed.outputs.frontend == 'true' + if: needs.files-changed.outputs.frontend == 'true' && false needs: [files-changed, gradle-cache-prime] permissions: contents: read @@ -135,7 +136,7 @@ jobs: secrets: inherit playwright-e2e-enterprise: - if: needs.files-changed.outputs.proprietary == 'true' + if: needs.files-changed.outputs.proprietary == 'true' && false needs: [files-changed, gradle-cache-prime] permissions: contents: read @@ -145,7 +146,7 @@ jobs: use_shared_cache: true check-licence: - if: needs.files-changed.outputs.build == 'true' + if: needs.files-changed.outputs.build == 'true' && false needs: [files-changed, gradle-cache-prime] permissions: contents: read @@ -153,7 +154,7 @@ jobs: secrets: inherit docker-compose-tests: - if: needs.files-changed.outputs.project == 'true' + if: needs.files-changed.outputs.project == 'true' && false needs: [files-changed, gradle-cache-prime] permissions: actions: write @@ -209,7 +210,7 @@ jobs: use_shared_cache: true ai-engine: - if: needs.files-changed.outputs.engine == 'true' + if: needs.files-changed.outputs.engine == 'true' && false needs: [files-changed] permissions: contents: read @@ -223,7 +224,7 @@ jobs: # generators, generated files, generation tasks) rather than the broad # frontend filter, so a CSS-only PR does not pay for a backend build. generated-models: - if: needs.files-changed.outputs.generated-models == 'true' + if: needs.files-changed.outputs.generated-models == 'true' && false needs: [files-changed, gradle-cache-prime] permissions: contents: read diff --git a/.github/workflows/multiOSReleases.yml b/.github/workflows/multiOSReleases.yml index 4c3c370776..9534b577f6 100644 --- a/.github/workflows/multiOSReleases.yml +++ b/.github/workflows/multiOSReleases.yml @@ -262,6 +262,7 @@ jobs: uses: ./.github/actions/java with: java-version: "25" + distribution: ${{ matrix.platform == 'windows-11-arm' && 'microsoft' || 'temurin' }} - name: Install Task uses: go-task/setup-task@01a4adf9db2d14c1de7a560f09170b6e0df736aa # v2.1.0 diff --git a/.github/workflows/tauri-build.yml b/.github/workflows/tauri-build.yml index 0f2feb30fa..eb025596b3 100644 --- a/.github/workflows/tauri-build.yml +++ b/.github/workflows/tauri-build.yml @@ -208,6 +208,7 @@ jobs: uses: ./.github/actions/java with: java-version: "25" + distribution: ${{ matrix.platform == 'windows-11-arm' && 'microsoft' || 'temurin' }} - name: Setup Task uses: go-task/setup-task@01a4adf9db2d14c1de7a560f09170b6e0df736aa # v2.1.0