From 1a3d7a1a7673441b368db005789dc98f70fcb09f Mon Sep 17 00:00:00 2001 From: Daniel Chao Date: Tue, 6 Oct 2026 15:18:20 -0700 Subject: [PATCH] Produce compiled classes list (#1898) This adjusts Gradle logic so that it produces a list of compiled classes in each of the various native image builds. --- .github/jobs/BuildNativeJob.pkl | 13 ++++ .github/workflows/build.yml | 75 +++++++++++++++++++ .github/workflows/main.yml | 75 +++++++++++++++++++ .github/workflows/prb.yml | 75 +++++++++++++++++++ .github/workflows/release-branch.yml | 75 +++++++++++++++++++ .github/workflows/release.yml | 75 +++++++++++++++++++ .../src/main/kotlin/NativeImageBuild.kt | 40 ++++++++++ .../src/main/kotlin/pklGraalVm.gradle.kts | 8 ++ libpkl/libpkl.gradle.kts | 2 +- 9 files changed, 437 insertions(+), 1 deletion(-) diff --git a/.github/jobs/BuildNativeJob.pkl b/.github/jobs/BuildNativeJob.pkl index 9e2f30e83..60ae1d014 100644 --- a/.github/jobs/BuildNativeJob.pkl +++ b/.github/jobs/BuildNativeJob.pkl @@ -68,6 +68,19 @@ steps { path = module.buildDir } } + (catalog.`actions/upload-artifact@v5`) { + name = "Upload compiled classes list" + with { + name = + if (musl) + "compiled-classes-\(project)-alpine-\(module.os)-\(module.arch)" + else + "compiled-classes-\(project)-\(module.os)-\(module.arch)" + // Need to insert a wildcard to make actions/upload-artifact preserve the folder hierarchy. + // See https://github.com/actions/upload-artifact/issues/206 + path = "\(project)*/build/compiled-classes/**/*" + } + } } fixed job { diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 586b39baa..b100de2c2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -244,6 +244,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-linux-amd64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-linux-amd64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -294,6 +299,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-linux-aarch64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-linux-aarch64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -343,6 +353,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-macOS-aarch64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-macOS-aarch64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -449,6 +464,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-alpine-linux-amd64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-alpine-linux-amd64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -494,6 +514,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-windows-amd64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-windows-amd64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -542,6 +567,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-linux-amd64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-linux-amd64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -592,6 +622,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-linux-aarch64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-linux-aarch64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -641,6 +676,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-macOS-aarch64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-macOS-aarch64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -747,6 +787,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-alpine-linux-amd64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-alpine-linux-amd64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -792,6 +837,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-windows-amd64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-windows-amd64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -840,6 +890,11 @@ jobs: with: name: deploy-artifacts-libpkl-linux-amd64 path: libpkl/build/native-libs/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-linux-amd64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -890,6 +945,11 @@ jobs: with: name: deploy-artifacts-libpkl-linux-aarch64 path: libpkl/build/native-libs/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-linux-aarch64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -939,6 +999,11 @@ jobs: with: name: deploy-artifacts-libpkl-macOS-aarch64 path: libpkl*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-macOS-aarch64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -1045,6 +1110,11 @@ jobs: with: name: deploy-artifacts-libpkl-alpine-linux-amd64 path: libpkl*/build/distributions/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-alpine-linux-amd64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -1092,6 +1162,11 @@ jobs: with: name: deploy-artifacts-libpkl-windows-amd64 path: libpkl*/build/distributions/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-windows-amd64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d6acd9c7e..4f6cd4aef 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -242,6 +242,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-linux-amd64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-linux-amd64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -292,6 +297,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-linux-aarch64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-linux-aarch64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -341,6 +351,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-macOS-aarch64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-macOS-aarch64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -447,6 +462,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-alpine-linux-amd64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-alpine-linux-amd64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -492,6 +512,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-windows-amd64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-windows-amd64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -540,6 +565,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-linux-amd64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-linux-amd64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -590,6 +620,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-linux-aarch64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-linux-aarch64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -639,6 +674,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-macOS-aarch64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-macOS-aarch64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -745,6 +785,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-alpine-linux-amd64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-alpine-linux-amd64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -790,6 +835,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-windows-amd64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-windows-amd64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -838,6 +888,11 @@ jobs: with: name: deploy-artifacts-libpkl-linux-amd64 path: libpkl/build/native-libs/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-linux-amd64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -888,6 +943,11 @@ jobs: with: name: deploy-artifacts-libpkl-linux-aarch64 path: libpkl/build/native-libs/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-linux-aarch64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -937,6 +997,11 @@ jobs: with: name: deploy-artifacts-libpkl-macOS-aarch64 path: libpkl*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-macOS-aarch64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -1043,6 +1108,11 @@ jobs: with: name: deploy-artifacts-libpkl-alpine-linux-amd64 path: libpkl*/build/distributions/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-alpine-linux-amd64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -1090,6 +1160,11 @@ jobs: with: name: deploy-artifacts-libpkl-windows-amd64 path: libpkl*/build/distributions/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-windows-amd64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/prb.yml b/.github/workflows/prb.yml index c3b4c4fad..2050d5b4f 100644 --- a/.github/workflows/prb.yml +++ b/.github/workflows/prb.yml @@ -128,6 +128,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-linux-amd64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-linux-amd64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -180,6 +185,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-linux-aarch64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-linux-aarch64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -230,6 +240,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-macOS-aarch64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-macOS-aarch64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -338,6 +353,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-alpine-linux-amd64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-alpine-linux-amd64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -385,6 +405,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-windows-amd64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-windows-amd64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -435,6 +460,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-linux-amd64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-linux-amd64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -487,6 +517,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-linux-aarch64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-linux-aarch64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -537,6 +572,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-macOS-aarch64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-macOS-aarch64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -645,6 +685,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-alpine-linux-amd64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-alpine-linux-amd64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -692,6 +737,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-windows-amd64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-windows-amd64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -742,6 +792,11 @@ jobs: with: name: deploy-artifacts-libpkl-linux-amd64 path: libpkl/build/native-libs/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-linux-amd64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -794,6 +849,11 @@ jobs: with: name: deploy-artifacts-libpkl-linux-aarch64 path: libpkl/build/native-libs/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-linux-aarch64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -844,6 +904,11 @@ jobs: with: name: deploy-artifacts-libpkl-macOS-aarch64 path: libpkl*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-macOS-aarch64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -952,6 +1017,11 @@ jobs: with: name: deploy-artifacts-libpkl-alpine-linux-amd64 path: libpkl*/build/distributions/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-alpine-linux-amd64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -1001,6 +1071,11 @@ jobs: with: name: deploy-artifacts-libpkl-windows-amd64 path: libpkl*/build/distributions/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-windows-amd64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/release-branch.yml b/.github/workflows/release-branch.yml index 37cd460e9..2b71d9018 100644 --- a/.github/workflows/release-branch.yml +++ b/.github/workflows/release-branch.yml @@ -242,6 +242,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-linux-amd64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-linux-amd64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -292,6 +297,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-linux-aarch64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-linux-aarch64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -341,6 +351,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-macOS-aarch64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-macOS-aarch64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -447,6 +462,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-alpine-linux-amd64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-alpine-linux-amd64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -492,6 +512,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-windows-amd64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-windows-amd64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -540,6 +565,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-linux-amd64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-linux-amd64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -590,6 +620,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-linux-aarch64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-linux-aarch64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -639,6 +674,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-macOS-aarch64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-macOS-aarch64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -745,6 +785,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-alpine-linux-amd64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-alpine-linux-amd64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -790,6 +835,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-windows-amd64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-windows-amd64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -838,6 +888,11 @@ jobs: with: name: deploy-artifacts-libpkl-linux-amd64 path: libpkl/build/native-libs/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-linux-amd64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -888,6 +943,11 @@ jobs: with: name: deploy-artifacts-libpkl-linux-aarch64 path: libpkl/build/native-libs/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-linux-aarch64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -937,6 +997,11 @@ jobs: with: name: deploy-artifacts-libpkl-macOS-aarch64 path: libpkl*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-macOS-aarch64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -1043,6 +1108,11 @@ jobs: with: name: deploy-artifacts-libpkl-alpine-linux-amd64 path: libpkl*/build/distributions/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-alpine-linux-amd64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -1090,6 +1160,11 @@ jobs: with: name: deploy-artifacts-libpkl-windows-amd64 path: libpkl*/build/distributions/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-windows-amd64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 50d158cb4..4d2a07093 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -244,6 +244,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-linux-amd64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-linux-amd64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -295,6 +300,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-linux-aarch64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-linux-aarch64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -345,6 +355,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-macOS-aarch64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-macOS-aarch64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -452,6 +467,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-alpine-linux-amd64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-alpine-linux-amd64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -498,6 +518,11 @@ jobs: with: name: deploy-artifacts-pkl-cli-windows-amd64 path: pkl-cli*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-cli-windows-amd64 + path: pkl-cli*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -547,6 +572,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-linux-amd64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-linux-amd64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -598,6 +628,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-linux-aarch64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-linux-aarch64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -648,6 +683,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-macOS-aarch64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-macOS-aarch64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -755,6 +795,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-alpine-linux-amd64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-alpine-linux-amd64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -801,6 +846,11 @@ jobs: with: name: deploy-artifacts-pkl-doc-windows-amd64 path: pkl-doc*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-pkl-doc-windows-amd64 + path: pkl-doc*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -850,6 +900,11 @@ jobs: with: name: deploy-artifacts-libpkl-linux-amd64 path: libpkl/build/native-libs/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-linux-amd64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -901,6 +956,11 @@ jobs: with: name: deploy-artifacts-libpkl-linux-aarch64 path: libpkl/build/native-libs/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-linux-aarch64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -951,6 +1011,11 @@ jobs: with: name: deploy-artifacts-libpkl-macOS-aarch64 path: libpkl*/build/executable/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-macOS-aarch64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -1058,6 +1123,11 @@ jobs: with: name: deploy-artifacts-libpkl-alpine-linux-amd64 path: libpkl*/build/distributions/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-alpine-linux-amd64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 @@ -1106,6 +1176,11 @@ jobs: with: name: deploy-artifacts-libpkl-windows-amd64 path: libpkl*/build/distributions/**/* + - name: Upload compiled classes list + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: compiled-classes-libpkl-windows-amd64 + path: libpkl*/build/compiled-classes/**/* - name: Upload Test Result XML if: '!cancelled()' uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 diff --git a/build-logic/src/main/kotlin/NativeImageBuild.kt b/build-logic/src/main/kotlin/NativeImageBuild.kt index ff1b534c0..6821c4a9a 100644 --- a/build-logic/src/main/kotlin/NativeImageBuild.kt +++ b/build-logic/src/main/kotlin/NativeImageBuild.kt @@ -77,6 +77,8 @@ abstract class NativeImageBuild : DefaultTask() { @get:InputFile @get:Optional abstract val nativeCompilerPath: RegularFileProperty + @get:Internal abstract val compiledClassesFile: RegularFileProperty + @get:Internal abstract val outputDir: DirectoryProperty @get:Inject protected abstract val execOperations: ExecOperations @@ -194,6 +196,12 @@ abstract class NativeImageBuild : DefaultTask() { .asFile .toPath() .also { it.createDirectories() } + val reportsDir = workingDir.resolve("reports") + // reports are timestamped and never cleaned up by native-image; make sure we read a fresh one + reportsDir + .toFile() + .listFiles { f -> f.name.startsWith(COMPILATION_REPORT_PREFIX) } + ?.forEach { it.delete() } val execResult = execOperations.exec { val exclusions = listOf(buildInfo.libs.findLibrary("graalSdk").get()).map { it.get().module.name } @@ -205,6 +213,8 @@ abstract class NativeImageBuild : DefaultTask() { add("--color=always") // must be emitted before any experimental options are used add("-H:+UnlockExperimentalVMOptions") + // emit `reports/universe_compilation_*.txt`, listing all compiled methods + add("-H:+PrintUniverse") // currently gives a deprecation warning, but we've been told // that the "initialize everything at build time" *CLI* option is likely here to stay add("--initialize-at-build-time=") @@ -293,6 +303,36 @@ abstract class NativeImageBuild : DefaultTask() { targetDir.deleteRecursively() sourceDir.copyRecursively(targetDir, overwrite = true) } + writeCompiledClasses(reportsDir.toFile()) } } + + private fun writeCompiledClasses(reportsDir: java.io.File) { + val report = + reportsDir + .listFiles { f -> f.name.startsWith(COMPILATION_REPORT_PREFIX) } + ?.maxByOrNull { it.lastModified() } + ?: throw GradleException("Expected to find $COMPILATION_REPORT_PREFIX*.txt in $reportsDir") + // Method lines look like `336 2232 apple.security.AppleProvider$Service.newInstance(...): ...` + // (offset, size, qualified method name, signature). + val methodLine = Regex("""^\s*\d+\s+\d+\s+([^\s(]+)\(""") + val classNames = sortedSetOf() + report.useLines { lines -> + for (line in lines) { + val method = methodLine.find(line)?.groupValues?.get(1) ?: continue + // Nested, hidden, and lambda classes all live in their top-level class' source file. + classNames.add(method.substringBeforeLast('.').substringBefore('$').substringBefore('/')) + } + } + if (classNames.isEmpty()) { + throw GradleException("Found no compiled methods in $report") + } + val file = compiledClassesFile.get().asFile + file.parentFile.mkdirs() + file.writeText(classNames.joinToString("\n", postfix = "\n")) + } + + private companion object { + const val COMPILATION_REPORT_PREFIX = "universe_compilation_" + } } diff --git a/build-logic/src/main/kotlin/pklGraalVm.gradle.kts b/build-logic/src/main/kotlin/pklGraalVm.gradle.kts index 6f1d629a0..aa83ec636 100644 --- a/build-logic/src/main/kotlin/pklGraalVm.gradle.kts +++ b/build-logic/src/main/kotlin/pklGraalVm.gradle.kts @@ -76,3 +76,11 @@ val installGraalVmAmd64 = dependsOn(verifyGraalVmAmd64) graalVm = buildInfo.graalVmAmd64 } + +// Picked up by GitHub Actions and uploaded as a build artifact +tasks.withType().configureEach { + compiledClassesFile = + layout.buildDirectory.file( + "compiled-classes/${project.name}-${project.version}-${buildInfo.targetMachine.targetName}.txt" + ) +} diff --git a/libpkl/libpkl.gradle.kts b/libpkl/libpkl.gradle.kts index 8d9618a30..f2e773e69 100644 --- a/libpkl/libpkl.gradle.kts +++ b/libpkl/libpkl.gradle.kts @@ -253,7 +253,7 @@ val buildSharedLibrary = if (buildInfo.os.isMacOS) { frameworks.addAll("Foundation", "CoreServices") - linkerFlags.addAll("-current_version", project.version.toString()) + linkerFlags.addAll("-current_version", project.version.toString().substringBefore("-")) linkerFlags.addAll("-compatibility_version", "0.1.0") // prevent JNI symbols from being exported and clobbering the symbol table val exportedSymbolsFile = file("src/main/c/pkl.exported_symbols")