mirror of
https://github.com/apple/pkl.git
synced 2026-06-25 23:06:20 +02:00
Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4e3f9da0c2 | |||
| 8173c4aaad | |||
| 2513ddb13d | |||
| a945f00c63 | |||
| ab23ab2dc1 | |||
| c480cc8118 | |||
| 36af9382c5 | |||
| a3075d0d9f | |||
| 18af7571e8 | |||
| 5b6ee977c9 | |||
| dca6da83b2 | |||
| 7711a1612c | |||
| 4f3f28aa76 | |||
| 99ba9be765 | |||
| bffc50ea10 | |||
| c63b8d3965 | |||
| 5516cdb210 | |||
| a8b6081a90 | |||
| cab7bd1b01 | |||
| 1b29d59b21 | |||
| e5577ed8f0 | |||
| c965281d46 | |||
| 718898d083 | |||
| d33736625e | |||
| 53dcac56d0 | |||
| 687ce0f97b | |||
| 8c82051a4b | |||
| e99d145299 |
@@ -1,4 +1,2 @@
|
|||||||
# Auto-format Kotlin code
|
# Auto-format Kotlin code
|
||||||
816cd483c8adf4c04e14236c173a1dc6bd2579ea
|
816cd483c8adf4c04e14236c173a1dc6bd2579ea
|
||||||
# Format Kotlin code again
|
|
||||||
2b3603b544bae2ad87374b65afaf8ac018216261
|
|
||||||
|
|||||||
+2
-2
@@ -2,9 +2,9 @@ amends "pkl:Project"
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
["pkl.impl.ghactions"] {
|
["pkl.impl.ghactions"] {
|
||||||
uri = "package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1.8.1"
|
uri = "package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@0.7.1"
|
||||||
}
|
}
|
||||||
["gha"] {
|
["gha"] {
|
||||||
uri = "package://pkg.pkl-lang.org/pkl-pantry/com.github.actions@1.4.0"
|
uri = "package://pkg.pkl-lang.org/github.com/stefma/pkl-gha/com.github.action@0.0.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,39 +1,18 @@
|
|||||||
{
|
{
|
||||||
"schemaVersion": 1,
|
"schemaVersion": 1,
|
||||||
"resolvedDependencies": {
|
"resolvedDependencies": {
|
||||||
"package://pkg.pkl-lang.org/pkl-pantry/com.github.actions@1": {
|
"package://pkg.pkl-lang.org/github.com/stefma/pkl-gha/com.github.action@0": {
|
||||||
"type": "remote",
|
"type": "remote",
|
||||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/com.github.actions@1.7.0",
|
"uri": "projectpackage://pkg.pkl-lang.org/github.com/stefma/pkl-gha/com.github.action@0.0.6",
|
||||||
"checksums": {
|
"checksums": {
|
||||||
"sha256": "e3461c3f8d00a6a657f9fa4f391afdab4a53a2e528862a4d8624e545cd3cb2b1"
|
"sha256": "84365239996740252a91abab084d443aa3a3438f375b667ac16cb765461c1555"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1": {
|
"package://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@0": {
|
||||||
"type": "remote",
|
"type": "remote",
|
||||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@1.8.1",
|
"uri": "projectpackage://pkg.pkl-lang.org/pkl-project-commons/pkl.impl.ghactions@0.7.1",
|
||||||
"checksums": {
|
"checksums": {
|
||||||
"sha256": "476cd931de6868b3f5e088ac741261d7beb9f4de3305564675510fd74ffb83f3"
|
"sha256": "f8efc4b174855a2fafdab8ed792de4b0cb89b0516d688c8540eea13af20e0f80"
|
||||||
}
|
|
||||||
},
|
|
||||||
"package://pkg.pkl-lang.org/pkl-pantry/pkl.experimental.deepToTyped@1": {
|
|
||||||
"type": "remote",
|
|
||||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/pkl.experimental.deepToTyped@1.2.0",
|
|
||||||
"checksums": {
|
|
||||||
"sha256": "84c7feb391f4ac273a99dc89b8fd51dbcd21dbda4ce640f6908527f83acdd4d6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"package://pkg.pkl-lang.org/pkl-pantry/pkl.github.dependabotManagedActions@1": {
|
|
||||||
"type": "remote",
|
|
||||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/pkl.github.dependabotManagedActions@1.1.6",
|
|
||||||
"checksums": {
|
|
||||||
"sha256": "85ad51d257bad4729f0b9edecade48fcad6f55bacd0fa36106782475e912919a"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"package://pkg.pkl-lang.org/pkl-pantry/com.github.dependabot@1": {
|
|
||||||
"type": "remote",
|
|
||||||
"uri": "projectpackage://pkg.pkl-lang.org/pkl-pantry/com.github.dependabot@1.0.4",
|
|
||||||
"checksums": {
|
|
||||||
"sha256": "c7391119f946d7761d0ca0cc358ed8fe2bdfc691411087ccac89637bd96fec4a"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
version: 2
|
|
||||||
updates:
|
|
||||||
- package-ecosystem: gradle
|
|
||||||
cooldown:
|
|
||||||
default-days: 7
|
|
||||||
directory: /
|
|
||||||
schedule:
|
|
||||||
interval: weekly
|
|
||||||
- package-ecosystem: github-actions
|
|
||||||
cooldown:
|
|
||||||
default-days: 7
|
|
||||||
directory: /
|
|
||||||
ignore:
|
|
||||||
- dependency-name: '*'
|
|
||||||
update-types:
|
|
||||||
- version-update:semver-major
|
|
||||||
schedule:
|
|
||||||
interval: weekly
|
|
||||||
+22
-54
@@ -21,10 +21,8 @@ testReports {
|
|||||||
}
|
}
|
||||||
excludeJobs {
|
excludeJobs {
|
||||||
"bench"
|
"bench"
|
||||||
|
"deploy-release"
|
||||||
"github-release"
|
"github-release"
|
||||||
"dependency-submission"
|
|
||||||
"dependency-review"
|
|
||||||
Regex("deploy-.*")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,15 +40,11 @@ local gradleCheckWindows = (baseGradleCheck) {
|
|||||||
os = "windows"
|
os = "windows"
|
||||||
}
|
}
|
||||||
|
|
||||||
local typealias PklJobs = Mapping<String, PklJob | *Workflow.Job>
|
local typealias PklJobs = Mapping<String, PklJob>
|
||||||
|
|
||||||
local toWorkflowJobs: (PklJobs) -> Workflow.Jobs = (it) -> new Workflow.Jobs {
|
local toWorkflowJobs: (PklJobs) -> Workflow.Jobs = (it) -> new Workflow.Jobs {
|
||||||
for (k, v in it) {
|
for (k, v in it) {
|
||||||
when (v is PklJob) {
|
[k] = v.job
|
||||||
[k] = v.job
|
|
||||||
} else {
|
|
||||||
[k] = v
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -179,28 +173,6 @@ main {
|
|||||||
) {
|
) {
|
||||||
needs = buildAndTestJobs.keys.toListing()
|
needs = buildAndTestJobs.keys.toListing()
|
||||||
}
|
}
|
||||||
["dependency-submission"] {
|
|
||||||
`runs-on` = "ubuntu-latest"
|
|
||||||
permissions {
|
|
||||||
contents = "write"
|
|
||||||
}
|
|
||||||
steps {
|
|
||||||
module.catalog.`actions/checkout@v6`
|
|
||||||
(module.catalog.`actions/setup-java@v5`) {
|
|
||||||
with {
|
|
||||||
`java-version` = "25"
|
|
||||||
distribution = "temurin"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
(module.catalog.`gradle/actions/dependency-submission@v6`) {
|
|
||||||
with {
|
|
||||||
// language=regexp
|
|
||||||
`dependency-graph-include-configurations` =
|
|
||||||
".*[rR]untimeClasspath|.*[cC]ompileClasspath"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} |> toWorkflowJobs
|
} |> toWorkflowJobs
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -225,30 +197,26 @@ release {
|
|||||||
} |> toWorkflowJobs
|
} |> toWorkflowJobs
|
||||||
}
|
}
|
||||||
|
|
||||||
dependabot {
|
output {
|
||||||
updates {
|
files {
|
||||||
new {
|
[[true]] {
|
||||||
`package-ecosystem` = "gradle"
|
renderer {
|
||||||
schedule {
|
converters {
|
||||||
interval = "weekly"
|
["jobs"] = (it: Mapping<String, Workflow.Job>) ->
|
||||||
|
it
|
||||||
|
.toMap()
|
||||||
|
.mapValues((name, job) ->
|
||||||
|
if (name.contains("linux") && !name.contains("alpine"))
|
||||||
|
job
|
||||||
|
.toMap()
|
||||||
|
.put("container", new Dynamic {
|
||||||
|
image = "redhat/ubi8:8.10"
|
||||||
|
})
|
||||||
|
else
|
||||||
|
job
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
cooldown {
|
|
||||||
`default-days` = 7
|
|
||||||
}
|
|
||||||
directory = "/"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
codeql {
|
|
||||||
scans {
|
|
||||||
new {
|
|
||||||
language = "java-kotlin"
|
|
||||||
buildMode = "autobuild"
|
|
||||||
}
|
|
||||||
new {
|
|
||||||
language = "javascript-typescript"
|
|
||||||
buildMode = "none"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
extends "GradleJob.pkl"
|
extends "GradleJob.pkl"
|
||||||
|
|
||||||
import "@gha/catalog.pkl"
|
import "@gha/actions/Artifact.pkl"
|
||||||
|
import "@gha/actions/Common.pkl"
|
||||||
|
|
||||||
// Keep this in sync with projects that build java executables
|
// Keep this in sync with projects that build java executables
|
||||||
local projects: List<String> = List("pkl-doc", "pkl-cli", "pkl-codegen-java", "pkl-codegen-kotlin")
|
local projects: List<String> = List("pkl-doc", "pkl-cli", "pkl-codegen-java", "pkl-codegen-kotlin")
|
||||||
@@ -16,13 +17,13 @@ local command =
|
|||||||
}.join(" ")
|
}.join(" ")
|
||||||
|
|
||||||
steps {
|
steps {
|
||||||
catalog.`actions/checkout@v6`
|
new Common.Checkout {}
|
||||||
new {
|
new {
|
||||||
name = "gradle build java executables"
|
name = "gradle build java executables"
|
||||||
shell = "bash"
|
shell = "bash"
|
||||||
run = command
|
run = command
|
||||||
}
|
}
|
||||||
(catalog.`actions/upload-artifact@v5`) {
|
new Artifact.Upload {
|
||||||
name = "Upload executable artifacts"
|
name = "Upload executable artifacts"
|
||||||
with {
|
with {
|
||||||
name = "executable-java"
|
name = "executable-java"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
extends "GradleJob.pkl"
|
extends "GradleJob.pkl"
|
||||||
|
|
||||||
import "@gha/catalog.pkl"
|
import "@gha/actions/Artifact.pkl"
|
||||||
import "@gha/context.pkl"
|
import "@gha/Context.pkl"
|
||||||
|
|
||||||
/// Whether to link to musl. Otherwise, links to glibc.
|
/// Whether to link to musl. Otherwise, links to glibc.
|
||||||
musl: Boolean(implies(module.os == "linux")) = false
|
musl: Boolean(implies(module.os == "linux")) = false
|
||||||
@@ -12,7 +12,7 @@ project: String
|
|||||||
extraGradleArgs {
|
extraGradleArgs {
|
||||||
when (os == "macOS" && arch == "amd64") {
|
when (os == "macOS" && arch == "amd64") {
|
||||||
"-Dpkl.targetArch=\(module.arch)"
|
"-Dpkl.targetArch=\(module.arch)"
|
||||||
#""-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh""#
|
"-Dpkl.native--native-compiler-path=\(Context.github.workspace)/.github/scripts/cc_macos_amd64.sh"
|
||||||
}
|
}
|
||||||
when (musl) {
|
when (musl) {
|
||||||
"-Dpkl.musl=true"
|
"-Dpkl.musl=true"
|
||||||
@@ -23,8 +23,7 @@ preSteps {
|
|||||||
when (os == "linux" && !musl) {
|
when (os == "linux" && !musl) {
|
||||||
new {
|
new {
|
||||||
name = "Install deps"
|
name = "Install deps"
|
||||||
run =
|
run = "dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en"
|
||||||
"dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -41,7 +40,7 @@ steps {
|
|||||||
new {
|
new {
|
||||||
name = "Fix git ownership"
|
name = "Fix git ownership"
|
||||||
// language=bash
|
// language=bash
|
||||||
run = #"git status || git config --system --add safe.directory "$GITHUB_WORKSPACE""#
|
run = "git status || git config --system --add safe.directory $GITHUB_WORKSPACE"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
new {
|
new {
|
||||||
@@ -49,7 +48,7 @@ steps {
|
|||||||
shell = "bash"
|
shell = "bash"
|
||||||
run = "./gradlew \(module.gradleArgs) \(project):buildNative"
|
run = "./gradlew \(module.gradleArgs) \(project):buildNative"
|
||||||
}
|
}
|
||||||
(catalog.`actions/upload-artifact@v5`) {
|
new Artifact.Upload {
|
||||||
name = "Upload executable artifacts"
|
name = "Upload executable artifacts"
|
||||||
with {
|
with {
|
||||||
name =
|
name =
|
||||||
@@ -63,11 +62,3 @@ steps {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fixed job {
|
|
||||||
when (os == "linux" && !musl) {
|
|
||||||
container {
|
|
||||||
image = "redhat/ubi8:8.10"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
extends "GradleJob.pkl"
|
extends "GradleJob.pkl"
|
||||||
|
|
||||||
import "@gha/catalog.pkl"
|
import "@gha/actions/Artifact.pkl"
|
||||||
|
import "@gha/actions/Common.pkl"
|
||||||
import "@gha/Workflow.pkl"
|
import "@gha/Workflow.pkl"
|
||||||
import "@pkl.impl.ghactions/helpers.pkl"
|
import "@pkl.impl.ghactions/helpers.pkl"
|
||||||
|
|
||||||
@@ -13,8 +14,8 @@ arch = "amd64"
|
|||||||
os = "linux"
|
os = "linux"
|
||||||
|
|
||||||
steps {
|
steps {
|
||||||
catalog.`actions/checkout@v6`
|
new Common.Checkout {}
|
||||||
(catalog.`actions/download-artifact@v6`) {
|
new Artifact.Download {
|
||||||
with {
|
with {
|
||||||
pattern = "executable-**"
|
pattern = "executable-**"
|
||||||
`merge-multiple` = true
|
`merge-multiple` = true
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ module GithubRelease
|
|||||||
|
|
||||||
extends "PklJob.pkl"
|
extends "PklJob.pkl"
|
||||||
|
|
||||||
import "@gha/catalog.pkl"
|
import "@gha/actions/Artifact.pkl"
|
||||||
import "@gha/context.pkl"
|
import "@gha/Context.pkl"
|
||||||
|
|
||||||
fixed job {
|
fixed job {
|
||||||
`runs-on` = "ubuntu-latest"
|
`runs-on` = "ubuntu-latest"
|
||||||
@@ -12,7 +12,7 @@ fixed job {
|
|||||||
}
|
}
|
||||||
needs = "deploy-release"
|
needs = "deploy-release"
|
||||||
steps {
|
steps {
|
||||||
(catalog.`actions/download-artifact@v6`) {
|
new Artifact.Download {
|
||||||
with {
|
with {
|
||||||
pattern = "executable-**"
|
pattern = "executable-**"
|
||||||
`merge-multiple` = true
|
`merge-multiple` = true
|
||||||
@@ -21,10 +21,10 @@ fixed job {
|
|||||||
new {
|
new {
|
||||||
name = "Publish release on GitHub"
|
name = "Publish release on GitHub"
|
||||||
env {
|
env {
|
||||||
["GH_TOKEN"] = context.github.token
|
["GH_TOKEN"] = Context.github.token
|
||||||
["TAG_NAME"] = context.github.refName
|
["TAG_NAME"] = Context.github.refName
|
||||||
["GIT_SHA"] = context.github.sha
|
["GIT_SHA"] = Context.github.sha
|
||||||
["GH_REPO"] = context.github.repository
|
["GH_REPO"] = Context.github.repository
|
||||||
}
|
}
|
||||||
// language=bash
|
// language=bash
|
||||||
run =
|
run =
|
||||||
|
|||||||
+10
-29
@@ -2,9 +2,9 @@ abstract module GradleJob
|
|||||||
|
|
||||||
extends "PklJob.pkl"
|
extends "PklJob.pkl"
|
||||||
|
|
||||||
|
import "@gha/actions/Common.pkl"
|
||||||
|
import "@gha/actions/Setup.pkl"
|
||||||
import "@gha/Workflow.pkl"
|
import "@gha/Workflow.pkl"
|
||||||
import "@gha/context.pkl"
|
|
||||||
import "@pkl.impl.ghactions/catalog.pkl"
|
|
||||||
|
|
||||||
/// Whether this is a release build or not.
|
/// Whether this is a release build or not.
|
||||||
isRelease: Boolean = false
|
isRelease: Boolean = false
|
||||||
@@ -21,16 +21,17 @@ nightlyMacOS: Boolean(implies(os == "macOS")) = false
|
|||||||
|
|
||||||
extraGradleArgs: Listing<String>
|
extraGradleArgs: Listing<String>
|
||||||
|
|
||||||
steps: Listing<Workflow.Step>
|
steps: Listing<*Workflow.Step | Workflow.TypedStep>
|
||||||
|
|
||||||
preSteps: Listing<Workflow.Step>
|
preSteps: Listing<*Workflow.Step | Workflow.TypedStep>
|
||||||
|
|
||||||
/// The fetch depth to use when doing a git checkout.
|
/// The fetch depth to use when doing a git checkout.
|
||||||
fetchDepth: Int?
|
fetchDepth: Int?
|
||||||
|
|
||||||
fixed gradleArgs =
|
fixed gradleArgs =
|
||||||
new Listing {
|
new Listing {
|
||||||
"$DEBUG_ARGS"
|
"--info"
|
||||||
|
"--stacktrace"
|
||||||
"--no-daemon"
|
"--no-daemon"
|
||||||
"-DpklMultiJdkTesting=true"
|
"-DpklMultiJdkTesting=true"
|
||||||
when (isRelease) {
|
when (isRelease) {
|
||||||
@@ -72,17 +73,18 @@ fixed job {
|
|||||||
steps {
|
steps {
|
||||||
...preSteps
|
...preSteps
|
||||||
// full checkout (needed for spotless)
|
// full checkout (needed for spotless)
|
||||||
(catalog.`actions/checkout@v6`) {
|
new Common.Checkout {
|
||||||
when (fetchDepth != null) {
|
when (fetchDepth != null) {
|
||||||
with {
|
with {
|
||||||
`fetch-depth` = fetchDepth
|
`fetch-depth` = fetchDepth
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
(catalog.`actions/setup-java@v5`) {
|
new Setup.Java {
|
||||||
with {
|
with {
|
||||||
`java-version` = "25"
|
`java-version` = "21"
|
||||||
distribution = "temurin"
|
distribution = "temurin"
|
||||||
|
cache = "gradle"
|
||||||
architecture =
|
architecture =
|
||||||
if (arch == "amd64")
|
if (arch == "amd64")
|
||||||
"x64"
|
"x64"
|
||||||
@@ -90,27 +92,6 @@ fixed job {
|
|||||||
"aarch64"
|
"aarch64"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
(catalog.`gradle/actions/setup-gradle@v5`) {
|
|
||||||
when (isRelease) {
|
|
||||||
with {
|
|
||||||
`cache-disabled` = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
new {
|
|
||||||
name = "Set DEBUG_ARGS env var"
|
|
||||||
env {
|
|
||||||
["RUNNER_DEBUG"] = context.runner.debug
|
|
||||||
}
|
|
||||||
shell = "bash"
|
|
||||||
// language=bash
|
|
||||||
run =
|
|
||||||
"""
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
"""
|
|
||||||
}
|
|
||||||
...module.steps
|
...module.steps
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
-40
@@ -1,40 +0,0 @@
|
|||||||
#file: noinspection MandatoryParamsAbsent,UndefinedAction
|
|
||||||
# This is a fake workflow that never runs.
|
|
||||||
# It's used to pin actions to specific git SHAs when generating actual workflows.
|
|
||||||
# It also gets updated by dependabot (see .github/dependabot.yml).
|
|
||||||
# Generated from Workflow.pkl. DO NOT EDIT.
|
|
||||||
name: __lockfile__
|
|
||||||
'on':
|
|
||||||
push:
|
|
||||||
branches-ignore:
|
|
||||||
- '**'
|
|
||||||
tags-ignore:
|
|
||||||
- '**'
|
|
||||||
permissions: {}
|
|
||||||
jobs:
|
|
||||||
locks:
|
|
||||||
if: 'false'
|
|
||||||
runs-on: nothing
|
|
||||||
steps:
|
|
||||||
- name: EnricoMi/publish-unit-test-result-action@v2
|
|
||||||
uses: EnricoMi/publish-unit-test-result-action@c950f6fb443cb5af20a377fd0dfaa78838901040 # v2
|
|
||||||
- name: actions/checkout@v6
|
|
||||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
|
||||||
- name: actions/create-github-app-token@v2
|
|
||||||
uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2
|
|
||||||
- name: actions/download-artifact@v6
|
|
||||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
|
|
||||||
- name: actions/setup-java@v5
|
|
||||||
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
- name: actions/upload-artifact@v5
|
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
|
||||||
- name: dawidd6/action-download-artifact@v11
|
|
||||||
uses: dawidd6/action-download-artifact@ac66b43f0e6a346234dd65d4d0c8fbb31cb316e5 # v11
|
|
||||||
- name: github/codeql-action/analyze@v4
|
|
||||||
uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4
|
|
||||||
- name: github/codeql-action/init@v4
|
|
||||||
uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4
|
|
||||||
- name: gradle/actions/dependency-submission@v6
|
|
||||||
uses: gradle/actions/dependency-submission@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6
|
|
||||||
- name: gradle/actions/setup-gradle@v5
|
|
||||||
uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
|
||||||
Generated
+142
-326
@@ -1,11 +1,12 @@
|
|||||||
# Generated from Workflow.pkl. DO NOT EDIT.
|
# Do not modify!
|
||||||
|
# This file was generated from a template using https://github.com/StefMa/pkl-gha
|
||||||
|
|
||||||
name: Build
|
name: Build
|
||||||
'on':
|
'on':
|
||||||
push:
|
push:
|
||||||
branches-ignore:
|
branches-ignore:
|
||||||
- main
|
- main
|
||||||
- release/*
|
- release/*
|
||||||
- dependabot/**
|
|
||||||
tags-ignore:
|
tags-ignore:
|
||||||
- '**'
|
- '**'
|
||||||
concurrency:
|
concurrency:
|
||||||
@@ -19,37 +20,27 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: check
|
- name: check
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-gradle-check
|
name: test-results-xml-gradle-check
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-gradle-check
|
name: test-results-html-gradle-check
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -60,37 +51,27 @@ jobs:
|
|||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
JAVA_HOME: /jdk
|
JAVA_HOME: /jdk
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: check
|
- name: check
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-gradle-check-windows
|
name: test-results-xml-gradle-check-windows
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-gradle-check-windows
|
name: test-results-html-gradle-check-windows
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -100,63 +81,42 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: bench:jmh
|
- name: bench:jmh
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true bench:jmh
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true bench:jmh
|
||||||
gradle-compatibility:
|
gradle-compatibility:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
- name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-gradle-compatibility
|
name: test-results-xml-gradle-compatibility
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-gradle-compatibility
|
name: test-results-html-gradle-compatibility
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -166,45 +126,33 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
- uses: actions/checkout@v5
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: gradle build java executables
|
- name: gradle build java executables
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:build pkl-cli:build pkl-codegen-java:build pkl-codegen-kotlin:build
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:build pkl-cli:build pkl-codegen-java:build pkl-codegen-kotlin:build
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-java
|
name: executable-java
|
||||||
path: '*/build/executable/**/*'
|
path: '*/build/executable/**/*'
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-java-executables-snapshot
|
name: test-results-xml-java-executables-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-java-executables-snapshot
|
name: test-results-html-java-executables-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -217,41 +165,30 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-macOS-amd64
|
name: executable-pkl-cli-macOS-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-macOS-amd64-snapshot
|
name: test-results-xml-pkl-cli-macOS-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-macOS-amd64-snapshot
|
name: test-results-html-pkl-cli-macOS-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -263,43 +200,32 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-linux-amd64
|
name: executable-pkl-cli-linux-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-linux-amd64-snapshot
|
name: test-results-xml-pkl-cli-linux-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-linux-amd64-snapshot
|
name: test-results-html-pkl-cli-linux-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -314,41 +240,30 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-macOS-aarch64
|
name: executable-pkl-cli-macOS-aarch64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-macOS-aarch64-snapshot
|
name: test-results-xml-pkl-cli-macOS-aarch64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-macOS-aarch64-snapshot
|
name: test-results-html-pkl-cli-macOS-aarch64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -360,43 +275,32 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-linux-aarch64
|
name: executable-pkl-cli-linux-aarch64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-linux-aarch64-snapshot
|
name: test-results-xml-pkl-cli-linux-aarch64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-linux-aarch64-snapshot
|
name: test-results-html-pkl-cli-linux-aarch64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -408,24 +312,13 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Install musl and zlib
|
- name: Install musl and zlib
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
@@ -501,21 +394,21 @@ jobs:
|
|||||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-alpine-linux-amd64
|
name: executable-pkl-cli-alpine-linux-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-alpine-linux-amd64-snapshot
|
name: test-results-xml-pkl-cli-alpine-linux-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-alpine-linux-amd64-snapshot
|
name: test-results-html-pkl-cli-alpine-linux-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -526,41 +419,30 @@ jobs:
|
|||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
JAVA_HOME: /jdk
|
JAVA_HOME: /jdk
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-windows-amd64
|
name: executable-pkl-cli-windows-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-windows-amd64-snapshot
|
name: test-results-xml-pkl-cli-windows-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-windows-amd64-snapshot
|
name: test-results-html-pkl-cli-windows-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -573,41 +455,30 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-macOS-amd64
|
name: executable-pkl-doc-macOS-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-macOS-amd64-snapshot
|
name: test-results-xml-pkl-doc-macOS-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-macOS-amd64-snapshot
|
name: test-results-html-pkl-doc-macOS-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -619,43 +490,32 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-linux-amd64
|
name: executable-pkl-doc-linux-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-linux-amd64-snapshot
|
name: test-results-xml-pkl-doc-linux-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-linux-amd64-snapshot
|
name: test-results-html-pkl-doc-linux-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -670,41 +530,30 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-macOS-aarch64
|
name: executable-pkl-doc-macOS-aarch64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-macOS-aarch64-snapshot
|
name: test-results-xml-pkl-doc-macOS-aarch64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-macOS-aarch64-snapshot
|
name: test-results-html-pkl-doc-macOS-aarch64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -716,43 +565,32 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-linux-aarch64
|
name: executable-pkl-doc-linux-aarch64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-linux-aarch64-snapshot
|
name: test-results-xml-pkl-doc-linux-aarch64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-linux-aarch64-snapshot
|
name: test-results-html-pkl-doc-linux-aarch64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -764,24 +602,13 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Install musl and zlib
|
- name: Install musl and zlib
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
@@ -857,21 +684,21 @@ jobs:
|
|||||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-alpine-linux-amd64
|
name: executable-pkl-doc-alpine-linux-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-alpine-linux-amd64-snapshot
|
name: test-results-xml-pkl-doc-alpine-linux-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-alpine-linux-amd64-snapshot
|
name: test-results-html-pkl-doc-alpine-linux-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -882,47 +709,36 @@ jobs:
|
|||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
JAVA_HOME: /jdk
|
JAVA_HOME: /jdk
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-windows-amd64
|
name: executable-pkl-doc-windows-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-windows-amd64-snapshot
|
name: test-results-xml-pkl-doc-windows-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-windows-amd64-snapshot
|
name: test-results-html-pkl-doc-windows-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
publish-test-results:
|
publish-test-results:
|
||||||
if: '!cancelled()'
|
if: '!failure() && !cancelled()'
|
||||||
needs:
|
needs:
|
||||||
- gradle-check
|
- gradle-check
|
||||||
- gradle-check-windows
|
- gradle-check-windows
|
||||||
@@ -944,18 +760,18 @@ jobs:
|
|||||||
checks: write
|
checks: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
|
- uses: actions/download-artifact@v6
|
||||||
with:
|
with:
|
||||||
pattern: test-results-xml-*
|
pattern: test-results-xml-*
|
||||||
- name: Publish test results
|
- name: Publish test results
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: EnricoMi/publish-unit-test-result-action@c950f6fb443cb5af20a377fd0dfaa78838901040 # v2
|
uses: EnricoMi/publish-unit-test-result-action@v2
|
||||||
with:
|
with:
|
||||||
comment_mode: 'off'
|
comment_mode: 'off'
|
||||||
files: test-results-xml-*/**/*.xml
|
files: test-results-xml-*/**/*.xml
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-publish-test-results
|
name: test-results-html-publish-test-results
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
|
|||||||
Generated
-62
@@ -1,62 +0,0 @@
|
|||||||
# Generated from Workflow.pkl. DO NOT EDIT.
|
|
||||||
'on':
|
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
schedule:
|
|
||||||
- cron: 29 17 * * 4
|
|
||||||
jobs:
|
|
||||||
analyze-actions:
|
|
||||||
name: Analyze (actions)
|
|
||||||
permissions:
|
|
||||||
security-events: write
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4
|
|
||||||
with:
|
|
||||||
languages: actions
|
|
||||||
build-mode: none
|
|
||||||
- name: Perform CodeQL Analysis
|
|
||||||
uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4
|
|
||||||
with:
|
|
||||||
category: /language:actions
|
|
||||||
analyze-java-kotlin:
|
|
||||||
name: Analyze (java-kotlin)
|
|
||||||
permissions:
|
|
||||||
security-events: write
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4
|
|
||||||
with:
|
|
||||||
languages: java-kotlin
|
|
||||||
build-mode: autobuild
|
|
||||||
- name: Perform CodeQL Analysis
|
|
||||||
uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4
|
|
||||||
with:
|
|
||||||
category: /language:java-kotlin
|
|
||||||
analyze-javascript-typescript:
|
|
||||||
name: Analyze (javascript-typescript)
|
|
||||||
permissions:
|
|
||||||
security-events: write
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4
|
|
||||||
with:
|
|
||||||
languages: javascript-typescript
|
|
||||||
build-mode: none
|
|
||||||
- name: Perform CodeQL Analysis
|
|
||||||
uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4
|
|
||||||
with:
|
|
||||||
category: /language:javascript-typescript
|
|
||||||
Generated
+163
-362
@@ -1,4 +1,6 @@
|
|||||||
# Generated from Workflow.pkl. DO NOT EDIT.
|
# Do not modify!
|
||||||
|
# This file was generated from a template using https://github.com/StefMa/pkl-gha
|
||||||
|
|
||||||
name: Build (main)
|
name: Build (main)
|
||||||
'on':
|
'on':
|
||||||
push:
|
push:
|
||||||
@@ -17,37 +19,27 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: check
|
- name: check
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-gradle-check
|
name: test-results-xml-gradle-check
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-gradle-check
|
name: test-results-html-gradle-check
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -58,37 +50,27 @@ jobs:
|
|||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
JAVA_HOME: /jdk
|
JAVA_HOME: /jdk
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: check
|
- name: check
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-gradle-check-windows
|
name: test-results-xml-gradle-check-windows
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-gradle-check-windows
|
name: test-results-html-gradle-check-windows
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -98,63 +80,42 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: bench:jmh
|
- name: bench:jmh
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true bench:jmh
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true bench:jmh
|
||||||
gradle-compatibility:
|
gradle-compatibility:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
- name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-gradle-compatibility
|
name: test-results-xml-gradle-compatibility
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-gradle-compatibility
|
name: test-results-html-gradle-compatibility
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -164,45 +125,33 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
- uses: actions/checkout@v5
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: gradle build java executables
|
- name: gradle build java executables
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:build pkl-cli:build pkl-codegen-java:build pkl-codegen-kotlin:build
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:build pkl-cli:build pkl-codegen-java:build pkl-codegen-kotlin:build
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-java
|
name: executable-java
|
||||||
path: '*/build/executable/**/*'
|
path: '*/build/executable/**/*'
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-java-executables-snapshot
|
name: test-results-xml-java-executables-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-java-executables-snapshot
|
name: test-results-html-java-executables-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -215,41 +164,30 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-macOS-amd64
|
name: executable-pkl-cli-macOS-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-macOS-amd64-snapshot
|
name: test-results-xml-pkl-cli-macOS-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-macOS-amd64-snapshot
|
name: test-results-html-pkl-cli-macOS-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -261,43 +199,32 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-linux-amd64
|
name: executable-pkl-cli-linux-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-linux-amd64-snapshot
|
name: test-results-xml-pkl-cli-linux-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-linux-amd64-snapshot
|
name: test-results-html-pkl-cli-linux-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -312,41 +239,30 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-macOS-aarch64
|
name: executable-pkl-cli-macOS-aarch64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-macOS-aarch64-snapshot
|
name: test-results-xml-pkl-cli-macOS-aarch64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-macOS-aarch64-snapshot
|
name: test-results-html-pkl-cli-macOS-aarch64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -358,43 +274,32 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-linux-aarch64
|
name: executable-pkl-cli-linux-aarch64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-linux-aarch64-snapshot
|
name: test-results-xml-pkl-cli-linux-aarch64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-linux-aarch64-snapshot
|
name: test-results-html-pkl-cli-linux-aarch64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -406,24 +311,13 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Install musl and zlib
|
- name: Install musl and zlib
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
@@ -499,21 +393,21 @@ jobs:
|
|||||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-alpine-linux-amd64
|
name: executable-pkl-cli-alpine-linux-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-alpine-linux-amd64-snapshot
|
name: test-results-xml-pkl-cli-alpine-linux-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-alpine-linux-amd64-snapshot
|
name: test-results-html-pkl-cli-alpine-linux-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -524,41 +418,30 @@ jobs:
|
|||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
JAVA_HOME: /jdk
|
JAVA_HOME: /jdk
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-windows-amd64
|
name: executable-pkl-cli-windows-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-windows-amd64-snapshot
|
name: test-results-xml-pkl-cli-windows-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-windows-amd64-snapshot
|
name: test-results-html-pkl-cli-windows-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -571,41 +454,30 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-macOS-amd64
|
name: executable-pkl-doc-macOS-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-macOS-amd64-snapshot
|
name: test-results-xml-pkl-doc-macOS-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-macOS-amd64-snapshot
|
name: test-results-html-pkl-doc-macOS-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -617,43 +489,32 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-linux-amd64
|
name: executable-pkl-doc-linux-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-linux-amd64-snapshot
|
name: test-results-xml-pkl-doc-linux-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-linux-amd64-snapshot
|
name: test-results-html-pkl-doc-linux-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -668,41 +529,30 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-macOS-aarch64
|
name: executable-pkl-doc-macOS-aarch64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-macOS-aarch64-snapshot
|
name: test-results-xml-pkl-doc-macOS-aarch64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-macOS-aarch64-snapshot
|
name: test-results-html-pkl-doc-macOS-aarch64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -714,43 +564,32 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-linux-aarch64
|
name: executable-pkl-doc-linux-aarch64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-linux-aarch64-snapshot
|
name: test-results-xml-pkl-doc-linux-aarch64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-linux-aarch64-snapshot
|
name: test-results-html-pkl-doc-linux-aarch64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -762,24 +601,13 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Install musl and zlib
|
- name: Install musl and zlib
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
@@ -855,21 +683,21 @@ jobs:
|
|||||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-alpine-linux-amd64
|
name: executable-pkl-doc-alpine-linux-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-alpine-linux-amd64-snapshot
|
name: test-results-xml-pkl-doc-alpine-linux-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-alpine-linux-amd64-snapshot
|
name: test-results-html-pkl-doc-alpine-linux-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -880,41 +708,30 @@ jobs:
|
|||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
JAVA_HOME: /jdk
|
JAVA_HOME: /jdk
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-windows-amd64
|
name: executable-pkl-doc-windows-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-windows-amd64-snapshot
|
name: test-results-xml-pkl-doc-windows-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-windows-amd64-snapshot
|
name: test-results-html-pkl-doc-windows-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -943,28 +760,15 @@ jobs:
|
|||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
environment: maven-release
|
environment: maven-release
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
- uses: actions/checkout@v5
|
||||||
- name: Set DEBUG_ARGS env var
|
- uses: actions/download-artifact@v6
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
|
|
||||||
with:
|
with:
|
||||||
pattern: executable-**
|
pattern: executable-**
|
||||||
merge-multiple: true
|
merge-multiple: true
|
||||||
@@ -974,24 +778,22 @@ jobs:
|
|||||||
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }}
|
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }}
|
||||||
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPEPASSWORD }}
|
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPEPASSWORD }}
|
||||||
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPEUSERNAME }}
|
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPEUSERNAME }}
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true --no-parallel publishToSonatype
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true --no-parallel publishToSonatype
|
||||||
dependency-submission:
|
- name: Upload Test Result XML
|
||||||
permissions:
|
if: '!cancelled()'
|
||||||
contents: write
|
uses: actions/upload-artifact@v5
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
name: test-results-xml-deploy-snapshot
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
path: '**/build/test-results/**/*.xml'
|
||||||
|
- name: Upload Test Result HTML
|
||||||
|
if: '!cancelled()'
|
||||||
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
name: test-results-html-deploy-snapshot
|
||||||
distribution: temurin
|
path: '**/build/reports/tests/**/*'
|
||||||
- uses: gradle/actions/dependency-submission@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6
|
if-no-files-found: ignore
|
||||||
with:
|
|
||||||
dependency-graph-include-configurations: .*[rR]untimeClasspath|.*[cC]ompileClasspath
|
|
||||||
publish-test-results:
|
publish-test-results:
|
||||||
if: '!cancelled()'
|
if: '!failure() && !cancelled()'
|
||||||
needs:
|
needs:
|
||||||
- gradle-check
|
- gradle-check
|
||||||
- gradle-check-windows
|
- gradle-check-windows
|
||||||
@@ -1009,22 +811,23 @@ jobs:
|
|||||||
- pkl-doc-linux-aarch64-snapshot
|
- pkl-doc-linux-aarch64-snapshot
|
||||||
- pkl-doc-alpine-linux-amd64-snapshot
|
- pkl-doc-alpine-linux-amd64-snapshot
|
||||||
- pkl-doc-windows-amd64-snapshot
|
- pkl-doc-windows-amd64-snapshot
|
||||||
|
- deploy-snapshot
|
||||||
permissions:
|
permissions:
|
||||||
checks: write
|
checks: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
|
- uses: actions/download-artifact@v6
|
||||||
with:
|
with:
|
||||||
pattern: test-results-xml-*
|
pattern: test-results-xml-*
|
||||||
- name: Publish test results
|
- name: Publish test results
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: EnricoMi/publish-unit-test-result-action@c950f6fb443cb5af20a377fd0dfaa78838901040 # v2
|
uses: EnricoMi/publish-unit-test-result-action@v2
|
||||||
with:
|
with:
|
||||||
comment_mode: 'off'
|
comment_mode: 'off'
|
||||||
files: test-results-xml-*/**/*.xml
|
files: test-results-xml-*/**/*.xml
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-publish-test-results
|
name: test-results-html-publish-test-results
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -1050,13 +853,12 @@ jobs:
|
|||||||
- pkl-doc-alpine-linux-amd64-snapshot
|
- pkl-doc-alpine-linux-amd64-snapshot
|
||||||
- pkl-doc-windows-amd64-snapshot
|
- pkl-doc-windows-amd64-snapshot
|
||||||
- deploy-snapshot
|
- deploy-snapshot
|
||||||
- dependency-submission
|
|
||||||
- publish-test-results
|
- publish-test-results
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Create app token
|
- name: Create app token
|
||||||
id: app-token
|
id: app-token
|
||||||
uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2
|
uses: actions/create-github-app-token@v2
|
||||||
with:
|
with:
|
||||||
app-id: ${{ secrets.PKL_CI_CLIENT_ID }}
|
app-id: ${{ secrets.PKL_CI_CLIENT_ID }}
|
||||||
private-key: ${{ secrets.PKL_CI }}
|
private-key: ${{ secrets.PKL_CI }}
|
||||||
@@ -1064,10 +866,9 @@ jobs:
|
|||||||
- name: Trigger pkl-lang.org build
|
- name: Trigger pkl-lang.org build
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ steps.app-token.outputs.token }}
|
GH_TOKEN: ${{ steps.app-token.outputs.token }}
|
||||||
SOURCE_RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
||||||
run: |-
|
run: |-
|
||||||
gh workflow run \
|
gh workflow run \
|
||||||
--repo apple/pkl-lang.org \
|
--repo apple/pkl-lang.org \
|
||||||
--ref main \
|
--ref main \
|
||||||
--field source_run="${SOURCE_RUN}" \
|
--field source_run="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
|
||||||
main.yml
|
main.yml
|
||||||
|
|||||||
Generated
+119
-298
@@ -1,4 +1,6 @@
|
|||||||
# Generated from Workflow.pkl. DO NOT EDIT.
|
# Do not modify!
|
||||||
|
# This file was generated from a template using https://github.com/StefMa/pkl-gha
|
||||||
|
|
||||||
name: Pull Request
|
name: Pull Request
|
||||||
'on':
|
'on':
|
||||||
pull_request: {}
|
pull_request: {}
|
||||||
@@ -13,38 +15,28 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: check
|
- name: check
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-gradle-check
|
name: test-results-xml-gradle-check
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-gradle-check
|
name: test-results-html-gradle-check
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -56,38 +48,28 @@ jobs:
|
|||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
JAVA_HOME: /jdk
|
JAVA_HOME: /jdk
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: check
|
- name: check
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-gradle-check-windows
|
name: test-results-xml-gradle-check-windows
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-gradle-check-windows
|
name: test-results-html-gradle-check-windows
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -100,42 +82,31 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-macOS-amd64
|
name: executable-pkl-cli-macOS-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-macOS-amd64-snapshot
|
name: test-results-xml-pkl-cli-macOS-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-macOS-amd64-snapshot
|
name: test-results-html-pkl-cli-macOS-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -148,44 +119,33 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-linux-amd64
|
name: executable-pkl-cli-linux-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-linux-amd64-snapshot
|
name: test-results-xml-pkl-cli-linux-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-linux-amd64-snapshot
|
name: test-results-html-pkl-cli-linux-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -200,42 +160,31 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-macOS-aarch64
|
name: executable-pkl-cli-macOS-aarch64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-macOS-aarch64-snapshot
|
name: test-results-xml-pkl-cli-macOS-aarch64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-macOS-aarch64-snapshot
|
name: test-results-html-pkl-cli-macOS-aarch64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -248,44 +197,33 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-linux-aarch64
|
name: executable-pkl-cli-linux-aarch64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-linux-aarch64-snapshot
|
name: test-results-xml-pkl-cli-linux-aarch64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-linux-aarch64-snapshot
|
name: test-results-html-pkl-cli-linux-aarch64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -298,24 +236,13 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Install musl and zlib
|
- name: Install musl and zlib
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
@@ -391,22 +318,22 @@ jobs:
|
|||||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-alpine-linux-amd64
|
name: executable-pkl-cli-alpine-linux-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-alpine-linux-amd64-snapshot
|
name: test-results-xml-pkl-cli-alpine-linux-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-alpine-linux-amd64-snapshot
|
name: test-results-html-pkl-cli-alpine-linux-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -418,42 +345,31 @@ jobs:
|
|||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
JAVA_HOME: /jdk
|
JAVA_HOME: /jdk
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-windows-amd64
|
name: executable-pkl-cli-windows-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-windows-amd64-snapshot
|
name: test-results-xml-pkl-cli-windows-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-windows-amd64-snapshot
|
name: test-results-html-pkl-cli-windows-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -466,42 +382,31 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-macOS-amd64
|
name: executable-pkl-doc-macOS-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-macOS-amd64-snapshot
|
name: test-results-xml-pkl-doc-macOS-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-macOS-amd64-snapshot
|
name: test-results-html-pkl-doc-macOS-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -514,44 +419,33 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-linux-amd64
|
name: executable-pkl-doc-linux-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-linux-amd64-snapshot
|
name: test-results-xml-pkl-doc-linux-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-linux-amd64-snapshot
|
name: test-results-html-pkl-doc-linux-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -566,42 +460,31 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-macOS-aarch64
|
name: executable-pkl-doc-macOS-aarch64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-macOS-aarch64-snapshot
|
name: test-results-xml-pkl-doc-macOS-aarch64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-macOS-aarch64-snapshot
|
name: test-results-html-pkl-doc-macOS-aarch64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -614,44 +497,33 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-linux-aarch64
|
name: executable-pkl-doc-linux-aarch64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-linux-aarch64-snapshot
|
name: test-results-xml-pkl-doc-linux-aarch64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-linux-aarch64-snapshot
|
name: test-results-html-pkl-doc-linux-aarch64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -664,24 +536,13 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Install musl and zlib
|
- name: Install musl and zlib
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
@@ -757,22 +618,22 @@ jobs:
|
|||||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-alpine-linux-amd64
|
name: executable-pkl-doc-alpine-linux-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-alpine-linux-amd64-snapshot
|
name: test-results-xml-pkl-doc-alpine-linux-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-alpine-linux-amd64-snapshot
|
name: test-results-html-pkl-doc-alpine-linux-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -784,86 +645,48 @@ jobs:
|
|||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
JAVA_HOME: /jdk
|
JAVA_HOME: /jdk
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-windows-amd64
|
name: executable-pkl-doc-windows-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-windows-amd64-snapshot
|
name: test-results-xml-pkl-doc-windows-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-windows-amd64-snapshot
|
name: test-results-html-pkl-doc-windows-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
verdict:
|
|
||||||
if: always()
|
|
||||||
needs:
|
|
||||||
- check-pkl-github-actions
|
|
||||||
- gradle-check
|
|
||||||
- gradle-check-windows
|
|
||||||
- pkl-cli-macOS-amd64-snapshot
|
|
||||||
- pkl-cli-linux-amd64-snapshot
|
|
||||||
- pkl-cli-macOS-aarch64-snapshot
|
|
||||||
- pkl-cli-linux-aarch64-snapshot
|
|
||||||
- pkl-cli-alpine-linux-amd64-snapshot
|
|
||||||
- pkl-cli-windows-amd64-snapshot
|
|
||||||
- pkl-doc-macOS-amd64-snapshot
|
|
||||||
- pkl-doc-linux-amd64-snapshot
|
|
||||||
- pkl-doc-macOS-aarch64-snapshot
|
|
||||||
- pkl-doc-linux-aarch64-snapshot
|
|
||||||
- pkl-doc-alpine-linux-amd64-snapshot
|
|
||||||
- pkl-doc-windows-amd64-snapshot
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Failure verdict
|
|
||||||
if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')
|
|
||||||
run: |-
|
|
||||||
echo "Some of the required jobs are either failing or were cancelled"
|
|
||||||
exit 1
|
|
||||||
upload-event-file:
|
upload-event-file:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Upload event file
|
- name: Upload event file
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-event-file
|
name: test-results-event-file
|
||||||
path: ${{ github.event_path }}
|
path: ${{ github.event_path }}
|
||||||
check-pkl-github-actions:
|
check-pkl-github-actions:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: Setup Pkl
|
- name: Setup Pkl
|
||||||
id: setup-pkl
|
id: setup-pkl
|
||||||
env:
|
env:
|
||||||
@@ -878,8 +701,6 @@ jobs:
|
|||||||
chmod +x $PKL_EXEC
|
chmod +x $PKL_EXEC
|
||||||
echo "$DIR" >> "$GITHUB_PATH"
|
echo "$DIR" >> "$GITHUB_PATH"
|
||||||
echo "pkl_exec=$PKL_EXEC" >> "$GITHUB_OUTPUT"
|
echo "pkl_exec=$PKL_EXEC" >> "$GITHUB_OUTPUT"
|
||||||
- shell: bash
|
|
||||||
run: rm -rf .github/**/[a-z]*.yml
|
|
||||||
- shell: bash
|
- shell: bash
|
||||||
run: pkl eval -m .github/ --project-dir .github/ .github/index.pkl
|
run: pkl eval -m .github/ --project-dir .github/ .github/index.pkl
|
||||||
- name: check git status
|
- name: check git status
|
||||||
|
|||||||
Generated
+144
-328
@@ -1,4 +1,6 @@
|
|||||||
# Generated from Workflow.pkl. DO NOT EDIT.
|
# Do not modify!
|
||||||
|
# This file was generated from a template using https://github.com/StefMa/pkl-gha
|
||||||
|
|
||||||
name: Build (release branch)
|
name: Build (release branch)
|
||||||
'on':
|
'on':
|
||||||
push:
|
push:
|
||||||
@@ -17,37 +19,27 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: check
|
- name: check
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-gradle-check
|
name: test-results-xml-gradle-check
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-gradle-check
|
name: test-results-html-gradle-check
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -58,37 +50,27 @@ jobs:
|
|||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
JAVA_HOME: /jdk
|
JAVA_HOME: /jdk
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: check
|
- name: check
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-gradle-check-windows
|
name: test-results-xml-gradle-check-windows
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-gradle-check-windows
|
name: test-results-html-gradle-check-windows
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -98,63 +80,42 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: bench:jmh
|
- name: bench:jmh
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true bench:jmh
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true bench:jmh
|
||||||
gradle-compatibility:
|
gradle-compatibility:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
- name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-gradle-compatibility
|
name: test-results-xml-gradle-compatibility
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-gradle-compatibility
|
name: test-results-html-gradle-compatibility
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -164,45 +125,33 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
- uses: actions/checkout@v5
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: gradle build java executables
|
- name: gradle build java executables
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:build pkl-cli:build pkl-codegen-java:build pkl-codegen-kotlin:build
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:build pkl-cli:build pkl-codegen-java:build pkl-codegen-kotlin:build
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-java
|
name: executable-java
|
||||||
path: '*/build/executable/**/*'
|
path: '*/build/executable/**/*'
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-java-executables-snapshot
|
name: test-results-xml-java-executables-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-java-executables-snapshot
|
name: test-results-html-java-executables-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -215,41 +164,30 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-macOS-amd64
|
name: executable-pkl-cli-macOS-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-macOS-amd64-snapshot
|
name: test-results-xml-pkl-cli-macOS-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-macOS-amd64-snapshot
|
name: test-results-html-pkl-cli-macOS-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -261,43 +199,32 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-linux-amd64
|
name: executable-pkl-cli-linux-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-linux-amd64-snapshot
|
name: test-results-xml-pkl-cli-linux-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-linux-amd64-snapshot
|
name: test-results-html-pkl-cli-linux-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -312,41 +239,30 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-macOS-aarch64
|
name: executable-pkl-cli-macOS-aarch64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-macOS-aarch64-snapshot
|
name: test-results-xml-pkl-cli-macOS-aarch64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-macOS-aarch64-snapshot
|
name: test-results-html-pkl-cli-macOS-aarch64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -358,43 +274,32 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-linux-aarch64
|
name: executable-pkl-cli-linux-aarch64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-linux-aarch64-snapshot
|
name: test-results-xml-pkl-cli-linux-aarch64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-linux-aarch64-snapshot
|
name: test-results-html-pkl-cli-linux-aarch64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -406,24 +311,13 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Install musl and zlib
|
- name: Install musl and zlib
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
@@ -499,21 +393,21 @@ jobs:
|
|||||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-alpine-linux-amd64
|
name: executable-pkl-cli-alpine-linux-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-alpine-linux-amd64-snapshot
|
name: test-results-xml-pkl-cli-alpine-linux-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-alpine-linux-amd64-snapshot
|
name: test-results-html-pkl-cli-alpine-linux-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -524,41 +418,30 @@ jobs:
|
|||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
JAVA_HOME: /jdk
|
JAVA_HOME: /jdk
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-windows-amd64
|
name: executable-pkl-cli-windows-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-windows-amd64-snapshot
|
name: test-results-xml-pkl-cli-windows-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-windows-amd64-snapshot
|
name: test-results-html-pkl-cli-windows-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -571,41 +454,30 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-macOS-amd64
|
name: executable-pkl-doc-macOS-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-macOS-amd64-snapshot
|
name: test-results-xml-pkl-doc-macOS-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-macOS-amd64-snapshot
|
name: test-results-html-pkl-doc-macOS-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -617,43 +489,32 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-linux-amd64
|
name: executable-pkl-doc-linux-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-linux-amd64-snapshot
|
name: test-results-xml-pkl-doc-linux-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-linux-amd64-snapshot
|
name: test-results-html-pkl-doc-linux-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -668,41 +529,30 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-macOS-aarch64
|
name: executable-pkl-doc-macOS-aarch64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-macOS-aarch64-snapshot
|
name: test-results-xml-pkl-doc-macOS-aarch64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-macOS-aarch64-snapshot
|
name: test-results-html-pkl-doc-macOS-aarch64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -714,43 +564,32 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-linux-aarch64
|
name: executable-pkl-doc-linux-aarch64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-linux-aarch64-snapshot
|
name: test-results-xml-pkl-doc-linux-aarch64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-linux-aarch64-snapshot
|
name: test-results-html-pkl-doc-linux-aarch64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -762,24 +601,13 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Install musl and zlib
|
- name: Install musl and zlib
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
@@ -855,21 +683,21 @@ jobs:
|
|||||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-alpine-linux-amd64
|
name: executable-pkl-doc-alpine-linux-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-alpine-linux-amd64-snapshot
|
name: test-results-xml-pkl-doc-alpine-linux-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-alpine-linux-amd64-snapshot
|
name: test-results-html-pkl-doc-alpine-linux-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -880,47 +708,36 @@ jobs:
|
|||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
JAVA_HOME: /jdk
|
JAVA_HOME: /jdk
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-windows-amd64
|
name: executable-pkl-doc-windows-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-windows-amd64-snapshot
|
name: test-results-xml-pkl-doc-windows-amd64-snapshot
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-windows-amd64-snapshot
|
name: test-results-html-pkl-doc-windows-amd64-snapshot
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
if-no-files-found: ignore
|
if-no-files-found: ignore
|
||||||
publish-test-results:
|
publish-test-results:
|
||||||
if: '!cancelled()'
|
if: '!failure() && !cancelled()'
|
||||||
needs:
|
needs:
|
||||||
- gradle-check
|
- gradle-check
|
||||||
- gradle-check-windows
|
- gradle-check-windows
|
||||||
@@ -942,18 +759,18 @@ jobs:
|
|||||||
checks: write
|
checks: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
|
- uses: actions/download-artifact@v6
|
||||||
with:
|
with:
|
||||||
pattern: test-results-xml-*
|
pattern: test-results-xml-*
|
||||||
- name: Publish test results
|
- name: Publish test results
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: EnricoMi/publish-unit-test-result-action@c950f6fb443cb5af20a377fd0dfaa78838901040 # v2
|
uses: EnricoMi/publish-unit-test-result-action@v2
|
||||||
with:
|
with:
|
||||||
comment_mode: 'off'
|
comment_mode: 'off'
|
||||||
files: test-results-xml-*/**/*.xml
|
files: test-results-xml-*/**/*.xml
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-publish-test-results
|
name: test-results-html-publish-test-results
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -983,7 +800,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Create app token
|
- name: Create app token
|
||||||
id: app-token
|
id: app-token
|
||||||
uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2
|
uses: actions/create-github-app-token@v2
|
||||||
with:
|
with:
|
||||||
app-id: ${{ secrets.PKL_CI_CLIENT_ID }}
|
app-id: ${{ secrets.PKL_CI_CLIENT_ID }}
|
||||||
private-key: ${{ secrets.PKL_CI }}
|
private-key: ${{ secrets.PKL_CI }}
|
||||||
@@ -991,10 +808,9 @@ jobs:
|
|||||||
- name: Trigger pkl-lang.org build
|
- name: Trigger pkl-lang.org build
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ steps.app-token.outputs.token }}
|
GH_TOKEN: ${{ steps.app-token.outputs.token }}
|
||||||
SOURCE_RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
||||||
run: |-
|
run: |-
|
||||||
gh workflow run \
|
gh workflow run \
|
||||||
--repo apple/pkl-lang.org \
|
--repo apple/pkl-lang.org \
|
||||||
--ref main \
|
--ref main \
|
||||||
--field source_run="${SOURCE_RUN}" \
|
--field source_run="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
|
||||||
main.yml
|
main.yml
|
||||||
|
|||||||
Generated
+152
-363
@@ -1,4 +1,6 @@
|
|||||||
# Generated from Workflow.pkl. DO NOT EDIT.
|
# Do not modify!
|
||||||
|
# This file was generated from a template using https://github.com/StefMa/pkl-gha
|
||||||
|
|
||||||
name: Release
|
name: Release
|
||||||
'on':
|
'on':
|
||||||
push:
|
push:
|
||||||
@@ -17,37 +19,27 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: check
|
- name: check
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-gradle-check
|
name: test-results-xml-gradle-check
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-gradle-check
|
name: test-results-html-gradle-check
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -58,37 +50,27 @@ jobs:
|
|||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
JAVA_HOME: /jdk
|
JAVA_HOME: /jdk
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: check
|
- name: check
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true check
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true check
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-gradle-check-windows
|
name: test-results-xml-gradle-check-windows
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-gradle-check-windows
|
name: test-results-html-gradle-check-windows
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -98,63 +80,42 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: bench:jmh
|
- name: bench:jmh
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true bench:jmh
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true bench:jmh
|
||||||
gradle-compatibility:
|
gradle-compatibility:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with: {}
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
- name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true :pkl-gradle:build :pkl-gradle:compatibilityTestReleases
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-gradle-compatibility
|
name: test-results-xml-gradle-compatibility
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-gradle-compatibility
|
name: test-results-html-gradle-compatibility
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -164,46 +125,33 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
java-version: '25'
|
java-version: '21'
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with:
|
- uses: actions/checkout@v5
|
||||||
cache-disabled: true
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: gradle build java executables
|
- name: gradle build java executables
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:build pkl-cli:build pkl-codegen-java:build pkl-codegen-kotlin:build
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:build pkl-cli:build pkl-codegen-java:build pkl-codegen-kotlin:build
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-java
|
name: executable-java
|
||||||
path: '*/build/executable/**/*'
|
path: '*/build/executable/**/*'
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-java-executables-release
|
name: test-results-xml-java-executables-release
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-java-executables-release
|
name: test-results-html-java-executables-release
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -216,42 +164,30 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with:
|
|
||||||
cache-disabled: true
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-macOS-amd64
|
name: executable-pkl-cli-macOS-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-macOS-amd64-release
|
name: test-results-xml-pkl-cli-macOS-amd64-release
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-macOS-amd64-release
|
name: test-results-html-pkl-cli-macOS-amd64-release
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -263,44 +199,32 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with:
|
|
||||||
cache-disabled: true
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-linux-amd64
|
name: executable-pkl-cli-linux-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-linux-amd64-release
|
name: test-results-xml-pkl-cli-linux-amd64-release
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-linux-amd64-release
|
name: test-results-html-pkl-cli-linux-amd64-release
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -315,42 +239,30 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with:
|
|
||||||
cache-disabled: true
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-macOS-aarch64
|
name: executable-pkl-cli-macOS-aarch64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-macOS-aarch64-release
|
name: test-results-xml-pkl-cli-macOS-aarch64-release
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-macOS-aarch64-release
|
name: test-results-html-pkl-cli-macOS-aarch64-release
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -362,44 +274,32 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with:
|
|
||||||
cache-disabled: true
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-linux-aarch64
|
name: executable-pkl-cli-linux-aarch64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-linux-aarch64-release
|
name: test-results-xml-pkl-cli-linux-aarch64-release
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-linux-aarch64-release
|
name: test-results-html-pkl-cli-linux-aarch64-release
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -411,25 +311,13 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with:
|
|
||||||
cache-disabled: true
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Install musl and zlib
|
- name: Install musl and zlib
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
@@ -505,21 +393,21 @@ jobs:
|
|||||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true -Dpkl.musl=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true -Dpkl.musl=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-alpine-linux-amd64
|
name: executable-pkl-cli-alpine-linux-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-alpine-linux-amd64-release
|
name: test-results-xml-pkl-cli-alpine-linux-amd64-release
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-alpine-linux-amd64-release
|
name: test-results-html-pkl-cli-alpine-linux-amd64-release
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -530,42 +418,30 @@ jobs:
|
|||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
JAVA_HOME: /jdk
|
JAVA_HOME: /jdk
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with:
|
|
||||||
cache-disabled: true
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-cli:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-cli-windows-amd64
|
name: executable-pkl-cli-windows-amd64
|
||||||
path: pkl-cli*/build/executable/**/*
|
path: pkl-cli*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-cli-windows-amd64-release
|
name: test-results-xml-pkl-cli-windows-amd64-release
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-cli-windows-amd64-release
|
name: test-results-html-pkl-cli-windows-amd64-release
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -578,42 +454,30 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with:
|
|
||||||
cache-disabled: true
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true -Dpkl.targetArch=amd64 "-Dpkl.native--native-compiler-path=${GITHUB_WORKSPACE}/.github/scripts/cc_macos_amd64.sh" pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-macOS-amd64
|
name: executable-pkl-doc-macOS-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-macOS-amd64-release
|
name: test-results-xml-pkl-doc-macOS-amd64-release
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-macOS-amd64-release
|
name: test-results-html-pkl-doc-macOS-amd64-release
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -625,44 +489,32 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with:
|
|
||||||
cache-disabled: true
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-linux-amd64
|
name: executable-pkl-doc-linux-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-linux-amd64-release
|
name: test-results-xml-pkl-doc-linux-amd64-release
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-linux-amd64-release
|
name: test-results-html-pkl-doc-linux-amd64-release
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -677,42 +529,30 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with:
|
|
||||||
cache-disabled: true
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-macOS-aarch64
|
name: executable-pkl-doc-macOS-aarch64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-macOS-aarch64-release
|
name: test-results-xml-pkl-doc-macOS-aarch64-release
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-macOS-aarch64-release
|
name: test-results-html-pkl-doc-macOS-aarch64-release
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -724,44 +564,32 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Install deps
|
- name: Install deps
|
||||||
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
run: dnf install -y git binutils gcc glibc-devel zlib-devel libstdc++-static glibc-langpack-en
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with:
|
|
||||||
cache-disabled: true
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Fix git ownership
|
- name: Fix git ownership
|
||||||
run: git status || git config --system --add safe.directory "$GITHUB_WORKSPACE"
|
run: git status || git config --system --add safe.directory $GITHUB_WORKSPACE
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-linux-aarch64
|
name: executable-pkl-doc-linux-aarch64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-linux-aarch64-release
|
name: test-results-xml-pkl-doc-linux-aarch64-release
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-linux-aarch64-release
|
name: test-results-html-pkl-doc-linux-aarch64-release
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -773,25 +601,13 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with:
|
|
||||||
cache-disabled: true
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Install musl and zlib
|
- name: Install musl and zlib
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
@@ -867,21 +683,21 @@ jobs:
|
|||||||
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH"
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true -Dpkl.musl=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true -Dpkl.musl=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-alpine-linux-amd64
|
name: executable-pkl-doc-alpine-linux-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-alpine-linux-amd64-release
|
name: test-results-xml-pkl-doc-alpine-linux-amd64-release
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-alpine-linux-amd64-release
|
name: test-results-html-pkl-doc-alpine-linux-amd64-release
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -892,42 +708,30 @@ jobs:
|
|||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
JAVA_HOME: /jdk
|
JAVA_HOME: /jdk
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with:
|
|
||||||
cache-disabled: true
|
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: gradle buildNative
|
- name: gradle buildNative
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true pkl-doc:buildNative
|
||||||
- name: Upload executable artifacts
|
- name: Upload executable artifacts
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: executable-pkl-doc-windows-amd64
|
name: executable-pkl-doc-windows-amd64
|
||||||
path: pkl-doc*/build/executable/**/*
|
path: pkl-doc*/build/executable/**/*
|
||||||
- name: Upload Test Result XML
|
- name: Upload Test Result XML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-xml-pkl-doc-windows-amd64-release
|
name: test-results-xml-pkl-doc-windows-amd64-release
|
||||||
path: '**/build/test-results/**/*.xml'
|
path: '**/build/test-results/**/*.xml'
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-pkl-doc-windows-amd64-release
|
name: test-results-html-pkl-doc-windows-amd64-release
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -956,29 +760,15 @@ jobs:
|
|||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
environment: maven-release
|
environment: maven-release
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
- uses: actions/checkout@v5
|
||||||
|
- uses: actions/setup-java@v5
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
java-version: '21'
|
||||||
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
|
|
||||||
with:
|
|
||||||
java-version: '25'
|
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
architecture: x64
|
architecture: x64
|
||||||
- uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5
|
cache: gradle
|
||||||
with:
|
- uses: actions/checkout@v5
|
||||||
cache-disabled: true
|
- uses: actions/download-artifact@v6
|
||||||
- name: Set DEBUG_ARGS env var
|
|
||||||
env:
|
|
||||||
RUNNER_DEBUG: ${{ runner.debug }}
|
|
||||||
shell: bash
|
|
||||||
run: |-
|
|
||||||
if [[ "$RUNNER_DEBUG" -eq 1 ]]; then
|
|
||||||
echo "DEBUG_ARGS=--info --stacktrace" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
|
|
||||||
with:
|
with:
|
||||||
pattern: executable-**
|
pattern: executable-**
|
||||||
merge-multiple: true
|
merge-multiple: true
|
||||||
@@ -988,14 +778,14 @@ jobs:
|
|||||||
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }}
|
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }}
|
||||||
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPEPASSWORD }}
|
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPEPASSWORD }}
|
||||||
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPEUSERNAME }}
|
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPEUSERNAME }}
|
||||||
run: ./gradlew $DEBUG_ARGS --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true publishToSonatype closeAndReleaseSonatypeStagingRepository
|
run: ./gradlew --info --stacktrace --no-daemon -DpklMultiJdkTesting=true -DreleaseBuild=true publishToSonatype closeAndReleaseSonatypeStagingRepository
|
||||||
github-release:
|
github-release:
|
||||||
needs: deploy-release
|
needs: deploy-release
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
|
- uses: actions/download-artifact@v6
|
||||||
with:
|
with:
|
||||||
pattern: executable-**
|
pattern: executable-**
|
||||||
merge-multiple: true
|
merge-multiple: true
|
||||||
@@ -1016,7 +806,7 @@ jobs:
|
|||||||
--notes "Release notes: https://pkl-lang.org/main/current/release-notes/changelog.html#release-${TAG_NAME}" \
|
--notes "Release notes: https://pkl-lang.org/main/current/release-notes/changelog.html#release-${TAG_NAME}" \
|
||||||
*/build/executable/*
|
*/build/executable/*
|
||||||
publish-test-results:
|
publish-test-results:
|
||||||
if: '!cancelled()'
|
if: '!failure() && !cancelled()'
|
||||||
needs:
|
needs:
|
||||||
- gradle-check
|
- gradle-check
|
||||||
- gradle-check-windows
|
- gradle-check-windows
|
||||||
@@ -1038,18 +828,18 @@ jobs:
|
|||||||
checks: write
|
checks: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
|
- uses: actions/download-artifact@v6
|
||||||
with:
|
with:
|
||||||
pattern: test-results-xml-*
|
pattern: test-results-xml-*
|
||||||
- name: Publish test results
|
- name: Publish test results
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: EnricoMi/publish-unit-test-result-action@c950f6fb443cb5af20a377fd0dfaa78838901040 # v2
|
uses: EnricoMi/publish-unit-test-result-action@v2
|
||||||
with:
|
with:
|
||||||
comment_mode: 'off'
|
comment_mode: 'off'
|
||||||
files: test-results-xml-*/**/*.xml
|
files: test-results-xml-*/**/*.xml
|
||||||
- name: Upload Test Result HTML
|
- name: Upload Test Result HTML
|
||||||
if: '!cancelled()'
|
if: '!cancelled()'
|
||||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
|
uses: actions/upload-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: test-results-html-publish-test-results
|
name: test-results-html-publish-test-results
|
||||||
path: '**/build/reports/tests/**/*'
|
path: '**/build/reports/tests/**/*'
|
||||||
@@ -1081,7 +871,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Create app token
|
- name: Create app token
|
||||||
id: app-token
|
id: app-token
|
||||||
uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2
|
uses: actions/create-github-app-token@v2
|
||||||
with:
|
with:
|
||||||
app-id: ${{ secrets.PKL_CI_CLIENT_ID }}
|
app-id: ${{ secrets.PKL_CI_CLIENT_ID }}
|
||||||
private-key: ${{ secrets.PKL_CI }}
|
private-key: ${{ secrets.PKL_CI }}
|
||||||
@@ -1089,10 +879,9 @@ jobs:
|
|||||||
- name: Trigger pkl-lang.org build
|
- name: Trigger pkl-lang.org build
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ steps.app-token.outputs.token }}
|
GH_TOKEN: ${{ steps.app-token.outputs.token }}
|
||||||
SOURCE_RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
||||||
run: |-
|
run: |-
|
||||||
gh workflow run \
|
gh workflow run \
|
||||||
--repo apple/pkl-lang.org \
|
--repo apple/pkl-lang.org \
|
||||||
--ref main \
|
--ref main \
|
||||||
--field source_run="${SOURCE_RUN}" \
|
--field source_run="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
|
||||||
main.yml
|
main.yml
|
||||||
|
|||||||
Generated
+6
-4
@@ -1,4 +1,6 @@
|
|||||||
# Generated from Workflow.pkl. DO NOT EDIT.
|
# Do not modify!
|
||||||
|
# This file was generated from a template using https://github.com/StefMa/pkl-gha
|
||||||
|
|
||||||
name: PR Test Reports
|
name: PR Test Reports
|
||||||
'on':
|
'on':
|
||||||
workflow_run:
|
workflow_run:
|
||||||
@@ -18,14 +20,14 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Download artifacts
|
- name: Download artifacts
|
||||||
uses: dawidd6/action-download-artifact@ac66b43f0e6a346234dd65d4d0c8fbb31cb316e5 # v11
|
uses: dawidd6/action-download-artifact@v11
|
||||||
with:
|
with:
|
||||||
path: artifacts
|
path: artifacts
|
||||||
name: test-results-.*
|
name: test-results-.*
|
||||||
name_is_regexp: true
|
name_is_regex: true
|
||||||
run_id: ${{ github.event.workflow_run.id }}
|
run_id: ${{ github.event.workflow_run.id }}
|
||||||
- name: Publish test results
|
- name: Publish test results
|
||||||
uses: EnricoMi/publish-unit-test-result-action@c950f6fb443cb5af20a377fd0dfaa78838901040 # v2
|
uses: EnricoMi/publish-unit-test-result-action@v2
|
||||||
with:
|
with:
|
||||||
commit: ${{ github.event.workflow_run.head_sha }}
|
commit: ${{ github.event.workflow_run.head_sha }}
|
||||||
comment_mode: 'off'
|
comment_mode: 'off'
|
||||||
|
|||||||
Generated
+10
@@ -10,6 +10,16 @@
|
|||||||
<option name="INSERT_INNER_CLASS_IMPORTS" value="true" />
|
<option name="INSERT_INNER_CLASS_IMPORTS" value="true" />
|
||||||
<option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
|
<option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
|
||||||
<option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
|
<option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
|
||||||
|
<option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
|
||||||
|
<value />
|
||||||
|
</option>
|
||||||
|
<option name="IMPORT_LAYOUT_TABLE">
|
||||||
|
<value>
|
||||||
|
<package name="" withSubpackages="true" static="true" />
|
||||||
|
<emptyLine />
|
||||||
|
<package name="" withSubpackages="true" static="false" />
|
||||||
|
</value>
|
||||||
|
</option>
|
||||||
<option name="RIGHT_MARGIN" value="100" />
|
<option name="RIGHT_MARGIN" value="100" />
|
||||||
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
|
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
|
||||||
<option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
|
<option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
|
||||||
|
|||||||
-30
@@ -12,34 +12,6 @@
|
|||||||
<option name="REPORT_FIELDS" value="true" />
|
<option name="REPORT_FIELDS" value="true" />
|
||||||
</inspection_tool>
|
</inspection_tool>
|
||||||
<inspection_tool class="ClassCanBeRecord" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
<inspection_tool class="ClassCanBeRecord" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="CustomRegExpInspection" enabled="true" level="WARNING" enabled_by_default="true">
|
|
||||||
<option name="myConfigurations">
|
|
||||||
<list>
|
|
||||||
<RegExpInspectionConfiguration>
|
|
||||||
<option name="name" value="PklCliDirectProjectEvaluatorSettingsAccess" />
|
|
||||||
<option name="suppressId" value="PklCliDirectProjectEvaluatorSettingsAccess" />
|
|
||||||
<option name="uuid" value="dd497f47-d38f-3fab-9ed7-eabe699620c8" />
|
|
||||||
<option name="patterns">
|
|
||||||
<list>
|
|
||||||
<InspectionPattern>
|
|
||||||
<option name="regExp" value="project\?\.evaluatorSettings" />
|
|
||||||
<option name="_fileType" value="Kotlin" />
|
|
||||||
<option name="searchContext" value="ANY" />
|
|
||||||
<option name="replacement" value="evaluatorSettings" />
|
|
||||||
</InspectionPattern>
|
|
||||||
<InspectionPattern>
|
|
||||||
<option name="regExp" value="project\?\.resolvedEvaluatorSettings" />
|
|
||||||
<option name="_fileType" value="Kotlin" />
|
|
||||||
<option name="searchContext" value="ANY" />
|
|
||||||
<option name="replacement" value="evaluatorSettings" />
|
|
||||||
</InspectionPattern>
|
|
||||||
</list>
|
|
||||||
</option>
|
|
||||||
</RegExpInspectionConfiguration>
|
|
||||||
</list>
|
|
||||||
</option>
|
|
||||||
</inspection_tool>
|
|
||||||
<inspection_tool class="FieldAccessNotGuarded" enabled="true" level="WARNING" enabled_by_default="true" />
|
|
||||||
<inspection_tool class="FieldMayBeFinal" enabled="true" level="INFORMATION" enabled_by_default="true">
|
<inspection_tool class="FieldMayBeFinal" enabled="true" level="INFORMATION" enabled_by_default="true">
|
||||||
<scope name="AllExceptTruffleAst" level="WARNING" enabled="true" />
|
<scope name="AllExceptTruffleAst" level="WARNING" enabled="true" />
|
||||||
</inspection_tool>
|
</inspection_tool>
|
||||||
@@ -101,7 +73,5 @@
|
|||||||
<option name="processLiterals" value="true" />
|
<option name="processLiterals" value="true" />
|
||||||
<option name="processComments" value="true" />
|
<option name="processComments" value="true" />
|
||||||
</inspection_tool>
|
</inspection_tool>
|
||||||
<inspection_tool class="StringToUpperWithoutLocale" enabled="true" level="WARNING" enabled_by_default="true" editorAttributes="WARNING_ATTRIBUTES" />
|
|
||||||
<inspection_tool class="dd497f47-d38f-3fab-9ed7-eabe699620c8" enabled="true" level="ERROR" enabled_by_default="true" editorAttributes="ERRORS_ATTRIBUTES" />
|
|
||||||
</profile>
|
</profile>
|
||||||
</component>
|
</component>
|
||||||
|
|||||||
+13
-6
@@ -13,11 +13,11 @@ To import the project into IntelliJ, go to File->Open and select the project's r
|
|||||||
If the project is opened but not imported, look for a popup in the lower right corner
|
If the project is opened but not imported, look for a popup in the lower right corner
|
||||||
and click its "Import Gradle Project" link.
|
and click its "Import Gradle Project" link.
|
||||||
. (recommended) Install {uri-gng}[gng] +
|
. (recommended) Install {uri-gng}[gng] +
|
||||||
_gng_ enables you to run Gradle commands with `gw` (instead of `./gradlew`) from any subdirectory.
|
_gng_ enables to run Gradle commands with `gw` (instead of `./gradlew`) from any subdirectory.
|
||||||
. (recommended) Set up Git ignore-revs +
|
. (recommended) Set up Git ignore-revs +
|
||||||
`git config blame.ignoreRevsFile .git-blame-ignore-revs`
|
`git config blame.ignoreRevsFile .git-blame-ignore-revs`
|
||||||
. (recommended) Install {uri-jenv}[jenv] and plugins +
|
. (recommended) Install {uri-jenv}[jenv] and plugins +
|
||||||
_jenv_ uses specific JDK versions in certain subdirectories. _Pkl_ comes with a `.java-version` file specifying JDK 21. +
|
_jenv_ use specific JDK versions in certain subdirectories. _Pkl_ comes with a `.java-version` file specifying JDK 21. +
|
||||||
Enable _jenv_ plugins for better handling by `gradle`:
|
Enable _jenv_ plugins for better handling by `gradle`:
|
||||||
+
|
+
|
||||||
[source,shell]
|
[source,shell]
|
||||||
@@ -74,7 +74,9 @@ gw wrapper --gradle-version [version] --gradle-distribution-sha256-sum [sha]
|
|||||||
|
|
||||||
. (optional) Update _gradle/libs.version.toml_
|
. (optional) Update _gradle/libs.version.toml_
|
||||||
based on version information from https://search.maven.org, https://plugins.gradle.org, and GitHub repos
|
based on version information from https://search.maven.org, https://plugins.gradle.org, and GitHub repos
|
||||||
|
. Run `gw updateDependencyLocks`
|
||||||
. Validate changes with `gw build buildNative`
|
. Validate changes with `gw build buildNative`
|
||||||
|
. Review and commit the updated dependency lock files
|
||||||
|
|
||||||
== Code Generation
|
== Code Generation
|
||||||
|
|
||||||
@@ -90,9 +92,14 @@ Example: `./gradlew test -Djvmdebug=true`
|
|||||||
|
|
||||||
== Snippet Test Plugin
|
== Snippet Test Plugin
|
||||||
|
|
||||||
There is an IntelliJ plugin meant for development on the Pkl project itself located in https://github.com/apple/pkl-project-commons[pkl-project-commons].
|
There is an IntelliJ plugin meant for development on the Pkl project itself.
|
||||||
|
This plugin provides a split pane window when viewing snippet tests such as LanguageSnippetTests and FormatterSnippetTests.
|
||||||
|
|
||||||
See https://github.com/apple/pkl-project-commons?tab=readme-ov-file#internal-intellij-plugin[its readme] for instructions on how to set it up.
|
To install:
|
||||||
|
|
||||||
|
1. Run `./gradlew pkl-internal-intellij-plugin:buildPlugin`.
|
||||||
|
2. Within IntelliJ, run the action "Install Plugin From Disk...".
|
||||||
|
3. Select the zip file within `pkl-internal-intellij-plugin/build/distributions`.
|
||||||
|
|
||||||
== Resources
|
== Resources
|
||||||
|
|
||||||
@@ -103,12 +110,12 @@ For automated build setup examples see our https://github.com/apple/pkl/blob/mai
|
|||||||
* http://ssw.jku.at/Research/Projects/JVM/Truffle.html[Homepage]
|
* http://ssw.jku.at/Research/Projects/JVM/Truffle.html[Homepage]
|
||||||
* https://github.com/graalvm/truffle[GitHub]
|
* https://github.com/graalvm/truffle[GitHub]
|
||||||
* http://lafo.ssw.uni-linz.ac.at/javadoc/truffle/latest/[Javadoc]
|
* http://lafo.ssw.uni-linz.ac.at/javadoc/truffle/latest/[Javadoc]
|
||||||
* https://mail.openjdk.org/pipermail/graal-dev/[Mailing List]
|
* http://mail.openjdk.java.net/pipermail/graal-dev/[Mailing List]
|
||||||
* https://medium.com/@octskyward/graal-truffle-134d8f28fb69#.2db370y2g[Graal & Truffle (Article)]
|
* https://medium.com/@octskyward/graal-truffle-134d8f28fb69#.2db370y2g[Graal & Truffle (Article)]
|
||||||
* https://comserv.cs.ut.ee/home/files/Pool_ComputerScience_2016.pdf?study=ATILoputoo&reference=6319668E7151D556131810BC3F4A627D7FEF5F3B[Truffle Overview (see chapter 1)]
|
* https://comserv.cs.ut.ee/home/files/Pool_ComputerScience_2016.pdf?study=ATILoputoo&reference=6319668E7151D556131810BC3F4A627D7FEF5F3B[Truffle Overview (see chapter 1)]
|
||||||
* https://gist.github.com/smarr/d1f8f2101b5cc8e14e12[Truffle: Languages and Material]
|
* https://gist.github.com/smarr/d1f8f2101b5cc8e14e12[Truffle: Languages and Material]
|
||||||
* https://github.com/smarr/truffle-notes[Truffle Notes]
|
* https://github.com/smarr/truffle-notes[Truffle Notes]
|
||||||
* https://www.graalvm.org/latest/graalvm-as-a-platform/language-implementation-framework/[Truffle Language Implementation Framework]
|
* https://wiki.openjdk.java.net/display/Graal/Truffle+FAQ+and+Guidelines[Truffle FAQ]
|
||||||
|
|
||||||
=== Other Config Languages
|
=== Other Config Languages
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
Copyright © 2024-2026 Apple Inc. and the Pkl project authors
|
Copyright © 2024-2025 Apple Inc. and the Pkl project authors
|
||||||
|
|
||||||
|
|
||||||
Portions of this software were originally based on 'SnakeYAML' developed by Andrey Somov.
|
Portions of this software were originally based on 'SnakeYAML' developed by Andrey Somov.
|
||||||
|
|||||||
+4
-10
@@ -63,9 +63,6 @@ image:https://github.com/apple/pkl/actions/workflows/main.yml/badge.svg?style=sv
|
|||||||
|https://github.com/apple/pkl-go-examples[`apple/pkl-go-examples`]
|
|https://github.com/apple/pkl-go-examples[`apple/pkl-go-examples`]
|
||||||
|Examples for using Pkl within Go applications
|
|Examples for using Pkl within Go applications
|
||||||
|
|
||||||
|https://github.com/apple/highlightjs-pkl[`apple/highlightjs-pkl`]
|
|
||||||
|Highlight.js syntax highlighting for Pkl
|
|
||||||
|
|
||||||
|https://github.com/apple/pkl-intellij[`apple/pkl-intellij`]
|
|https://github.com/apple/pkl-intellij[`apple/pkl-intellij`]
|
||||||
|JetBrains editor plugins providing Pkl language support
|
|JetBrains editor plugins providing Pkl language support
|
||||||
|
|
||||||
@@ -82,7 +79,7 @@ image:https://github.com/apple/pkl/actions/workflows/main.yml/badge.svg?style=sv
|
|||||||
|The pkl-lang.org website
|
|The pkl-lang.org website
|
||||||
|
|
||||||
|https://github.com/apple/pkl-lsp[`apple/pkl-lsp`]
|
|https://github.com/apple/pkl-lsp[`apple/pkl-lsp`]
|
||||||
|Language server for Pkl, implementing the server-side of the Language Server Protocol
|
| Language server for Pkl, implementing the server-side of the Language Server Protocol
|
||||||
|
|
||||||
|https://github.com/apple/pkl-neovim[`apple/pkl-neovim`]
|
|https://github.com/apple/pkl-neovim[`apple/pkl-neovim`]
|
||||||
|Pkl language support for Neovim
|
|Pkl language support for Neovim
|
||||||
@@ -96,9 +93,6 @@ image:https://github.com/apple/pkl/actions/workflows/main.yml/badge.svg?style=sv
|
|||||||
|https://github.com/apple/pkl-project-commons[`apple/pkl-project-commons`]
|
|https://github.com/apple/pkl-project-commons[`apple/pkl-project-commons`]
|
||||||
|Utility libraries for Pkl
|
|Utility libraries for Pkl
|
||||||
|
|
||||||
|https://github.com/apple/pkl-readers[`apple/pkl-readers`]
|
|
||||||
|Shared Pkl https://pkl-lang.org/main/current/language-reference/index.html#external-readers[external reader] tools
|
|
||||||
|
|
||||||
|https://github.com/apple/pkl-spring[`apple/pkl-spring`]
|
|https://github.com/apple/pkl-spring[`apple/pkl-spring`]
|
||||||
|Spring Boot extension for configuring Boot apps with Pkl
|
|Spring Boot extension for configuring Boot apps with Pkl
|
||||||
|
|
||||||
@@ -114,9 +108,9 @@ image:https://github.com/apple/pkl/actions/workflows/main.yml/badge.svg?style=sv
|
|||||||
|https://github.com/apple/pkl.tmbundle[`apple/pkl.tmbundle`]
|
|https://github.com/apple/pkl.tmbundle[`apple/pkl.tmbundle`]
|
||||||
|TextMate bundle for Pkl
|
|TextMate bundle for Pkl
|
||||||
|
|
||||||
|
|https://github.com/apple/rules_pkl[`apple/rules_pkl`]
|
||||||
|
| Bazel build rules for Pkl
|
||||||
|
|
||||||
|https://github.com/apple/tree-sitter-pkl[`apple/tree-sitter-pkl`]
|
|https://github.com/apple/tree-sitter-pkl[`apple/tree-sitter-pkl`]
|
||||||
|Tree-sitter parser for Pkl
|
|Tree-sitter parser for Pkl
|
||||||
|
|
||||||
|https://github.com/apple/rules_pkl[`apple/rules_pkl`]
|
|
||||||
|Bazel build rules for Pkl
|
|
||||||
|===
|
|===
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -14,8 +14,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
plugins {
|
plugins {
|
||||||
id("pklAllProjects")
|
pklAllProjects
|
||||||
id("pklJavaLibrary")
|
pklJavaLibrary
|
||||||
id("me.champeau.jmh")
|
id("me.champeau.jmh")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,69 @@
|
|||||||
|
# This is a Gradle generated file for dependency locking.
|
||||||
|
# Manual edits can break the build and are not advised.
|
||||||
|
# This file is expected to be part of source control.
|
||||||
|
com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable
|
||||||
|
com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable
|
||||||
|
io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
|
||||||
|
io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable
|
||||||
|
io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable
|
||||||
|
net.bytebuddy:byte-buddy:1.17.7=jmh,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
net.sf.jopt-simple:jopt-simple:5.0.4=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
|
||||||
|
org.apache.commons:commons-math3:3.6.1=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
|
||||||
|
org.apiguardian:apiguardian-api:1.1.2=jmhCompileClasspath,jmhImplementationDependenciesMetadata,testCompileClasspath,testImplementationDependenciesMetadata
|
||||||
|
org.assertj:assertj-core:3.27.6=jmh,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||||
|
org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||||
|
org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||||
|
org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||||
|
org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable
|
||||||
|
org.graalvm.compiler:compiler:25.0.0=graal
|
||||||
|
org.graalvm.polyglot:polyglot:25.0.0=jmh,jmhRuntimeClasspath,truffle
|
||||||
|
org.graalvm.sdk:collections:25.0.0=graal,jmh,jmhRuntimeClasspath,truffle
|
||||||
|
org.graalvm.sdk:graal-sdk:25.0.0=jmh,jmhRuntimeClasspath
|
||||||
|
org.graalvm.sdk:nativeimage:25.0.0=jmh,jmhRuntimeClasspath,truffle
|
||||||
|
org.graalvm.sdk:word:25.0.0=graal,jmh,jmhRuntimeClasspath,truffle
|
||||||
|
org.graalvm.truffle:truffle-api:25.0.0=jmh,jmhRuntimeClasspath,truffle
|
||||||
|
org.graalvm.truffle:truffle-compiler:25.0.0=graal
|
||||||
|
org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
|
||||||
|
org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib:2.2.20=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains:annotations:13.0=jmh,jmhCompileClasspath,jmhRuntimeClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathJmh,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-api:5.14.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-engine:5.14.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-params:5.14.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-commons:1.14.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-engine:1.14.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
|
||||||
|
org.junit:junit-bom:5.14.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.msgpack:msgpack-core:0.9.8=jmh,jmhRuntimeClasspath
|
||||||
|
org.openjdk.jmh:jmh-core:1.37=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
|
||||||
|
org.openjdk.jmh:jmh-generator-asm:1.37=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
|
||||||
|
org.openjdk.jmh:jmh-generator-bytecode:1.37=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
|
||||||
|
org.openjdk.jmh:jmh-generator-reflection:1.37=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
|
||||||
|
org.opentest4j:opentest4j:1.3.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.organicdesign:Paguro:3.10.3=jmh,jmhRuntimeClasspath
|
||||||
|
org.ow2.asm:asm:9.0=jmh,jmhCompileClasspath,jmhImplementationDependenciesMetadata,jmhRuntimeClasspath
|
||||||
|
org.snakeyaml:snakeyaml-engine:2.10=jmh,jmhRuntimeClasspath
|
||||||
|
empty=annotationProcessor,apiDependenciesMetadata,compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,intransitiveDependenciesMetadata,jmhAnnotationProcessor,jmhApiDependenciesMetadata,jmhCompileOnlyDependenciesMetadata,jmhIntransitiveDependenciesMetadata,jmhKotlinScriptDefExtensions,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,runtimeClasspath,sourcesJar,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright © 2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
import groovy.util.Node
|
|
||||||
import groovy.xml.XmlParser
|
|
||||||
import groovy.xml.XmlUtil
|
|
||||||
import org.gradle.api.DefaultTask
|
|
||||||
import org.gradle.api.tasks.TaskAction
|
|
||||||
|
|
||||||
abstract class ConfigureLateInitAnnotation : DefaultTask() {
|
|
||||||
private val miscXmlFile = project.rootProject.file(".idea/misc.xml")
|
|
||||||
|
|
||||||
init {
|
|
||||||
inputs.file(miscXmlFile)
|
|
||||||
outputs.file(miscXmlFile)
|
|
||||||
}
|
|
||||||
|
|
||||||
@TaskAction
|
|
||||||
fun run() {
|
|
||||||
val annotationName = "org.pkl.core.util.LateInit"
|
|
||||||
|
|
||||||
if (!miscXmlFile.exists()) {
|
|
||||||
miscXmlFile.writeText(
|
|
||||||
"""
|
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
</project>
|
|
||||||
"""
|
|
||||||
.trimIndent()
|
|
||||||
.trim()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
val root = XmlParser().parse(miscXmlFile)
|
|
||||||
|
|
||||||
fun Node.childNodes() = children().filterIsInstance<Node>()
|
|
||||||
|
|
||||||
var entryPointsManager =
|
|
||||||
root.childNodes().find {
|
|
||||||
it.name() == "component" && it.attribute("name") == "EntryPointsManager"
|
|
||||||
}
|
|
||||||
if (entryPointsManager == null) {
|
|
||||||
entryPointsManager = root.appendNode("component", mapOf("name" to "EntryPointsManager"))
|
|
||||||
}
|
|
||||||
|
|
||||||
var writeAnnotations = entryPointsManager.childNodes().find { it.name() == "writeAnnotations" }
|
|
||||||
if (writeAnnotations == null) {
|
|
||||||
writeAnnotations = entryPointsManager.appendNode("writeAnnotations")
|
|
||||||
}
|
|
||||||
|
|
||||||
val alreadyExists =
|
|
||||||
writeAnnotations.childNodes().any {
|
|
||||||
it.name() == "writeAnnotation" && it.attribute("name") == annotationName
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!alreadyExists) {
|
|
||||||
writeAnnotations.appendNode("writeAnnotation", mapOf("name" to annotationName))
|
|
||||||
miscXmlFile.writeText(XmlUtil.serialize(root))
|
|
||||||
logger.lifecycle("Updated .idea/misc.xml")
|
|
||||||
} else {
|
|
||||||
logger.info("$annotationName is already configured in .idea/misc.xml")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,77 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright © 2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
import com.diffplug.spotless.FormatterFunc
|
|
||||||
import com.diffplug.spotless.FormatterStep
|
|
||||||
import java.io.File
|
|
||||||
import java.io.Serial
|
|
||||||
import java.io.Serializable
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A Spotless [FormatterStep] that suppresses formatting changes where the only difference between
|
|
||||||
* the formatted output and the file's content in the upstream base ref is the license header year.
|
|
||||||
*
|
|
||||||
* Avoids an issue where, in the process of working on the codebase:
|
|
||||||
* 1. A file is modified.
|
|
||||||
* 2. Spotless formats the file, and also updates the copyright year.
|
|
||||||
* 3. The original modification is reverted.
|
|
||||||
* 4. Spotless formats the file again, but now the copyright year is the updated year.
|
|
||||||
*/
|
|
||||||
class RevertYearOnlyChangesStep(private val repoRoot: File, private val ratchetFrom: String) :
|
|
||||||
Serializable {
|
|
||||||
companion object {
|
|
||||||
@Serial private const val serialVersionUID: Long = 1L
|
|
||||||
}
|
|
||||||
|
|
||||||
fun create(): FormatterStep =
|
|
||||||
FormatterStep.createLazy(
|
|
||||||
"revertYearOnlyChanges",
|
|
||||||
{ this },
|
|
||||||
{ RevertYearOnlyChangesFunc(repoRoot, ratchetFrom) },
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
class RevertYearOnlyChangesFunc(private val repoRoot: File, private val ratchetFrom: String) :
|
|
||||||
FormatterFunc.NeedsFile, Serializable {
|
|
||||||
companion object {
|
|
||||||
@Serial private const val serialVersionUID: Long = 1L
|
|
||||||
|
|
||||||
// Matches "Copyright © 2024" or "Copyright © 2024-2025"
|
|
||||||
private val YEAR_REGEX = Regex("""(Copyright © )\d{4}(-\d{4})?""")
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun applyWithFile(unix: String, file: File): String {
|
|
||||||
val relativePath = repoRoot.toPath().relativize(file.toPath()).toString()
|
|
||||||
val upstreamContent = gitShow(ratchetFrom, relativePath) ?: return unix
|
|
||||||
val normalizedRaw = YEAR_REGEX.replace(unix, "\$1YEAR")
|
|
||||||
val normalizedUpstream = YEAR_REGEX.replace(upstreamContent, "\$1YEAR")
|
|
||||||
return if (normalizedRaw == normalizedUpstream) {
|
|
||||||
// Only the year changed — return the upstream content
|
|
||||||
upstreamContent
|
|
||||||
} else {
|
|
||||||
unix
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun gitShow(ref: String, path: String): String? {
|
|
||||||
val process =
|
|
||||||
ProcessBuilder("git", "show", "$ref:$path")
|
|
||||||
.directory(repoRoot)
|
|
||||||
.redirectErrorStream(true)
|
|
||||||
.start()
|
|
||||||
val output = process.inputStream.readBytes().toString(Charsets.UTF_8)
|
|
||||||
return if (process.waitFor() == 0) output.replace("\r\n", "\n") else null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
import net.ltgt.gradle.errorprone.CheckSeverity
|
|
||||||
import net.ltgt.gradle.errorprone.errorprone
|
|
||||||
import net.ltgt.gradle.nullaway.nullaway
|
|
||||||
import org.gradle.accessors.dm.LibrariesForLibs
|
|
||||||
import org.gradle.api.tasks.compile.JavaCompile
|
|
||||||
|
|
||||||
plugins {
|
|
||||||
`java-library`
|
|
||||||
id("net.ltgt.errorprone")
|
|
||||||
id("net.ltgt.nullaway")
|
|
||||||
}
|
|
||||||
|
|
||||||
val libs = the<LibrariesForLibs>()
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
api(libs.jspecify)
|
|
||||||
errorprone(libs.errorProne)
|
|
||||||
errorprone(libs.nullaway)
|
|
||||||
}
|
|
||||||
|
|
||||||
nullaway { onlyNullMarked = true }
|
|
||||||
|
|
||||||
tasks.withType<JavaCompile>().configureEach {
|
|
||||||
options.errorprone.disableAllChecks = true
|
|
||||||
options.errorprone.check("StringCaseLocaleUsage", CheckSeverity.ERROR)
|
|
||||||
options.errorprone.check("GuardedBy", CheckSeverity.ERROR)
|
|
||||||
options.errorprone.nullaway {
|
|
||||||
error()
|
|
||||||
onlyNullMarked = true
|
|
||||||
jspecifyMode = true
|
|
||||||
// honor assert x != null in addition to Objects.requireNonNull(x)
|
|
||||||
assertsEnabled = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,114 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright © 2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
import org.gradle.accessors.dm.LibrariesForLibs
|
|
||||||
import org.gradle.api.GradleException
|
|
||||||
import org.gradle.kotlin.dsl.getByType
|
|
||||||
import org.gradle.kotlin.dsl.kotlin
|
|
||||||
import org.gradle.kotlin.dsl.the
|
|
||||||
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
|
|
||||||
|
|
||||||
plugins {
|
|
||||||
java
|
|
||||||
kotlin("jvm")
|
|
||||||
id("com.diffplug.spotless")
|
|
||||||
}
|
|
||||||
|
|
||||||
val buildInfo = project.extensions.getByType<BuildInfo>()
|
|
||||||
|
|
||||||
val libs = the<LibrariesForLibs>()
|
|
||||||
|
|
||||||
kotlin {
|
|
||||||
jvmToolchain {
|
|
||||||
languageVersion.set(buildInfo.jdkToolchainVersion)
|
|
||||||
vendor.set(buildInfo.jdkVendor)
|
|
||||||
}
|
|
||||||
compilerOptions {
|
|
||||||
val kotlinTarget = KotlinVersion.fromVersion(libs.versions.kotlinTarget.get())
|
|
||||||
languageVersion.set(kotlinTarget)
|
|
||||||
apiVersion.set(kotlinTarget)
|
|
||||||
jvmTarget = JvmTarget.fromTarget(buildInfo.jvmTarget.toString())
|
|
||||||
freeCompilerArgs.addAll(
|
|
||||||
"-jvm-default=no-compatibility", // was: -Xjvm-default=all
|
|
||||||
"-Xjdk-release=${buildInfo.jvmTarget}",
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
spotless {
|
|
||||||
val revertYearOnlyChanges = RevertYearOnlyChangesStep(rootProject.rootDir, ratchetFrom!!).create()
|
|
||||||
|
|
||||||
kotlin {
|
|
||||||
addStep(revertYearOnlyChanges)
|
|
||||||
ktfmt(libs.versions.ktfmt.get()).googleStyle()
|
|
||||||
target("src/*/kotlin/**/*.kt")
|
|
||||||
licenseHeaderFile(
|
|
||||||
rootProject.file("build-logic/src/main/resources/license-header.star-block.txt")
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Kotlin modules to guard: fail the build if any dependency resolves to a version higher than
|
|
||||||
* `libs.versions.kotlinTarget`. This includes versions introduced via direct declarations, BOMs,
|
|
||||||
* version catalogs, or constraints.
|
|
||||||
*/
|
|
||||||
val guardedKotlinModules = setOf(libs.kotlinStdLib.get().module, libs.kotlinReflect.get().module)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Classpath configurations where the above rule applies. Kept narrow to avoid interfering with
|
|
||||||
* Gradle/Kotlin plugin internal configurations.
|
|
||||||
*/
|
|
||||||
val guardedConfigurations =
|
|
||||||
setOf(
|
|
||||||
configurations.compileClasspath,
|
|
||||||
configurations.runtimeClasspath,
|
|
||||||
configurations.testCompileClasspath,
|
|
||||||
configurations.testRuntimeClasspath,
|
|
||||||
)
|
|
||||||
|
|
||||||
guardedConfigurations.forEach { configuration ->
|
|
||||||
configuration.configure {
|
|
||||||
incoming.afterResolve {
|
|
||||||
resolutionResult.allComponents.forEach { component ->
|
|
||||||
val moduleVersion = component.moduleVersion ?: return@forEach
|
|
||||||
if (
|
|
||||||
moduleVersion.module in guardedKotlinModules &&
|
|
||||||
moduleVersion.version.exceedsKotlinTarget()
|
|
||||||
) {
|
|
||||||
throw GradleException(
|
|
||||||
"Resolved ${moduleVersion.module}:${moduleVersion.version} on configuration $name, " +
|
|
||||||
"which exceeds the allowed Kotlin version ($kotlinTargetVersion)"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// also works for version ranges like: [2.3.0,)
|
|
||||||
val kotlinVersionRegex = Regex("""(\d+)\.(\d+)(?:\.\d+)?""")
|
|
||||||
val kotlinTargetVersion = libs.versions.kotlinTarget.get()
|
|
||||||
val targetMajor = kotlinTargetVersion.substringBefore('.').toInt()
|
|
||||||
val targetMinor = kotlinTargetVersion.substringAfter('.').toInt()
|
|
||||||
|
|
||||||
fun String.exceedsKotlinTarget(): Boolean {
|
|
||||||
val version =
|
|
||||||
kotlinVersionRegex.find(this) ?: throw GradleException("Could not parse Kotlin version: $this")
|
|
||||||
val major = version.groupValues[1].toInt()
|
|
||||||
val minor = version.groupValues[2].toInt()
|
|
||||||
return major > targetMajor || (major == targetMajor && minor > targetMinor)
|
|
||||||
}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
import org.gradle.accessors.dm.LibrariesForLibs
|
|
||||||
|
|
||||||
plugins { id("pklJavaLibrary") }
|
|
||||||
|
|
||||||
val buildInfo = project.extensions.getByType<BuildInfo>()
|
|
||||||
|
|
||||||
val libs = the<LibrariesForLibs>()
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
// Kotlin libraries typically expose stdlib types in their public APIs.
|
|
||||||
// Therefore, the stdlib must be available on the consumer's compile classpath,
|
|
||||||
// and "implementation" is not sufficient.
|
|
||||||
api(libs.kotlinStdLib)
|
|
||||||
}
|
|
||||||
@@ -1,122 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
val assembleNativeMacOsAarch64 by tasks.registering { group = "build" }
|
|
||||||
|
|
||||||
val assembleNativeMacOsAmd64 by tasks.registering { group = "build" }
|
|
||||||
|
|
||||||
val assembleNativeLinuxAarch64 by tasks.registering { group = "build" }
|
|
||||||
|
|
||||||
val assembleNativeLinuxAmd64 by tasks.registering { group = "build" }
|
|
||||||
|
|
||||||
val assembleNativeAlpineLinuxAmd64 by tasks.registering { group = "build" }
|
|
||||||
|
|
||||||
val assembleNativeWindowsAmd64 by tasks.registering { group = "build" }
|
|
||||||
|
|
||||||
val testNativeMacOsAarch64 by tasks.registering { group = "verification" }
|
|
||||||
|
|
||||||
val testNativeMacOsAmd64 by tasks.registering { group = "verification" }
|
|
||||||
|
|
||||||
val testNativeLinuxAarch64 by tasks.registering { group = "verification" }
|
|
||||||
|
|
||||||
val testNativeLinuxAmd64 by tasks.registering { group = "verification" }
|
|
||||||
|
|
||||||
val testNativeAlpineLinuxAmd64 by tasks.registering { group = "verification" }
|
|
||||||
|
|
||||||
val testNativeWindowsAmd64 by tasks.registering { group = "verification" }
|
|
||||||
|
|
||||||
val buildInfo = project.extensions.getByType<BuildInfo>()
|
|
||||||
|
|
||||||
private fun <T : Task> Task.wraps(other: TaskProvider<T>) {
|
|
||||||
dependsOn(other)
|
|
||||||
outputs.files(other)
|
|
||||||
}
|
|
||||||
|
|
||||||
val assembleNative by tasks.registering {
|
|
||||||
group = "build"
|
|
||||||
|
|
||||||
if (!buildInfo.isCrossArchSupported && buildInfo.isCrossArch) {
|
|
||||||
throw GradleException("Cross-arch builds are not supported on ${buildInfo.os.name}")
|
|
||||||
}
|
|
||||||
|
|
||||||
when {
|
|
||||||
buildInfo.os.isMacOsX && buildInfo.targetArch == "aarch64" -> {
|
|
||||||
wraps(assembleNativeMacOsAarch64)
|
|
||||||
}
|
|
||||||
buildInfo.os.isMacOsX && buildInfo.targetArch == "amd64" -> {
|
|
||||||
wraps(assembleNativeMacOsAmd64)
|
|
||||||
}
|
|
||||||
buildInfo.os.isLinux && buildInfo.targetArch == "aarch64" -> {
|
|
||||||
wraps(assembleNativeLinuxAarch64)
|
|
||||||
}
|
|
||||||
buildInfo.os.isLinux && buildInfo.targetArch == "amd64" -> {
|
|
||||||
if (buildInfo.musl) wraps(assembleNativeAlpineLinuxAmd64) else wraps(assembleNativeLinuxAmd64)
|
|
||||||
}
|
|
||||||
buildInfo.os.isWindows && buildInfo.targetArch == "amd64" -> {
|
|
||||||
wraps(assembleNativeWindowsAmd64)
|
|
||||||
}
|
|
||||||
else -> {
|
|
||||||
doLast {
|
|
||||||
throw GradleException(
|
|
||||||
"Cannot build targeting ${buildInfo.os.name}/${buildInfo.targetArch} with musl=${buildInfo.musl}"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val testNative by tasks.registering {
|
|
||||||
group = "verification"
|
|
||||||
dependsOn(assembleNative)
|
|
||||||
|
|
||||||
if (!buildInfo.isCrossArchSupported && buildInfo.isCrossArch) {
|
|
||||||
throw GradleException("Cross-arch builds are not supported on ${buildInfo.os.name}")
|
|
||||||
}
|
|
||||||
|
|
||||||
when {
|
|
||||||
buildInfo.os.isMacOsX && buildInfo.targetArch == "aarch64" -> {
|
|
||||||
dependsOn(testNativeMacOsAarch64)
|
|
||||||
}
|
|
||||||
buildInfo.os.isMacOsX && buildInfo.targetArch == "amd64" -> {
|
|
||||||
dependsOn(testNativeMacOsAmd64)
|
|
||||||
}
|
|
||||||
buildInfo.os.isLinux && buildInfo.targetArch == "aarch64" -> {
|
|
||||||
dependsOn(testNativeLinuxAarch64)
|
|
||||||
}
|
|
||||||
buildInfo.os.isLinux && buildInfo.targetArch == "amd64" -> {
|
|
||||||
if (buildInfo.musl) dependsOn(testNativeAlpineLinuxAmd64) else dependsOn(testNativeLinuxAmd64)
|
|
||||||
}
|
|
||||||
buildInfo.os.isWindows && buildInfo.targetArch == "amd64" -> {
|
|
||||||
dependsOn(testNativeWindowsAmd64)
|
|
||||||
}
|
|
||||||
else -> {
|
|
||||||
doLast {
|
|
||||||
throw GradleException(
|
|
||||||
"Cannot build targeting ${buildInfo.os.name}/${buildInfo.targetArch} with musl=${buildInfo.musl}"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val checkNative by tasks.registering {
|
|
||||||
group = "verification"
|
|
||||||
dependsOn(testNative)
|
|
||||||
}
|
|
||||||
|
|
||||||
val buildNative by tasks.registering {
|
|
||||||
group = "build"
|
|
||||||
dependsOn(checkNative)
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
plugins {
|
|
||||||
`maven-publish`
|
|
||||||
signing
|
|
||||||
}
|
|
||||||
|
|
||||||
publishing {
|
|
||||||
publications {
|
|
||||||
components.findByName("java")?.let { javaComponent ->
|
|
||||||
create<MavenPublication>("library") { from(javaComponent) }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
configurePklPomMetadata()
|
|
||||||
|
|
||||||
configurePomValidation()
|
|
||||||
|
|
||||||
configurePklSigning()
|
|
||||||
|
|
||||||
artifacts {
|
|
||||||
project.tasks.findByName("javadocJar")?.let { archives(it) }
|
|
||||||
project.tasks.findByName("sourcesJar")?.let { archives(it) }
|
|
||||||
}
|
|
||||||
+5
-7
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -14,14 +14,15 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
// https://youtrack.jetbrains.com/issue/KTIJ-19369
|
// https://youtrack.jetbrains.com/issue/KTIJ-19369
|
||||||
|
@file:Suppress("DSL_SCOPE_VIOLATION")
|
||||||
|
|
||||||
import org.jetbrains.gradle.ext.ActionDelegationConfig
|
import org.jetbrains.gradle.ext.ActionDelegationConfig
|
||||||
import org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.PLATFORM
|
import org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.PLATFORM
|
||||||
import org.jetbrains.gradle.ext.ProjectSettings
|
import org.jetbrains.gradle.ext.ProjectSettings
|
||||||
import org.jetbrains.gradle.ext.taskTriggers
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("pklAllProjects")
|
pklAllProjects
|
||||||
id("pklGraalVm")
|
pklGraalVm
|
||||||
|
|
||||||
alias(libs.plugins.ideaExt)
|
alias(libs.plugins.ideaExt)
|
||||||
alias(libs.plugins.jmh) apply false
|
alias(libs.plugins.jmh) apply false
|
||||||
@@ -37,8 +38,6 @@ nexusPublishing {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val configureLateInitAnnotation by tasks.registering(ConfigureLateInitAnnotation::class)
|
|
||||||
|
|
||||||
idea {
|
idea {
|
||||||
project {
|
project {
|
||||||
this as ExtensionAware
|
this as ExtensionAware
|
||||||
@@ -48,7 +47,6 @@ idea {
|
|||||||
delegateBuildRunToGradle = true
|
delegateBuildRunToGradle = true
|
||||||
testRunner = PLATFORM
|
testRunner = PLATFORM
|
||||||
}
|
}
|
||||||
taskTriggers.afterSync(configureLateInitAnnotation)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -20,16 +20,11 @@ plugins {
|
|||||||
`jvm-toolchains`
|
`jvm-toolchains`
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
// Keep this in sync with the constants in `BuildInfo.kt` (those are not addressable here).
|
||||||
* To avoid the provisioning of multiple JDKs and other build issues, keep this value in sync with
|
val toolchainVersion = 21
|
||||||
* the JVM toolchain versions in `BuildInfo.kt` and `gradle-daemon-jvm.properties`.
|
|
||||||
*/
|
|
||||||
val toolchainVersion = 25
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.downloadTaskPlugin)
|
implementation(libs.downloadTaskPlugin)
|
||||||
implementation(libs.errorPronePlugin)
|
|
||||||
implementation(libs.nullawayPlugin)
|
|
||||||
implementation(libs.spotlessPlugin)
|
implementation(libs.spotlessPlugin)
|
||||||
implementation(libs.kotlinPlugin) { exclude(module = "kotlin-android-extensions") }
|
implementation(libs.kotlinPlugin) { exclude(module = "kotlin-android-extensions") }
|
||||||
implementation(libs.shadowPlugin)
|
implementation(libs.shadowPlugin)
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
@file:Suppress("UnstableApiUsage")
|
@file:Suppress("UnstableApiUsage")
|
||||||
|
|
||||||
rootProject.name = "build-logic"
|
rootProject.name = "buildSrc"
|
||||||
|
|
||||||
pluginManagement {
|
pluginManagement {
|
||||||
repositories {
|
repositories {
|
||||||
@@ -24,7 +24,7 @@ pluginManagement {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
plugins { id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0" }
|
plugins { id("org.gradle.toolchains.foojay-resolver-convention") }
|
||||||
|
|
||||||
// makes ~/.gradle/init.gradle unnecessary and ~/.gradle/gradle.properties optional
|
// makes ~/.gradle/init.gradle unnecessary and ~/.gradle/gradle.properties optional
|
||||||
dependencyResolutionManagement {
|
dependencyResolutionManagement {
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -31,7 +31,7 @@ import org.gradle.process.CommandLineArgumentProvider
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* JVM bytecode target; this is pinned at a reasonable version, because downstream JVM projects
|
* JVM bytecode target; this is pinned at a reasonable version, because downstream JVM projects
|
||||||
* which consume Pkl will need a minimum bytecode level at or above this one.
|
* which consume Pkl will need a minimum Bytecode level at or above this one.
|
||||||
*
|
*
|
||||||
* Kotlin and Java need matching bytecode targets, so this is expressed as a build setting and
|
* Kotlin and Java need matching bytecode targets, so this is expressed as a build setting and
|
||||||
* constant default. To override, pass `-DpklJdkToolchain=X` to the Gradle command line, where X is
|
* constant default. To override, pass `-DpklJdkToolchain=X` to the Gradle command line, where X is
|
||||||
@@ -40,13 +40,10 @@ import org.gradle.process.CommandLineArgumentProvider
|
|||||||
const val PKL_JVM_TARGET_DEFAULT_MAXIMUM = 17
|
const val PKL_JVM_TARGET_DEFAULT_MAXIMUM = 17
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Pkl build requires JDK 25+; otherwise, NullAway will not work correctly.
|
* The Pkl build requires JDK 21+ to build, because JDK 17 is no longer within the default set of
|
||||||
*
|
* supported JDKs for GraalVM. This is a build-time requirement, not a runtime requirement.
|
||||||
* This is a build-time requirement, not a runtime requirement. To avoid the provisioning of
|
|
||||||
* multiple JDKs and other build issues, keep this value in sync with the JVM toolchain versions in
|
|
||||||
* `build-logic/build.gradle.kts` and `gradle-daemon-jvm.properties`.
|
|
||||||
*/
|
*/
|
||||||
const val PKL_JDK_VERSION_MIN = 25
|
const val PKL_JDK_VERSION_MIN = 21
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The JDK minimum is set to match the bytecode minimum, to guarantee that fat JARs work against the
|
* The JDK minimum is set to match the bytecode minimum, to guarantee that fat JARs work against the
|
||||||
@@ -55,15 +52,14 @@ const val PKL_JDK_VERSION_MIN = 25
|
|||||||
const val PKL_TEST_JDK_MINIMUM = PKL_JVM_TARGET_DEFAULT_MAXIMUM
|
const val PKL_TEST_JDK_MINIMUM = PKL_JVM_TARGET_DEFAULT_MAXIMUM
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Maximum JDK version which Pkl is tested with; this should be bumped when new JDK releases are
|
* Maximum JDK version which Pkl is tested with; this should be bumped when new JDK stable releases
|
||||||
* issued.
|
* are issued. At the time of this writing, JDK 23 is the latest available release.
|
||||||
*/
|
*/
|
||||||
const val PKL_TEST_JDK_MAXIMUM = 26
|
const val PKL_TEST_JDK_MAXIMUM = 23
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If `true`, all JDK releases between [PKL_TEST_JDK_MINIMUM] and [PKL_TEST_JDK_MAXIMUM] are tested.
|
* Test the full suite of JDKs between [PKL_TEST_JDK_MINIMUM] and [PKL_TEST_JDK_MAXIMUM]; if this is
|
||||||
* If `false`, only LTS releases within that range are tested. To override, pass
|
* set to `false` (or overridden on the command line), only LTS releases are tested by default.
|
||||||
* `-DpklTestAllJdks=true` on the Gradle command line.
|
|
||||||
*/
|
*/
|
||||||
const val PKL_TEST_ALL_JDKS = false
|
const val PKL_TEST_ALL_JDKS = false
|
||||||
|
|
||||||
@@ -201,8 +197,8 @@ open class BuildInfo(private val project: Project) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val testJdkVendors: Sequence<JvmVendorSpec> by lazy {
|
val testJdkVendors: Sequence<JvmVendorSpec> by lazy {
|
||||||
// By default, only Adoptium is tested during multi-JDK testing. Flip `-DpklTestAllVendors=true`
|
// By default, only OpenJDK is tested during multi-JDK testing. Flip `-DpklTestAllVendors=true`
|
||||||
// to additionally test against GraalVM and Oracle.
|
// to additionally test against a suite of JDK vendors, including Azul, Oracle, and GraalVM.
|
||||||
when (System.getProperty("pklTestAllVendors")?.toBoolean()) {
|
when (System.getProperty("pklTestAllVendors")?.toBoolean()) {
|
||||||
true -> sequenceOf(JvmVendorSpec.ADOPTIUM, JvmVendorSpec.GRAAL_VM, JvmVendorSpec.ORACLE)
|
true -> sequenceOf(JvmVendorSpec.ADOPTIUM, JvmVendorSpec.GRAAL_VM, JvmVendorSpec.ORACLE)
|
||||||
else -> sequenceOf(JvmVendorSpec.ADOPTIUM)
|
else -> sequenceOf(JvmVendorSpec.ADOPTIUM)
|
||||||
@@ -282,9 +278,8 @@ open class BuildInfo(private val project: Project) {
|
|||||||
val namer = testNamer(baseNameProvider)
|
val namer = testNamer(baseNameProvider)
|
||||||
val applyConfig: MultiJdkTestConfigurator = { (version, jdk) ->
|
val applyConfig: MultiJdkTestConfigurator = { (version, jdk) ->
|
||||||
// 1) copy configurations from the template task
|
// 1) copy configurations from the template task
|
||||||
|
dependsOn(templateTask)
|
||||||
templateTask.get().let { template ->
|
templateTask.get().let { template ->
|
||||||
// copy explicit dependencies not inferred from task inputs
|
|
||||||
dependsOn(template.dependsOn)
|
|
||||||
classpath = template.classpath
|
classpath = template.classpath
|
||||||
testClassesDirs = template.testClassesDirs
|
testClassesDirs = template.testClassesDirs
|
||||||
jvmArgs.addAll(template.jvmArgs)
|
jvmArgs.addAll(template.jvmArgs)
|
||||||
@@ -310,8 +305,8 @@ open class BuildInfo(private val project: Project) {
|
|||||||
// multiply out by jdk vendor
|
// multiply out by jdk vendor
|
||||||
testJdkVendors.map { vendor -> (targetVersion to vendor) }
|
testJdkVendors.map { vendor -> (targetVersion to vendor) }
|
||||||
}
|
}
|
||||||
.mapNotNull { (jdkTarget, vendor) ->
|
.map { (jdkTarget, vendor) ->
|
||||||
if (jdkToolchainVersion == jdkTarget) {
|
if (jdkToolchainVersion == jdkTarget)
|
||||||
tasks.register(namer(jdkTarget, vendor)) {
|
tasks.register(namer(jdkTarget, vendor)) {
|
||||||
// alias to `test`
|
// alias to `test`
|
||||||
dependsOn(templateTask)
|
dependsOn(templateTask)
|
||||||
@@ -319,24 +314,20 @@ open class BuildInfo(private val project: Project) {
|
|||||||
description =
|
description =
|
||||||
"Alias for regular '${baseNameProvider()}' task, on JDK ${jdkTarget.asInt()}"
|
"Alias for regular '${baseNameProvider()}' task, on JDK ${jdkTarget.asInt()}"
|
||||||
}
|
}
|
||||||
} else {
|
else
|
||||||
// Always register and enable the task so it can be run explicitly,
|
tasks.register(namer(jdkTarget, vendor.takeIf { isMultiVendor }), Test::class) {
|
||||||
// but only return it if it should be included in "check".
|
enabled = jdkTarget.isEnabled
|
||||||
val task =
|
group = Category.VERIFICATION
|
||||||
tasks.register(namer(jdkTarget, vendor.takeIf { isMultiVendor }), Test::class) {
|
description = "Run tests against JDK ${jdkTarget.asInt()}"
|
||||||
group = Category.VERIFICATION
|
applyConfig(jdkTarget to toolchains.launcherFor { languageVersion = jdkTarget })
|
||||||
description = "Run tests against JDK ${jdkTarget.asInt()}"
|
// fix: on jdk17, we must force the polyglot module on to the modulepath
|
||||||
applyConfig(jdkTarget to toolchains.launcherFor { languageVersion = jdkTarget })
|
if (jdkTarget.asInt() == 17)
|
||||||
// fix: on jdk17, we must force the polyglot module on to the modulepath
|
jvmArgumentProviders.add(
|
||||||
if (jdkTarget.asInt() == 17)
|
CommandLineArgumentProvider {
|
||||||
jvmArgumentProviders.add(
|
buildList { listOf("--add-modules=org.graalvm.polyglot") }
|
||||||
CommandLineArgumentProvider {
|
}
|
||||||
buildList { listOf("--add-modules=org.graalvm.polyglot") }
|
)
|
||||||
}
|
}
|
||||||
)
|
|
||||||
}
|
|
||||||
task.takeIf { jdkTarget.isEnabled }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.toList()
|
.toList()
|
||||||
}
|
}
|
||||||
@@ -377,7 +368,7 @@ open class BuildInfo(private val project: Project) {
|
|||||||
// allow -DcommitId=abc123 for build environments that don't have git.
|
// allow -DcommitId=abc123 for build environments that don't have git.
|
||||||
System.getProperty("commitId").let { if (it != null) return@lazy it }
|
System.getProperty("commitId").let { if (it != null) return@lazy it }
|
||||||
// only run command once per build invocation
|
// only run command once per build invocation
|
||||||
if (project.path == project.rootProject.path) {
|
if (project === project.rootProject) {
|
||||||
val process =
|
val process =
|
||||||
ProcessBuilder()
|
ProcessBuilder()
|
||||||
.command("git", "rev-parse", "--short", "HEAD")
|
.command("git", "rev-parse", "--short", "HEAD")
|
||||||
+1
-2
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -36,7 +36,6 @@ abstract class ExecutableJar : DefaultTask() {
|
|||||||
@get:Input abstract val jvmArgs: ListProperty<String>
|
@get:Input abstract val jvmArgs: ListProperty<String>
|
||||||
|
|
||||||
@TaskAction
|
@TaskAction
|
||||||
@Suppress("unused")
|
|
||||||
fun buildJar() {
|
fun buildJar() {
|
||||||
val inFile = inJar.get().asFile
|
val inFile = inJar.get().asFile
|
||||||
val outFile = outJar.get().asFile
|
val outFile = outJar.get().asFile
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
+1
-2
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -27,7 +27,6 @@ private val ltsReleases =
|
|||||||
JavaLanguageVersion.of(11),
|
JavaLanguageVersion.of(11),
|
||||||
JavaLanguageVersion.of(17),
|
JavaLanguageVersion.of(17),
|
||||||
JavaLanguageVersion.of(21),
|
JavaLanguageVersion.of(21),
|
||||||
JavaLanguageVersion.of(25),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
/** Describes an inclusive range of JVM versions, based on the [JavaLanguageVersion] type. */
|
/** Describes an inclusive range of JVM versions, based on the [JavaLanguageVersion] type. */
|
||||||
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -57,7 +57,7 @@ open class MergeSourcesJars : DefaultTask() {
|
|||||||
// a word or a period character. should catch most cases.
|
// a word or a period character. should catch most cases.
|
||||||
val importPattern =
|
val importPattern =
|
||||||
Pattern.compile(
|
Pattern.compile(
|
||||||
"(?<!([\\w.]))(" + relocatedPkgs.keys.joinToString("|") { it.replace(".", "\\.") } + ")"
|
"(?<!(\\w|\\.))(" + relocatedPkgs.keys.joinToString("|") { it.replace(".", "\\.") } + ")"
|
||||||
)
|
)
|
||||||
|
|
||||||
val sourceFileExts = sourceFileExtensions.get()
|
val sourceFileExts = sourceFileExtensions.get()
|
||||||
+11
-12
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -55,12 +55,13 @@ abstract class NativeImageBuild : DefaultTask() {
|
|||||||
|
|
||||||
@get:Inject protected abstract val execOperations: ExecOperations
|
@get:Inject protected abstract val execOperations: ExecOperations
|
||||||
|
|
||||||
private val graalVm: Provider<BuildInfo.GraalVm> = arch.map { a ->
|
private val graalVm: Provider<BuildInfo.GraalVm> =
|
||||||
when (a) {
|
arch.map { a ->
|
||||||
Architecture.AMD64 -> buildInfo.graalVmAmd64
|
when (a) {
|
||||||
Architecture.AARCH64 -> buildInfo.graalVmAarch64
|
Architecture.AMD64 -> buildInfo.graalVmAmd64
|
||||||
|
Architecture.AARCH64 -> buildInfo.graalVmAarch64
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private val buildInfo: BuildInfo = project.extensions.getByType(BuildInfo::class.java)
|
private val buildInfo: BuildInfo = project.extensions.getByType(BuildInfo::class.java)
|
||||||
|
|
||||||
@@ -101,7 +102,6 @@ abstract class NativeImageBuild : DefaultTask() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@TaskAction
|
@TaskAction
|
||||||
@Suppress("unused")
|
|
||||||
protected fun run() {
|
protected fun run() {
|
||||||
execOperations.exec {
|
execOperations.exec {
|
||||||
val exclusions =
|
val exclusions =
|
||||||
@@ -118,8 +118,6 @@ abstract class NativeImageBuild : DefaultTask() {
|
|||||||
add("--initialize-at-build-time=")
|
add("--initialize-at-build-time=")
|
||||||
// needed for messagepack-java (see https://github.com/msgpack/msgpack-java/issues/600)
|
// needed for messagepack-java (see https://github.com/msgpack/msgpack-java/issues/600)
|
||||||
add("--initialize-at-run-time=org.msgpack.core.buffer.DirectBufferAccess")
|
add("--initialize-at-run-time=org.msgpack.core.buffer.DirectBufferAccess")
|
||||||
// needed for jline-terminal-jni
|
|
||||||
add("--initialize-at-run-time=org.jline.nativ,org.jline.terminal.impl.jni")
|
|
||||||
add("--no-fallback")
|
add("--no-fallback")
|
||||||
add("-H:IncludeResources=org/pkl/core/stdlib/.*\\.pkl")
|
add("-H:IncludeResources=org/pkl/core/stdlib/.*\\.pkl")
|
||||||
add("-H:IncludeResources=org/jline/utils/.*")
|
add("-H:IncludeResources=org/jline/utils/.*")
|
||||||
@@ -150,9 +148,10 @@ abstract class NativeImageBuild : DefaultTask() {
|
|||||||
}
|
}
|
||||||
// native-image rejects non-existing class path entries -> filter
|
// native-image rejects non-existing class path entries -> filter
|
||||||
add("--class-path")
|
add("--class-path")
|
||||||
val pathInput = classpath.filter {
|
val pathInput =
|
||||||
it.exists() && !exclusions.any { exclude -> it.name.contains(exclude) }
|
classpath.filter {
|
||||||
}
|
it.exists() && !exclusions.any { exclude -> it.name.contains(exclude) }
|
||||||
|
}
|
||||||
add(pathInput.asPath)
|
add(pathInput.asPath)
|
||||||
// make sure dev machine stays responsive (15% slowdown on my laptop)
|
// make sure dev machine stays responsive (15% slowdown on my laptop)
|
||||||
val processors =
|
val processors =
|
||||||
+13
-5
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -42,17 +42,25 @@ class PklFormatterFunc(@Transient private val configuration: Configuration) :
|
|||||||
|
|
||||||
private val classLoader by lazy {
|
private val classLoader by lazy {
|
||||||
val urls = configuration.files.map { it.toURI().toURL() }
|
val urls = configuration.files.map { it.toURI().toURL() }
|
||||||
// Use the platform classloader as parent to isolate from Gradle's classloader
|
URLClassLoader(urls.toTypedArray())
|
||||||
URLClassLoader(urls.toTypedArray(), ClassLoader.getPlatformClassLoader())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private val formatterClass by lazy { classLoader.loadClass("org.pkl.formatter.Formatter") }
|
private val formatterClass by lazy { classLoader.loadClass("org.pkl.formatter.Formatter") }
|
||||||
|
|
||||||
private val formatMethod by lazy { formatterClass.getMethod("format", String::class.java) }
|
private val grammarVersionClass by lazy {
|
||||||
|
classLoader.loadClass("org.pkl.formatter.GrammarVersion")
|
||||||
|
}
|
||||||
|
|
||||||
|
private val grammarVersionLatestMethod by lazy { grammarVersionClass.getMethod("latest") }
|
||||||
|
|
||||||
|
private val formatMethod by lazy {
|
||||||
|
formatterClass.getMethod("format", String::class.java, grammarVersionClass)
|
||||||
|
}
|
||||||
|
|
||||||
private val formatterInstance by lazy { formatterClass.getConstructor().newInstance() }
|
private val formatterInstance by lazy { formatterClass.getConstructor().newInstance() }
|
||||||
|
|
||||||
override fun apply(input: String): String {
|
override fun apply(input: String): String {
|
||||||
return formatMethod(formatterInstance, input) as String
|
val latestGrammarVersion = grammarVersionLatestMethod(null)
|
||||||
|
return formatMethod(formatterInstance, input, latestGrammarVersion) as String
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
+41
-30
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -15,19 +15,19 @@
|
|||||||
*/
|
*/
|
||||||
import com.diffplug.gradle.spotless.KotlinGradleExtension
|
import com.diffplug.gradle.spotless.KotlinGradleExtension
|
||||||
import org.gradle.accessors.dm.LibrariesForLibs
|
import org.gradle.accessors.dm.LibrariesForLibs
|
||||||
|
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
||||||
|
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
|
||||||
|
|
||||||
plugins { id("com.diffplug.spotless") }
|
plugins { id("com.diffplug.spotless") }
|
||||||
|
|
||||||
val buildInfo = extensions.create<BuildInfo>("buildInfo", project)
|
val buildInfo = extensions.create<BuildInfo>("buildInfo", project)
|
||||||
|
|
||||||
|
dependencyLocking { lockAllConfigurations() }
|
||||||
|
|
||||||
configurations {
|
configurations {
|
||||||
val rejectedVersionSuffix = Regex("-alpha|-beta|-eap|-m|-rc|-snapshot", RegexOption.IGNORE_CASE)
|
val rejectedVersionSuffix = Regex("-alpha|-beta|-eap|-m|-rc|-snapshot", RegexOption.IGNORE_CASE)
|
||||||
configureEach {
|
configureEach {
|
||||||
resolutionStrategy {
|
resolutionStrategy {
|
||||||
// forbid dependencies whose pom.xml's include version ranges, because this will lead to
|
|
||||||
// unreproducible builds.
|
|
||||||
|
|
||||||
failOnDynamicVersions()
|
|
||||||
componentSelection {
|
componentSelection {
|
||||||
all {
|
all {
|
||||||
if (rejectedVersionSuffix.containsMatchIn(candidate.version)) {
|
if (rejectedVersionSuffix.containsMatchIn(candidate.version)) {
|
||||||
@@ -42,9 +42,25 @@ configurations {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.withType<JavaCompile>().configureEach {
|
configurations.all {
|
||||||
javaCompiler = buildInfo.javaCompiler
|
resolutionStrategy.eachDependency {
|
||||||
options.release = buildInfo.jvmTarget
|
if (requested.group == "org.jetbrains.kotlin") {
|
||||||
|
// prevent transitive deps from bumping Koltin version
|
||||||
|
useVersion(libs.versions.kotlin.get())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
plugins.withType(JavaPlugin::class).configureEach {
|
||||||
|
tasks.withType<JavaCompile>().configureEach { options.release = 17 }
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.withType<KotlinJvmCompile>().configureEach {
|
||||||
|
compilerOptions {
|
||||||
|
jvmTarget = JvmTarget.JVM_17
|
||||||
|
freeCompilerArgs.addAll("-Xjsr305=strict", "-Xjvm-default=all")
|
||||||
|
freeCompilerArgs.add("-Xjdk-release=17")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
plugins.withType(IdeaPlugin::class).configureEach {
|
plugins.withType(IdeaPlugin::class).configureEach {
|
||||||
@@ -79,6 +95,13 @@ plugins.withType(MavenPublishPlugin::class).configureEach {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// settings.gradle.kts sets `--write-locks`
|
||||||
|
// if Gradle command line contains this task name
|
||||||
|
val updateDependencyLocks by
|
||||||
|
tasks.registering {
|
||||||
|
doLast { configurations.filter { it.isCanBeResolved }.forEach { it.resolve() } }
|
||||||
|
}
|
||||||
|
|
||||||
val allDependencies by tasks.registering(DependencyReportTask::class)
|
val allDependencies by tasks.registering(DependencyReportTask::class)
|
||||||
|
|
||||||
tasks.withType(Test::class).configureEach {
|
tasks.withType(Test::class).configureEach {
|
||||||
@@ -87,6 +110,7 @@ tasks.withType(Test::class).configureEach {
|
|||||||
}
|
}
|
||||||
debugOptions {
|
debugOptions {
|
||||||
enabled = System.getProperty("jvmdebug")?.toBoolean() ?: false
|
enabled = System.getProperty("jvmdebug")?.toBoolean() ?: false
|
||||||
|
@Suppress("UnstableApiUsage")
|
||||||
host = "*"
|
host = "*"
|
||||||
port = 5005
|
port = 5005
|
||||||
suspend = true
|
suspend = true
|
||||||
@@ -97,6 +121,7 @@ tasks.withType(Test::class).configureEach {
|
|||||||
tasks.withType(JavaExec::class).configureEach {
|
tasks.withType(JavaExec::class).configureEach {
|
||||||
debugOptions {
|
debugOptions {
|
||||||
enabled = System.getProperty("jvmdebug")?.toBoolean() ?: false
|
enabled = System.getProperty("jvmdebug")?.toBoolean() ?: false
|
||||||
|
@Suppress("UnstableApiUsage")
|
||||||
host = "*"
|
host = "*"
|
||||||
port = 5005
|
port = 5005
|
||||||
suspend = true
|
suspend = true
|
||||||
@@ -108,7 +133,7 @@ tasks.withType(JavaExec::class).configureEach {
|
|||||||
private val libs = the<LibrariesForLibs>()
|
private val libs = the<LibrariesForLibs>()
|
||||||
|
|
||||||
private val licenseHeaderFile by lazy {
|
private val licenseHeaderFile by lazy {
|
||||||
rootProject.file("build-logic/src/main/resources/license-header.star-block.txt")
|
rootProject.file("buildSrc/src/main/resources/license-header.star-block.txt")
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun KotlinGradleExtension.configureFormatter() {
|
private fun KotlinGradleExtension.configureFormatter() {
|
||||||
@@ -117,40 +142,26 @@ private fun KotlinGradleExtension.configureFormatter() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val originalRemoteName = System.getenv("PKL_ORIGINAL_REMOTE_NAME") ?: "origin"
|
val originalRemoteName = System.getenv("PKL_ORIGINAL_REMOTE_NAME") ?: "origin"
|
||||||
// if we're running against a release branch (or a PR targeted at one), use that branch for
|
|
||||||
// ratcheting
|
|
||||||
// these env vars are set by GitHub actions:
|
|
||||||
// https://docs.github.com/en/actions/reference/workflows-and-actions/variables#default-environment-variables
|
|
||||||
val ratchetBranchName =
|
|
||||||
(System.getenv("GITHUB_BASE_REF") ?: System.getenv("GITHUB_REF_NAME"))?.let {
|
|
||||||
if (it.startsWith("release/")) it else null
|
|
||||||
} ?: "main"
|
|
||||||
|
|
||||||
spotless {
|
spotless {
|
||||||
ratchetFrom = "$originalRemoteName/$ratchetBranchName"
|
ratchetFrom = "$originalRemoteName/main"
|
||||||
|
|
||||||
val revertYearOnlyChangesStep =
|
// When building root project, format buildSrc files too.
|
||||||
RevertYearOnlyChangesStep(rootProject.rootDir, ratchetFrom!!).create()
|
// We need this because buildSrc is not a subproject of the root project, so a top-level
|
||||||
|
// `spotlessApply` will not trigger `buildSrc:spotlessApply`.
|
||||||
// When building root project, format build-logic files too.
|
if (project === rootProject) {
|
||||||
// We need this because build-logic is not a subproject of the root project, so a top-level
|
|
||||||
// `spotlessApply` will not trigger `build-logic:spotlessApply`.
|
|
||||||
if (project.path == rootProject.path) {
|
|
||||||
kotlinGradle {
|
kotlinGradle {
|
||||||
configureFormatter()
|
configureFormatter()
|
||||||
addStep(revertYearOnlyChangesStep)
|
target("*.kts", "buildSrc/*.kts", "buildSrc/src/*/kotlin/**/*.kts")
|
||||||
target("*.kts", "build-logic/*.kts", "build-logic/src/*/kotlin/**/*.kts")
|
|
||||||
}
|
}
|
||||||
kotlin {
|
kotlin {
|
||||||
ktfmt(libs.versions.ktfmt.get()).googleStyle()
|
ktfmt(libs.versions.ktfmt.get()).googleStyle()
|
||||||
target("build-logic/src/*/kotlin/**/*.kt")
|
target("buildSrc/src/*/kotlin/**/*.kt")
|
||||||
licenseHeaderFile(licenseHeaderFile)
|
licenseHeaderFile(licenseHeaderFile)
|
||||||
addStep(revertYearOnlyChangesStep)
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
kotlinGradle {
|
kotlinGradle {
|
||||||
configureFormatter()
|
configureFormatter()
|
||||||
addStep(revertYearOnlyChangesStep)
|
|
||||||
target("*.kts")
|
target("*.kts")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+29
-28
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -84,7 +84,7 @@ for ((key, value) in relocations) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val nonRelocations = listOf("com/oracle/truffle/", "org/graalvm/", "org/jspecify")
|
val nonRelocations = listOf("com/oracle/truffle/", "org/graalvm/")
|
||||||
|
|
||||||
tasks.shadowJar {
|
tasks.shadowJar {
|
||||||
inputs.property("relocations", relocations)
|
inputs.property("relocations", relocations)
|
||||||
@@ -148,36 +148,37 @@ val testFatJar by
|
|||||||
|
|
||||||
tasks.check { dependsOn(testFatJar) }
|
tasks.check { dependsOn(testFatJar) }
|
||||||
|
|
||||||
val validateFatJar by tasks.registering {
|
val validateFatJar by
|
||||||
val outputFile = layout.buildDirectory.file("validateFatJar/result.txt")
|
tasks.registering {
|
||||||
inputs.files(tasks.shadowJar)
|
val outputFile = layout.buildDirectory.file("validateFatJar/result.txt")
|
||||||
inputs.property("nonRelocations", nonRelocations)
|
inputs.files(tasks.shadowJar)
|
||||||
outputs.file(outputFile)
|
inputs.property("nonRelocations", nonRelocations)
|
||||||
|
outputs.file(outputFile)
|
||||||
|
|
||||||
doLast {
|
doLast {
|
||||||
val unshadowedFiles = mutableListOf<String>()
|
val unshadowedFiles = mutableListOf<String>()
|
||||||
zipTree(tasks.shadowJar.get().outputs.files.singleFile).visit {
|
zipTree(tasks.shadowJar.get().outputs.files.singleFile).visit {
|
||||||
val fileDetails = this
|
val fileDetails = this
|
||||||
val path = fileDetails.relativePath.pathString
|
val path = fileDetails.relativePath.pathString
|
||||||
if (
|
if (
|
||||||
!(fileDetails.isDirectory ||
|
!(fileDetails.isDirectory ||
|
||||||
path.startsWith("org/pkl/") ||
|
path.startsWith("org/pkl/") ||
|
||||||
path.startsWith("META-INF/") ||
|
path.startsWith("META-INF/") ||
|
||||||
nonRelocations.any { path.startsWith(it) })
|
nonRelocations.any { path.startsWith(it) })
|
||||||
) {
|
) {
|
||||||
// don't throw exception inside `visit`
|
// don't throw exception inside `visit`
|
||||||
// as this gives a misleading "Could not expand ZIP" error message
|
// as this gives a misleading "Could not expand ZIP" error message
|
||||||
unshadowedFiles.add(path)
|
unshadowedFiles.add(path)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (unshadowedFiles.isEmpty()) {
|
||||||
|
outputFile.get().asFile.writeText("SUCCESS")
|
||||||
|
} else {
|
||||||
|
outputFile.get().asFile.writeText("FAILURE")
|
||||||
|
throw GradleException("Found unshadowed files:\n" + unshadowedFiles.joinToString("\n"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (unshadowedFiles.isEmpty()) {
|
|
||||||
outputFile.get().asFile.writeText("SUCCESS")
|
|
||||||
} else {
|
|
||||||
outputFile.get().asFile.writeText("FAILURE")
|
|
||||||
throw GradleException("Found unshadowed files:\n" + unshadowedFiles.joinToString("\n"))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
tasks.check { dependsOn(validateFatJar) }
|
tasks.check { dependsOn(validateFatJar) }
|
||||||
|
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
+1
-3
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -21,8 +21,6 @@ tasks.addRule("Pattern: compatibilityTest[All|Releases|Latest|Candidate|Nightly|
|
|||||||
val taskName = this
|
val taskName = this
|
||||||
val matchResult = Regex("compatibilityTest(.+)").matchEntire(taskName) ?: return@addRule
|
val matchResult = Regex("compatibilityTest(.+)").matchEntire(taskName) ?: return@addRule
|
||||||
|
|
||||||
// https://github.com/gradle/gradle/issues/32599
|
|
||||||
@Suppress("DEPRECATION")
|
|
||||||
when (val taskNameSuffix = matchResult.groupValues[1]) {
|
when (val taskNameSuffix = matchResult.groupValues[1]) {
|
||||||
"All" ->
|
"All" ->
|
||||||
task("compatibilityTestAll") {
|
task("compatibilityTestAll") {
|
||||||
+7
-9
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -23,27 +23,25 @@ val validatorConfiguration: Configuration =
|
|||||||
configurations.create("validator") {
|
configurations.create("validator") {
|
||||||
resolutionStrategy.eachDependency {
|
resolutionStrategy.eachDependency {
|
||||||
if (requested.group == "log4j" && requested.name == "log4j") {
|
if (requested.group == "log4j" && requested.name == "log4j") {
|
||||||
useTarget(buildInfo.libs.findLibrary("log4j12Api").get())
|
@Suppress("UnstableApiUsage") useTarget(buildInfo.libs.findLibrary("log4j12Api").get())
|
||||||
because("mitigate critical security vulnerabilities")
|
because("mitigate critical security vulnerabilities")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
@Suppress("UnstableApiUsage")
|
||||||
validatorConfiguration(buildInfo.libs.findLibrary("nuValidator").get()) {
|
validatorConfiguration(buildInfo.libs.findLibrary("nuValidator").get()) {
|
||||||
// remove unnecessary dependencies
|
// we only want jetty-util and jetty-util-ajax (with the right version)
|
||||||
// (some of the requested versions don't even exist on Maven Central)
|
// couldn't find a more robust way to express this
|
||||||
exclude(group = "org.eclipse.jetty", module = "jetty-alpn-client")
|
|
||||||
exclude(group = "org.eclipse.jetty", module = "jetty-continuation")
|
exclude(group = "org.eclipse.jetty", module = "jetty-continuation")
|
||||||
exclude(group = "org.eclipse.jetty", module = "jetty-http")
|
exclude(group = "org.eclipse.jetty", module = "jetty-http")
|
||||||
|
exclude(group = "org.eclipse.jetty", module = "jetty-io")
|
||||||
exclude(group = "org.eclipse.jetty", module = "jetty-security")
|
exclude(group = "org.eclipse.jetty", module = "jetty-security")
|
||||||
exclude(group = "org.eclipse.jetty", module = "jetty-server")
|
exclude(group = "org.eclipse.jetty", module = "jetty-server")
|
||||||
exclude(group = "org.eclipse.jetty", module = "jetty-servlets")
|
exclude(group = "org.eclipse.jetty", module = "jetty-servlets")
|
||||||
exclude(group = "org.eclipse.jetty", module = "jetty-jakarta-servlet-api")
|
|
||||||
exclude(group = "org.eclipse.jetty.toolchain")
|
|
||||||
exclude(group = "javax.servlet")
|
exclude(group = "javax.servlet")
|
||||||
exclude(group = "org.apache.commons", module = "commons-fileupload2-core")
|
exclude(group = "commons-fileupload")
|
||||||
exclude(group = "org.apache.commons", module = "commons-fileupload2-jakarta-servlet5")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+15
-14
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -47,19 +47,20 @@ fun Task.setupTestStartJavaExecutable(launcher: Provider<JavaLauncher>? = null)
|
|||||||
val outputFile = layout.buildDirectory.file("testStartJavaExecutable/$name")
|
val outputFile = layout.buildDirectory.file("testStartJavaExecutable/$name")
|
||||||
outputs.file(outputFile)
|
outputs.file(outputFile)
|
||||||
|
|
||||||
val execOutput = providers.exec {
|
val execOutput =
|
||||||
val executablePath = javaExecutable.get().outputs.files.singleFile
|
providers.exec {
|
||||||
if (launcher?.isPresent == true) {
|
val executablePath = javaExecutable.get().outputs.files.singleFile
|
||||||
commandLine(
|
if (launcher?.isPresent == true) {
|
||||||
launcher.get().executablePath.asFile.absolutePath,
|
commandLine(
|
||||||
"-jar",
|
launcher.get().executablePath.asFile.absolutePath,
|
||||||
executablePath.absolutePath,
|
"-jar",
|
||||||
"--version",
|
executablePath.absolutePath,
|
||||||
)
|
"--version",
|
||||||
} else {
|
)
|
||||||
commandLine(executablePath.absolutePath, "--version")
|
} else {
|
||||||
|
commandLine(executablePath.absolutePath, "--version")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
doLast {
|
doLast {
|
||||||
val outputText = execOutput.standardOutput.asText.get()
|
val outputText = execOutput.standardOutput.asText.get()
|
||||||
@@ -71,7 +72,7 @@ fun Task.setupTestStartJavaExecutable(launcher: Provider<JavaLauncher>? = null)
|
|||||||
outputFile.get().asFile.toPath().apply {
|
outputFile.get().asFile.toPath().apply {
|
||||||
try {
|
try {
|
||||||
parent.createDirectories()
|
parent.createDirectories()
|
||||||
} catch (_: java.nio.file.FileAlreadyExistsException) {}
|
} catch (ignored: java.nio.file.FileAlreadyExistsException) {}
|
||||||
writeText("OK")
|
writeText("OK")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+23
-7
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -50,18 +50,20 @@ artifacts {
|
|||||||
}
|
}
|
||||||
|
|
||||||
spotless {
|
spotless {
|
||||||
val revertYearOnlyChanges = RevertYearOnlyChangesStep(rootProject.rootDir, ratchetFrom!!).create()
|
|
||||||
|
|
||||||
java {
|
java {
|
||||||
addStep(revertYearOnlyChanges)
|
|
||||||
googleJavaFormat(libs.versions.googleJavaFormat.get())
|
googleJavaFormat(libs.versions.googleJavaFormat.get())
|
||||||
target("src/*/java/**/*.java")
|
target("src/*/java/**/*.java")
|
||||||
licenseHeaderFile(
|
licenseHeaderFile(rootProject.file("buildSrc/src/main/resources/license-header.star-block.txt"))
|
||||||
rootProject.file("build-logic/src/main/resources/license-header.star-block.txt")
|
}
|
||||||
)
|
kotlin {
|
||||||
|
ktfmt(libs.versions.ktfmt.get()).googleStyle()
|
||||||
|
target("src/*/kotlin/**/*.kt")
|
||||||
|
licenseHeaderFile(rootProject.file("buildSrc/src/main/resources/license-header.star-block.txt"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.compileKotlin { enabled = false }
|
||||||
|
|
||||||
tasks.jar {
|
tasks.jar {
|
||||||
manifest {
|
manifest {
|
||||||
attributes +=
|
attributes +=
|
||||||
@@ -79,6 +81,19 @@ tasks.javadoc {
|
|||||||
(options as StandardJavadocDocletOptions).addStringOption("Xdoclint:none", "-quiet")
|
(options as StandardJavadocDocletOptions).addStringOption("Xdoclint:none", "-quiet")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val workAroundKotlinGradlePluginBug by
|
||||||
|
tasks.registering {
|
||||||
|
doLast {
|
||||||
|
// Works around this problem, which sporadically appears and disappears in different
|
||||||
|
// subprojects:
|
||||||
|
// A problem was found with the configuration of task ':pkl-executor:compileJava' (type
|
||||||
|
// 'JavaCompile').
|
||||||
|
// > Directory '[...]/pkl/pkl-executor/build/classes/kotlin/main'
|
||||||
|
// specified for property 'compileKotlinOutputClasses' does not exist.
|
||||||
|
layout.buildDirectory.dir("classes/kotlin/main").get().asFile.mkdirs()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val truffleJavacArgs =
|
val truffleJavacArgs =
|
||||||
listOf(
|
listOf(
|
||||||
// TODO: determine correct limits for Truffle specializations
|
// TODO: determine correct limits for Truffle specializations
|
||||||
@@ -88,6 +103,7 @@ val truffleJavacArgs =
|
|||||||
|
|
||||||
tasks.compileJava {
|
tasks.compileJava {
|
||||||
javaCompiler = info.javaCompiler
|
javaCompiler = info.javaCompiler
|
||||||
|
dependsOn(workAroundKotlinGradlePluginBug)
|
||||||
options.compilerArgs.addAll(truffleJavacArgs + info.jpmsAddModulesFlags)
|
options.compilerArgs.addAll(truffleJavacArgs + info.jpmsAddModulesFlags)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
/*
|
||||||
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
import org.gradle.accessors.dm.LibrariesForLibs
|
||||||
|
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
||||||
|
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
|
||||||
|
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id("pklJavaLibrary")
|
||||||
|
kotlin("jvm")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build configuration.
|
||||||
|
val buildInfo = project.extensions.getByType<BuildInfo>()
|
||||||
|
|
||||||
|
// Version Catalog library symbols.
|
||||||
|
val libs = the<LibrariesForLibs>()
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
// At least some of our kotlin APIs contain Kotlin stdlib types
|
||||||
|
// that aren't compiled away by kotlinc (e.g., `kotlin.Function`).
|
||||||
|
// So let's be conservative and default to `api` for now.
|
||||||
|
// For Kotlin APIs that only target Kotlin users (e.g., pkl-config-kotlin),
|
||||||
|
// it won't make a difference.
|
||||||
|
api(buildInfo.libs.findLibrary("kotlinStdLib").get())
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.compileKotlin {
|
||||||
|
enabled = true // disabled by pklJavaLibrary
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.withType<KotlinJvmCompile>().configureEach {
|
||||||
|
compilerOptions {
|
||||||
|
languageVersion = KotlinVersion.KOTLIN_2_1
|
||||||
|
jvmTarget = JvmTarget.fromTarget(buildInfo.jvmTarget.toString())
|
||||||
|
freeCompilerArgs.addAll("-Xjdk-release=${buildInfo.jvmTarget}")
|
||||||
|
}
|
||||||
|
}
|
||||||
+4
-5
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -19,7 +19,7 @@ import org.gradle.api.tasks.testing.logging.TestExceptionFormat
|
|||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
`jvm-test-suite`
|
`jvm-test-suite`
|
||||||
id("pklKotlinBase")
|
kotlin("jvm")
|
||||||
}
|
}
|
||||||
|
|
||||||
val buildInfo = project.extensions.getByType<BuildInfo>()
|
val buildInfo = project.extensions.getByType<BuildInfo>()
|
||||||
@@ -27,11 +27,10 @@ val buildInfo = project.extensions.getByType<BuildInfo>()
|
|||||||
val libs = the<LibrariesForLibs>()
|
val libs = the<LibrariesForLibs>()
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
testImplementation(libs.kotlinStdLib)
|
|
||||||
|
|
||||||
testImplementation(libs.assertj)
|
testImplementation(libs.assertj)
|
||||||
testImplementation(libs.junitApi)
|
testImplementation(libs.junitApi)
|
||||||
testImplementation(libs.junitParams)
|
testImplementation(libs.junitParams)
|
||||||
|
testImplementation(libs.kotlinStdLib)
|
||||||
|
|
||||||
testRuntimeOnly(libs.junitEngine)
|
testRuntimeOnly(libs.junitEngine)
|
||||||
testRuntimeOnly(libs.junitLauncher)
|
testRuntimeOnly(libs.junitLauncher)
|
||||||
@@ -45,7 +44,7 @@ tasks.withType<Test>().configureEach {
|
|||||||
// enable checking of stdlib return types
|
// enable checking of stdlib return types
|
||||||
systemProperty("org.pkl.testMode", "true")
|
systemProperty("org.pkl.testMode", "true")
|
||||||
|
|
||||||
reports.named("html") { required = true }
|
reports.named("html") { enabled = true }
|
||||||
|
|
||||||
testLogging { exceptionFormat = TestExceptionFormat.FULL }
|
testLogging { exceptionFormat = TestExceptionFormat.FULL }
|
||||||
|
|
||||||
+59
-56
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -37,15 +37,16 @@ val stagedLinuxAarch64Executable: Configuration by configurations.creating
|
|||||||
val stagedAlpineLinuxAmd64Executable: Configuration by configurations.creating
|
val stagedAlpineLinuxAmd64Executable: Configuration by configurations.creating
|
||||||
val stagedWindowsAmd64Executable: Configuration by configurations.creating
|
val stagedWindowsAmd64Executable: Configuration by configurations.creating
|
||||||
|
|
||||||
val nativeImageClasspath by configurations.creating {
|
val nativeImageClasspath by
|
||||||
extendsFrom(configurations.runtimeClasspath.get())
|
configurations.creating {
|
||||||
// Ensure native-image version uses GraalVM C SDKs instead of Java FFI or JNA
|
extendsFrom(configurations.runtimeClasspath.get())
|
||||||
// (comes from artifact `mordant-jvm-graal-ffi`).
|
// Ensure native-image version uses GraalVM C SDKs instead of Java FFI or JNA
|
||||||
exclude("com.github.ajalt.mordant", "mordant-jvm-ffm")
|
// (comes from artifact `mordant-jvm-graal-ffi`).
|
||||||
exclude("com.github.ajalt.mordant", "mordant-jvm-ffm-jvm")
|
exclude("com.github.ajalt.mordant", "mordant-jvm-ffm")
|
||||||
exclude("com.github.ajalt.mordant", "mordant-jvm-jna")
|
exclude("com.github.ajalt.mordant", "mordant-jvm-ffm-jvm")
|
||||||
exclude("com.github.ajalt.mordant", "mordant-jvm-jna-jvm")
|
exclude("com.github.ajalt.mordant", "mordant-jvm-jna")
|
||||||
}
|
exclude("com.github.ajalt.mordant", "mordant-jvm-jna-jvm")
|
||||||
|
}
|
||||||
|
|
||||||
val libs = the<LibrariesForLibs>()
|
val libs = the<LibrariesForLibs>()
|
||||||
|
|
||||||
@@ -139,63 +140,65 @@ val windowsExecutableAmd64 by
|
|||||||
|
|
||||||
val assembleNative by tasks.existing
|
val assembleNative by tasks.existing
|
||||||
|
|
||||||
val testStartNativeExecutable by tasks.registering {
|
val testStartNativeExecutable by
|
||||||
dependsOn(assembleNative)
|
tasks.registering {
|
||||||
|
dependsOn(assembleNative)
|
||||||
|
|
||||||
// dummy file for up-to-date checking
|
// dummy file for up-to-date checking
|
||||||
val outputFile = project.layout.buildDirectory.file("testStartNativeExecutable/output.txt")
|
val outputFile = project.layout.buildDirectory.file("testStartNativeExecutable/output.txt")
|
||||||
outputs.file(outputFile)
|
outputs.file(outputFile)
|
||||||
|
|
||||||
val execOutput = providers.exec {
|
val execOutput =
|
||||||
commandLine(assembleNative.get().outputs.files.singleFile, "--version")
|
providers.exec { commandLine(assembleNative.get().outputs.files.singleFile, "--version") }
|
||||||
}
|
|
||||||
|
|
||||||
doLast {
|
doLast {
|
||||||
val outputText = execOutput.standardOutput.asText.get()
|
val outputText = execOutput.standardOutput.asText.get()
|
||||||
if (!outputText.contains(buildInfo.pklVersionNonUnique)) {
|
if (!outputText.contains(buildInfo.pklVersionNonUnique)) {
|
||||||
throw GradleException(
|
throw GradleException(
|
||||||
"Expected version output to contain current version (${buildInfo.pklVersionNonUnique}), but got '$outputText'"
|
"Expected version output to contain current version (${buildInfo.pklVersionNonUnique}), but got '$outputText'"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
outputFile.get().asFile.toPath().apply {
|
outputFile.get().asFile.toPath().apply {
|
||||||
try {
|
try {
|
||||||
parent.createDirectories()
|
parent.createDirectories()
|
||||||
} catch (_: java.nio.file.FileAlreadyExistsException) {}
|
} catch (ignored: java.nio.file.FileAlreadyExistsException) {}
|
||||||
writeText("OK")
|
writeText("OK")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
val requiredGlibcVersion: Version = Version.parse("2.17")
|
val requiredGlibcVersion: Version = Version.parse("2.17")
|
||||||
|
|
||||||
val checkGlibc by tasks.registering {
|
val checkGlibc by
|
||||||
enabled = buildInfo.os.isLinux && !buildInfo.musl
|
tasks.registering {
|
||||||
dependsOn(assembleNative)
|
enabled = buildInfo.os.isLinux && !buildInfo.musl
|
||||||
doLast {
|
dependsOn(assembleNative)
|
||||||
val exec = providers.exec {
|
doLast {
|
||||||
commandLine("objdump", "-T", assembleNative.get().outputs.files.singleFile)
|
val exec =
|
||||||
}
|
providers.exec {
|
||||||
val output = exec.standardOutput.asText.get()
|
commandLine("objdump", "-T", assembleNative.get().outputs.files.singleFile)
|
||||||
val minimumGlibcVersion =
|
|
||||||
output
|
|
||||||
.split("\n")
|
|
||||||
.mapNotNull { line ->
|
|
||||||
val match = Regex("GLIBC_([.0-9]*)").find(line)
|
|
||||||
match?.groups[1]?.let { Version.parse(it.value) }
|
|
||||||
}
|
}
|
||||||
.maxOrNull()
|
val output = exec.standardOutput.asText.get()
|
||||||
if (minimumGlibcVersion == null) {
|
val minimumGlibcVersion =
|
||||||
throw GradleException(
|
output
|
||||||
"Could not determine glibc version from executable. objdump output: $output"
|
.split("\n")
|
||||||
)
|
.mapNotNull { line ->
|
||||||
}
|
val match = Regex("GLIBC_([.0-9]*)").find(line)
|
||||||
if (minimumGlibcVersion > requiredGlibcVersion) {
|
match?.groups[1]?.let { Version.parse(it.value) }
|
||||||
throw GradleException(
|
}
|
||||||
"Incorrect glibc version. Found: $minimumGlibcVersion, required: $requiredGlibcVersion"
|
.maxOrNull()
|
||||||
)
|
if (minimumGlibcVersion == null) {
|
||||||
|
throw GradleException(
|
||||||
|
"Could not determine glibc version from executable. objdump output: $output"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
if (minimumGlibcVersion > requiredGlibcVersion) {
|
||||||
|
throw GradleException(
|
||||||
|
"Incorrect glibc version. Found: $minimumGlibcVersion, required: $requiredGlibcVersion"
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Expose underlying task's outputs
|
// Expose underlying task's outputs
|
||||||
private fun <T : Task> Task.wraps(other: TaskProvider<T>) {
|
private fun <T : Task> Task.wraps(other: TaskProvider<T>) {
|
||||||
@@ -0,0 +1,129 @@
|
|||||||
|
/*
|
||||||
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
val assembleNativeMacOsAarch64 by tasks.registering { group = "build" }
|
||||||
|
|
||||||
|
val assembleNativeMacOsAmd64 by tasks.registering { group = "build" }
|
||||||
|
|
||||||
|
val assembleNativeLinuxAarch64 by tasks.registering { group = "build" }
|
||||||
|
|
||||||
|
val assembleNativeLinuxAmd64 by tasks.registering { group = "build" }
|
||||||
|
|
||||||
|
val assembleNativeAlpineLinuxAmd64 by tasks.registering { group = "build" }
|
||||||
|
|
||||||
|
val assembleNativeWindowsAmd64 by tasks.registering { group = "build" }
|
||||||
|
|
||||||
|
val testNativeMacOsAarch64 by tasks.registering { group = "verification" }
|
||||||
|
|
||||||
|
val testNativeMacOsAmd64 by tasks.registering { group = "verification" }
|
||||||
|
|
||||||
|
val testNativeLinuxAarch64 by tasks.registering { group = "verification" }
|
||||||
|
|
||||||
|
val testNativeLinuxAmd64 by tasks.registering { group = "verification" }
|
||||||
|
|
||||||
|
val testNativeAlpineLinuxAmd64 by tasks.registering { group = "verification" }
|
||||||
|
|
||||||
|
val testNativeWindowsAmd64 by tasks.registering { group = "verification" }
|
||||||
|
|
||||||
|
val buildInfo = project.extensions.getByType<BuildInfo>()
|
||||||
|
|
||||||
|
private fun <T : Task> Task.wraps(other: TaskProvider<T>) {
|
||||||
|
dependsOn(other)
|
||||||
|
outputs.files(other)
|
||||||
|
}
|
||||||
|
|
||||||
|
val assembleNative by
|
||||||
|
tasks.registering {
|
||||||
|
group = "build"
|
||||||
|
|
||||||
|
if (!buildInfo.isCrossArchSupported && buildInfo.isCrossArch) {
|
||||||
|
throw GradleException("Cross-arch builds are not supported on ${buildInfo.os.name}")
|
||||||
|
}
|
||||||
|
|
||||||
|
when {
|
||||||
|
buildInfo.os.isMacOsX && buildInfo.targetArch == "aarch64" -> {
|
||||||
|
wraps(assembleNativeMacOsAarch64)
|
||||||
|
}
|
||||||
|
buildInfo.os.isMacOsX && buildInfo.targetArch == "amd64" -> {
|
||||||
|
wraps(assembleNativeMacOsAmd64)
|
||||||
|
}
|
||||||
|
buildInfo.os.isLinux && buildInfo.targetArch == "aarch64" -> {
|
||||||
|
wraps(assembleNativeLinuxAarch64)
|
||||||
|
}
|
||||||
|
buildInfo.os.isLinux && buildInfo.targetArch == "amd64" -> {
|
||||||
|
if (buildInfo.musl) wraps(assembleNativeAlpineLinuxAmd64)
|
||||||
|
else wraps(assembleNativeLinuxAmd64)
|
||||||
|
}
|
||||||
|
buildInfo.os.isWindows && buildInfo.targetArch == "amd64" -> {
|
||||||
|
wraps(assembleNativeWindowsAmd64)
|
||||||
|
}
|
||||||
|
buildInfo.musl -> {
|
||||||
|
throw GradleException("Building musl on ${buildInfo.os} is not supported")
|
||||||
|
}
|
||||||
|
else -> {
|
||||||
|
throw GradleException(
|
||||||
|
"Unsupported os/arch pair: ${buildInfo.os.name}/${buildInfo.targetArch}"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val testNative by
|
||||||
|
tasks.registering {
|
||||||
|
group = "verification"
|
||||||
|
|
||||||
|
if (!buildInfo.isCrossArchSupported && buildInfo.isCrossArch) {
|
||||||
|
throw GradleException("Cross-arch builds are not supported on ${buildInfo.os.name}")
|
||||||
|
}
|
||||||
|
|
||||||
|
when {
|
||||||
|
buildInfo.os.isMacOsX && buildInfo.targetArch == "aarch64" -> {
|
||||||
|
dependsOn(testNativeMacOsAarch64)
|
||||||
|
}
|
||||||
|
buildInfo.os.isMacOsX && buildInfo.targetArch == "amd64" -> {
|
||||||
|
dependsOn(testNativeMacOsAmd64)
|
||||||
|
}
|
||||||
|
buildInfo.os.isLinux && buildInfo.targetArch == "aarch64" -> {
|
||||||
|
dependsOn(testNativeLinuxAarch64)
|
||||||
|
}
|
||||||
|
buildInfo.os.isLinux && buildInfo.targetArch == "amd64" -> {
|
||||||
|
if (buildInfo.musl) dependsOn(testNativeAlpineLinuxAmd64)
|
||||||
|
else dependsOn(testNativeLinuxAmd64)
|
||||||
|
}
|
||||||
|
buildInfo.os.isWindows && buildInfo.targetArch == "amd64" -> {
|
||||||
|
dependsOn(testNativeWindowsAmd64)
|
||||||
|
}
|
||||||
|
buildInfo.musl -> {
|
||||||
|
throw GradleException("Building musl on ${buildInfo.os} is not supported")
|
||||||
|
}
|
||||||
|
else -> {
|
||||||
|
throw GradleException(
|
||||||
|
"Unsupported os/arch pair: ${buildInfo.os.name}/${buildInfo.targetArch}"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val checkNative by
|
||||||
|
tasks.registering {
|
||||||
|
group = "verification"
|
||||||
|
dependsOn(testNative)
|
||||||
|
}
|
||||||
|
|
||||||
|
val buildNative by
|
||||||
|
tasks.registering {
|
||||||
|
group = "build"
|
||||||
|
dependsOn(assembleNative, checkNative)
|
||||||
|
}
|
||||||
+41
-40
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -15,18 +15,19 @@
|
|||||||
*/
|
*/
|
||||||
import java.nio.charset.StandardCharsets
|
import java.nio.charset.StandardCharsets
|
||||||
import java.util.Base64
|
import java.util.Base64
|
||||||
import org.gradle.api.Project
|
|
||||||
import org.gradle.api.publish.PublishingExtension
|
|
||||||
import org.gradle.api.publish.maven.MavenPublication
|
|
||||||
import org.gradle.api.publish.maven.tasks.AbstractPublishToMaven
|
|
||||||
import org.gradle.api.publish.maven.tasks.GenerateMavenPom
|
import org.gradle.api.publish.maven.tasks.GenerateMavenPom
|
||||||
import org.gradle.kotlin.dsl.*
|
|
||||||
import org.gradle.plugins.signing.SigningExtension
|
|
||||||
|
|
||||||
/** Configures common POM metadata (licenses, developers, SCM, etc.) for all Pkl publications. */
|
plugins {
|
||||||
fun Project.configurePklPomMetadata() {
|
`maven-publish`
|
||||||
extensions.configure<PublishingExtension> {
|
signing
|
||||||
publications.withType<MavenPublication>().configureEach {
|
}
|
||||||
|
|
||||||
|
publishing {
|
||||||
|
publications {
|
||||||
|
components.findByName("java")?.let { javaComponent ->
|
||||||
|
create<MavenPublication>("library") { from(javaComponent) }
|
||||||
|
}
|
||||||
|
withType<MavenPublication>().configureEach {
|
||||||
pom {
|
pom {
|
||||||
name.set(artifactId)
|
name.set(artifactId)
|
||||||
licenses {
|
licenses {
|
||||||
@@ -45,7 +46,7 @@ fun Project.configurePklPomMetadata() {
|
|||||||
scm {
|
scm {
|
||||||
connection.set("scm:git:git://github.com/apple/pkl.git")
|
connection.set("scm:git:git://github.com/apple/pkl.git")
|
||||||
developerConnection.set("scm:git:ssh://github.com/apple/pkl.git")
|
developerConnection.set("scm:git:ssh://github.com/apple/pkl.git")
|
||||||
val buildInfo = extensions.getByType<BuildInfo>()
|
val buildInfo = project.extensions.getByType<BuildInfo>()
|
||||||
url.set("https://github.com/apple/pkl/tree/${buildInfo.commitish}")
|
url.set("https://github.com/apple/pkl/tree/${buildInfo.commitish}")
|
||||||
}
|
}
|
||||||
issueManagement {
|
issueManagement {
|
||||||
@@ -61,9 +62,8 @@ fun Project.configurePklPomMetadata() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Configures POM validation task to check for unresolved versions and snapshots in releases. */
|
val validatePom by
|
||||||
fun Project.configurePomValidation() {
|
tasks.registering {
|
||||||
val validatePom by tasks.registering {
|
|
||||||
if (tasks.findByName("generatePomFileForLibraryPublication") == null) {
|
if (tasks.findByName("generatePomFileForLibraryPublication") == null) {
|
||||||
return@registering
|
return@registering
|
||||||
}
|
}
|
||||||
@@ -87,7 +87,7 @@ fun Project.configurePomValidation() {
|
|||||||
val unresolvedVersion = Regex("<version>.*[+,()\\[\\]].*</version>")
|
val unresolvedVersion = Regex("<version>.*[+,()\\[\\]].*</version>")
|
||||||
val matches = unresolvedVersion.findAll(text).toList()
|
val matches = unresolvedVersion.findAll(text).toList()
|
||||||
if (matches.isNotEmpty()) {
|
if (matches.isNotEmpty()) {
|
||||||
throw org.gradle.api.GradleException(
|
throw GradleException(
|
||||||
"""
|
"""
|
||||||
Found unresolved version selector(s) in generated POM:
|
Found unresolved version selector(s) in generated POM:
|
||||||
${matches.joinToString("\n") { it.groupValues[0] }}
|
${matches.joinToString("\n") { it.groupValues[0] }}
|
||||||
@@ -102,7 +102,7 @@ fun Project.configurePomValidation() {
|
|||||||
val snapshotVersion = Regex("<version>.*-SNAPSHOT</version>")
|
val snapshotVersion = Regex("<version>.*-SNAPSHOT</version>")
|
||||||
val matches = snapshotVersion.findAll(text).toList()
|
val matches = snapshotVersion.findAll(text).toList()
|
||||||
if (matches.isNotEmpty()) {
|
if (matches.isNotEmpty()) {
|
||||||
throw org.gradle.api.GradleException(
|
throw GradleException(
|
||||||
"""
|
"""
|
||||||
Found snapshot version(s) in generated POM of Pkl release version:
|
Found snapshot version(s) in generated POM of Pkl release version:
|
||||||
${matches.joinToString("\n") { it.groupValues[0] }}
|
${matches.joinToString("\n") { it.groupValues[0] }}
|
||||||
@@ -116,31 +116,32 @@ fun Project.configurePomValidation() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.named("publish") { dependsOn(validatePom) }
|
tasks.publish { dependsOn(validatePom) }
|
||||||
|
|
||||||
|
// Workaround for maven publish plugin not setting up dependencies correctly.
|
||||||
|
// Taken from https://github.com/gradle/gradle/issues/26091#issuecomment-1798137734
|
||||||
|
val dependsOnTasks = mutableListOf<String>()
|
||||||
|
|
||||||
|
tasks.withType<AbstractPublishToMaven>().configureEach {
|
||||||
|
dependsOnTasks.add(name.replace("publish", "sign").replaceAfter("Publication", ""))
|
||||||
|
dependsOn(dependsOnTasks)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Configures signing for Pkl publications. */
|
signing {
|
||||||
fun Project.configurePklSigning() {
|
// provided as env vars `ORG_GRADLE_PROJECT_signingKey` and `ORG_GRADLE_PROJECT_signingPassword`
|
||||||
// Workaround for maven publish plugin not setting up dependencies correctly.
|
// in CI.
|
||||||
// Taken from https://github.com/gradle/gradle/issues/26091#issuecomment-1798137734
|
val signingKey =
|
||||||
val dependsOnTasks = mutableListOf<String>()
|
(findProperty("signingKey") as String?)?.let {
|
||||||
|
Base64.getDecoder().decode(it).toString(StandardCharsets.US_ASCII)
|
||||||
tasks.withType<AbstractPublishToMaven>().configureEach {
|
|
||||||
dependsOnTasks.add(name.replace("publish", "sign").replaceAfter("Publication", ""))
|
|
||||||
dependsOn(dependsOnTasks)
|
|
||||||
}
|
|
||||||
|
|
||||||
extensions.configure<SigningExtension> {
|
|
||||||
// provided as env vars `ORG_GRADLE_PROJECT_signingKey` and
|
|
||||||
// `ORG_GRADLE_PROJECT_signingPassword` in CI.
|
|
||||||
val signingKey =
|
|
||||||
(findProperty("signingKey") as String?)?.let {
|
|
||||||
Base64.getDecoder().decode(it).toString(StandardCharsets.US_ASCII)
|
|
||||||
}
|
|
||||||
val signingPassword = findProperty("signingPassword") as String?
|
|
||||||
if (signingKey != null && signingPassword != null) {
|
|
||||||
useInMemoryPgpKeys(signingKey, signingPassword)
|
|
||||||
}
|
}
|
||||||
extensions.getByType<PublishingExtension>().publications.findByName("library")?.let { sign(it) }
|
val signingPassword = findProperty("signingPassword") as String?
|
||||||
|
if (signingKey != null && signingPassword != null) {
|
||||||
|
useInMemoryPgpKeys(signingKey, signingPassword)
|
||||||
}
|
}
|
||||||
|
publishing.publications.findByName("library")?.let { sign(it) }
|
||||||
|
}
|
||||||
|
|
||||||
|
artifacts {
|
||||||
|
project.tasks.findByName("javadocJar")?.let { archives(it) }
|
||||||
|
project.tasks.findByName("sourcesJar")?.let { archives(it) }
|
||||||
}
|
}
|
||||||
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -24,7 +24,7 @@ spotless {
|
|||||||
target("**/*.pkl")
|
target("**/*.pkl")
|
||||||
addStep(PklFormatterStep(pklFormatter).create())
|
addStep(PklFormatterStep(pklFormatter).create())
|
||||||
licenseHeaderFile(
|
licenseHeaderFile(
|
||||||
rootProject.file("build-logic/src/main/resources/license-header.line-comment.txt"),
|
rootProject.file("buildSrc/src/main/resources/license-header.line-comment.txt"),
|
||||||
"/// ",
|
"/// ",
|
||||||
)
|
)
|
||||||
// disable ratcheting for Pkl sources
|
// disable ratcheting for Pkl sources
|
||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
name: main
|
name: main
|
||||||
title: Main Project
|
title: Main Project
|
||||||
version: 0.32.0-dev
|
version: 0.30.2
|
||||||
prerelease: true
|
prerelease: false
|
||||||
nav:
|
nav:
|
||||||
- nav.adoc
|
- nav.adoc
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -16,8 +16,8 @@
|
|||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension
|
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("pklAllProjects")
|
pklAllProjects
|
||||||
id("pklKotlinTest")
|
pklKotlinTest
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
|
|||||||
@@ -0,0 +1,61 @@
|
|||||||
|
# This is a Gradle generated file for dependency locking.
|
||||||
|
# Manual edits can break the build and are not advised.
|
||||||
|
# This file is expected to be part of source control.
|
||||||
|
com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable
|
||||||
|
com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable
|
||||||
|
io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
|
||||||
|
io.leangen.geantyref:geantyref:1.3.16=testRuntimeClasspath
|
||||||
|
io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable
|
||||||
|
io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable
|
||||||
|
net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata
|
||||||
|
org.assertj:assertj-core:3.27.6=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||||
|
org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||||
|
org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||||
|
org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||||
|
org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable
|
||||||
|
org.graalvm.polyglot:polyglot:25.0.0=testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:collections:25.0.0=testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:graal-sdk:25.0.0=testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:nativeimage:25.0.0=testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:word:25.0.0=testRuntimeClasspath
|
||||||
|
org.graalvm.truffle:truffle-api:25.0.0=testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
|
||||||
|
org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains:annotations:13.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-engine:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-commons:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-engine:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
|
||||||
|
org.junit:junit-bom:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.msgpack:msgpack-core:0.9.8=testRuntimeClasspath
|
||||||
|
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.organicdesign:Paguro:3.10.3=testRuntimeClasspath
|
||||||
|
org.snakeyaml:snakeyaml-engine:2.10=testRuntimeClasspath
|
||||||
|
empty=annotationProcessor,apiDependenciesMetadata,compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,intransitiveDependenciesMetadata,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,runtimeClasspath,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
|
||||||
@@ -3,10 +3,10 @@
|
|||||||
// the following attributes must be updated immediately before a release
|
// the following attributes must be updated immediately before a release
|
||||||
|
|
||||||
// pkl version corresponding to current git commit without -dev suffix or git hash
|
// pkl version corresponding to current git commit without -dev suffix or git hash
|
||||||
:pkl-version-no-suffix: 0.32.0
|
:pkl-version-no-suffix: 0.30.2
|
||||||
// tells whether pkl version corresponding to current git commit
|
// tells whether pkl version corresponding to current git commit
|
||||||
// is a release version (:is-release-version: '') or dev version (:!is-release-version:)
|
// is a release version (:is-release-version: '') or dev version (:!is-release-version:)
|
||||||
:!is-release-version:
|
:is-release-version: ''
|
||||||
|
|
||||||
// the remaining attributes do not need to be updated regularly
|
// the remaining attributes do not need to be updated regularly
|
||||||
|
|
||||||
@@ -68,7 +68,6 @@ endif::[]
|
|||||||
:uri-pkldoc-example: {uri-pkl-examples-tree}/pkldoc
|
:uri-pkldoc-example: {uri-pkl-examples-tree}/pkldoc
|
||||||
|
|
||||||
:uri-stdlib-baseModule: {uri-pkl-stdlib-docs}/base
|
:uri-stdlib-baseModule: {uri-pkl-stdlib-docs}/base
|
||||||
:uri-stdlib-CommandModule: {uri-pkl-stdlib-docs}/Command
|
|
||||||
:uri-stdlib-analyzeModule: {uri-pkl-stdlib-docs}/analyze
|
:uri-stdlib-analyzeModule: {uri-pkl-stdlib-docs}/analyze
|
||||||
:uri-stdlib-jsonnetModule: {uri-pkl-stdlib-docs}/jsonnet
|
:uri-stdlib-jsonnetModule: {uri-pkl-stdlib-docs}/jsonnet
|
||||||
:uri-stdlib-reflectModule: {uri-pkl-stdlib-docs}/reflect
|
:uri-stdlib-reflectModule: {uri-pkl-stdlib-docs}/reflect
|
||||||
@@ -78,10 +77,8 @@ endif::[]
|
|||||||
:uri-stdlib-pklbinaryModule: {uri-pkl-stdlib-docs}/pklbinary
|
:uri-stdlib-pklbinaryModule: {uri-pkl-stdlib-docs}/pklbinary
|
||||||
:uri-stdlib-yamlModule: {uri-pkl-stdlib-docs}/yaml
|
:uri-stdlib-yamlModule: {uri-pkl-stdlib-docs}/yaml
|
||||||
:uri-stdlib-YamlParser: {uri-stdlib-yamlModule}/Parser
|
:uri-stdlib-YamlParser: {uri-stdlib-yamlModule}/Parser
|
||||||
:uri-stdlib-projectModule: {uri-pkl-stdlib-docs}/Project
|
|
||||||
:uri-stdlib-evaluatorSettingsModule: {uri-pkl-stdlib-docs}/EvaluatorSettings
|
:uri-stdlib-evaluatorSettingsModule: {uri-pkl-stdlib-docs}/EvaluatorSettings
|
||||||
:uri-stdlib-evaluatorSettingsHttpClass: {uri-stdlib-evaluatorSettingsModule}/Http
|
:uri-stdlib-evaluatorSettingsHttpClass: {uri-stdlib-evaluatorSettingsModule}/Http
|
||||||
:uri-stdlib-evaluatorSettingsExternalReaderClass: {uri-stdlib-evaluatorSettingsModule}/ExternalReader
|
|
||||||
:uri-stdlib-Boolean: {uri-stdlib-baseModule}/Boolean
|
:uri-stdlib-Boolean: {uri-stdlib-baseModule}/Boolean
|
||||||
:uri-stdlib-xor: {uri-stdlib-baseModule}/Boolean#xor()
|
:uri-stdlib-xor: {uri-stdlib-baseModule}/Boolean#xor()
|
||||||
:uri-stdlib-implies: {uri-stdlib-baseModule}/Boolean#implies()
|
:uri-stdlib-implies: {uri-stdlib-baseModule}/Boolean#implies()
|
||||||
@@ -153,13 +150,6 @@ endif::[]
|
|||||||
:uri-stdlib-Resource: {uri-stdlib-baseModule}/Resource
|
:uri-stdlib-Resource: {uri-stdlib-baseModule}/Resource
|
||||||
:uri-stdlib-outputFiles: {uri-stdlib-baseModule}/ModuleOutput#files
|
:uri-stdlib-outputFiles: {uri-stdlib-baseModule}/ModuleOutput#files
|
||||||
:uri-stdlib-FileOutput: {uri-stdlib-baseModule}/FileOutput
|
:uri-stdlib-FileOutput: {uri-stdlib-baseModule}/FileOutput
|
||||||
:uri-stdlib-Annotation: {uri-stdlib-baseModule}/Annotation
|
|
||||||
:uri-stdlib-ConvertProperty: {uri-stdlib-baseModule}/ConvertProperty
|
|
||||||
:uri-stdlib-Command-Flag: {uri-stdlib-CommandModule}/Flag
|
|
||||||
:uri-stdlib-Command-BooleanFlag: {uri-stdlib-CommandModule}/BooleanFlag
|
|
||||||
:uri-stdlib-Command-CountedFlag: {uri-stdlib-CommandModule}/CountedFlag
|
|
||||||
:uri-stdlib-Command-Argument: {uri-stdlib-CommandModule}/Argument
|
|
||||||
:uri-stdlib-Command-Import: {uri-stdlib-CommandModule}/Import
|
|
||||||
|
|
||||||
:uri-messagepack: https://msgpack.org/index.html
|
:uri-messagepack: https://msgpack.org/index.html
|
||||||
:uri-messagepack-spec: https://github.com/msgpack/msgpack/blob/master/spec.md
|
:uri-messagepack-spec: https://github.com/msgpack/msgpack/blob/master/spec.md
|
||||||
|
|||||||
@@ -210,11 +210,6 @@ class Http {
|
|||||||
///
|
///
|
||||||
/// Each rewrite must start with `http://` or `https://`, and must end with `/`.
|
/// Each rewrite must start with `http://` or `https://`, and must end with `/`.
|
||||||
rewrites: Mapping<String, String>?
|
rewrites: Mapping<String, String>?
|
||||||
|
|
||||||
/// HTTP headers.
|
|
||||||
/// Each entry key is a glob pattern that is matched against outbound request URLs.
|
|
||||||
/// Each value is a map of headers that is added to the matching request.
|
|
||||||
headers: Mapping<String, Mapping<String, Listing<String>>>?
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Settings that control how Pkl talks to HTTP proxies.
|
/// Settings that control how Pkl talks to HTTP proxies.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import org.pkl.config.java.JavaType;
|
|||||||
import org.pkl.core.ModuleSource;
|
import org.pkl.core.ModuleSource;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
@SuppressWarnings({"unused", "NewClassNamingConvention"})
|
@SuppressWarnings("unused")
|
||||||
// the pkl-jvm-examples repo has a similar example
|
// the pkl-jvm-examples repo has a similar example
|
||||||
public class JavaConfigExample {
|
public class JavaConfigExample {
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ For Spring Boot applications, and for users of `pkl-config-java` compiling the g
|
|||||||
.--non-null-annotation
|
.--non-null-annotation
|
||||||
[%collapsible]
|
[%collapsible]
|
||||||
====
|
====
|
||||||
Default: `org.jspecify.annotations.NonNull` +
|
Default: `org.pkl.config.java.mapper.NonNull` +
|
||||||
Fully qualified name of the annotation type to use for annotating non-null types. +
|
Fully qualified name of the annotation type to use for annotating non-null types. +
|
||||||
The specified annotation type must be annotated with `@java.lang.annotation.Target(ElementType.TYPE_USE)`
|
The specified annotation type must be annotated with `@java.lang.annotation.Target(ElementType.TYPE_USE)`
|
||||||
or the generated code may not compile.
|
or the generated code may not compile.
|
||||||
|
|||||||
@@ -255,7 +255,8 @@ String literals are enclosed in double quotes:
|
|||||||
"Hello, World!"
|
"Hello, World!"
|
||||||
----
|
----
|
||||||
|
|
||||||
TIP: Except for a few minor differences footnote:[Pkl's string literals have fewer character escape sequences and stricter rules for line indentation in multiline strings.],
|
TIP: Except for a few minor differences footnote:[Pkl's string literals have fewer character escape sequences,
|
||||||
|
have stricter rules for line indentation in multiline strings, and do not have a line continuation character.],
|
||||||
String literals have the same syntax and semantics as in Swift 5. Learn one of them, know both of them!
|
String literals have the same syntax and semantics as in Swift 5. Learn one of them, know both of them!
|
||||||
|
|
||||||
Inside a string literal, the following character escape sequences have special meaning:
|
Inside a string literal, the following character escape sequences have special meaning:
|
||||||
@@ -361,23 +362,6 @@ str = """
|
|||||||
"""
|
"""
|
||||||
----
|
----
|
||||||
|
|
||||||
To prevent line breaks from becoming part of the string's value, use a backslash (`\`) to end those lines.
|
|
||||||
|
|
||||||
[source%tested,{pkl}]
|
|
||||||
----
|
|
||||||
str = """
|
|
||||||
Although the Dodo is extinct, \
|
|
||||||
the species will be remembered.
|
|
||||||
"""
|
|
||||||
----
|
|
||||||
|
|
||||||
This multiline string is equivalent to the following single-line string:
|
|
||||||
|
|
||||||
[source%parsed,{pkl-expr}]
|
|
||||||
----
|
|
||||||
"Although the Dodo is extinct, the species will be remembered."
|
|
||||||
----
|
|
||||||
|
|
||||||
[[custom-string-delimiters]]
|
[[custom-string-delimiters]]
|
||||||
=== Custom String Delimiters
|
=== Custom String Delimiters
|
||||||
|
|
||||||
@@ -2752,10 +2736,6 @@ output {
|
|||||||
|
|
||||||
For more on path-based converters, see {uri-stdlib-PcfRenderer-converters}[PcfRenderer.converters].
|
For more on path-based converters, see {uri-stdlib-PcfRenderer-converters}[PcfRenderer.converters].
|
||||||
|
|
||||||
Special <<annotations,Annotations>> may also be used to influence how class properties are rendered.
|
|
||||||
The `ConvertProperty` annotation (and subclasses of it) are automatically applied during.
|
|
||||||
For more on annotation-based converters, see link:{uri-stdlib-ConvertProperty}[ConvertProperty].
|
|
||||||
|
|
||||||
Sometimes it is useful to directly compute the final module output, bypassing `output.value` and `output.converters`.
|
Sometimes it is useful to directly compute the final module output, bypassing `output.value` and `output.converters`.
|
||||||
To do so, set the link:{uri-stdlib-baseModule}/ModuleOutput#text[output.text] property to a String value:
|
To do so, set the link:{uri-stdlib-baseModule}/ModuleOutput#text[output.text] property to a String value:
|
||||||
|
|
||||||
@@ -3223,7 +3203,6 @@ This section discusses language features that are generally more relevant to tem
|
|||||||
<<module-keyword,`module` Keyword>> +
|
<<module-keyword,`module` Keyword>> +
|
||||||
<<glob-patterns,Glob Patterns>> +
|
<<glob-patterns,Glob Patterns>> +
|
||||||
<<doc-comments,Doc Comments>> +
|
<<doc-comments,Doc Comments>> +
|
||||||
<<annotations,Annotations>> +
|
|
||||||
<<name-resolution,Name Resolution>> +
|
<<name-resolution,Name Resolution>> +
|
||||||
<<reserved-keywords,Reserved Keywords>> +
|
<<reserved-keywords,Reserved Keywords>> +
|
||||||
<<blank-identifiers,Blank Identifiers>> +
|
<<blank-identifiers,Blank Identifiers>> +
|
||||||
@@ -3977,7 +3956,6 @@ emailList: List<EmailAddress> // <2>
|
|||||||
<1> equivalent to `email: String(contains("@"))` for type checking purposes
|
<1> equivalent to `email: String(contains("@"))` for type checking purposes
|
||||||
<2> equivalent to `emailList: List<String(contains("@"))>` for type checking purposes
|
<2> equivalent to `emailList: List<String(contains("@"))>` for type checking purposes
|
||||||
|
|
||||||
[[nullable-types]]
|
|
||||||
==== Nullable Types
|
==== Nullable Types
|
||||||
|
|
||||||
Class types such as `Bird` (see above) do not admit `null` values.
|
Class types such as `Bird` (see above) do not admit `null` values.
|
||||||
@@ -4938,7 +4916,7 @@ animals {
|
|||||||
==== Receiver
|
==== Receiver
|
||||||
|
|
||||||
The receiver is the bottom-most object in the <<prototype-chain>>.
|
The receiver is the bottom-most object in the <<prototype-chain>>.
|
||||||
That means that, within the context of an amending object, the receiver is the amending object.
|
That means that, within the context of an amending object, the reciever is the amending object.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
[source,pkl]
|
[source,pkl]
|
||||||
@@ -5059,6 +5037,8 @@ in the context of that module.
|
|||||||
[[glob-patterns]]
|
[[glob-patterns]]
|
||||||
=== Glob Patterns
|
=== Glob Patterns
|
||||||
|
|
||||||
|
Resources and modules may be imported at the same time by globbing with the <<globbed-imports>> and <<globbed-reads>> features.
|
||||||
|
|
||||||
Pkl's glob patterns mostly follow the rules described by link:{uri-glob-7}[glob(7)], with the following differences:
|
Pkl's glob patterns mostly follow the rules described by link:{uri-glob-7}[glob(7)], with the following differences:
|
||||||
|
|
||||||
* `*` includes names that start with a dot (`.`).
|
* `*` includes names that start with a dot (`.`).
|
||||||
@@ -5352,7 +5332,7 @@ Module-level members can be prefixed with `module.` to resolve name conflicts:
|
|||||||
/// See [module.pigeon].
|
/// See [module.pigeon].
|
||||||
----
|
----
|
||||||
|
|
||||||
To exclude a member from documentation and code completion, <<annotations,annotate>> it with `@Unlisted`:
|
To exclude a member from documentation and code completion, annotate it with `@Unlisted`:
|
||||||
|
|
||||||
[source%parsed,{pkl}]
|
[source%parsed,{pkl}]
|
||||||
----
|
----
|
||||||
@@ -5369,47 +5349,6 @@ The following member links are marked up as code but not rendered as links:footn
|
|||||||
|
|
||||||
Nevertheless, it is a good practice to use member links in the above cases.
|
Nevertheless, it is a good practice to use member links in the above cases.
|
||||||
|
|
||||||
[[annotations]]
|
|
||||||
=== Annotations
|
|
||||||
|
|
||||||
Annotations are a mechanism to provides extra metadata about Pkl <<modules,modules>>, <<classes,classes>>, <<methods,methods>>, and <<properties,properties>>.
|
|
||||||
They provide metadata about the type or member they annotate that can be via link:{uri-stdlib-reflectModule}[reflection] or Pkl's Java APIs.
|
|
||||||
The most common use cases for annotations are to add metadata to influence behavior of xref:pkl-doc:index.adoc[Pkldoc], code generation tools, or <<module-output,module output>>.
|
|
||||||
|
|
||||||
Annotations are regular Pkl objects whose class extends link:{uri-stdlib-Annotation}[`Annotation`].
|
|
||||||
Annotation instances are defined similarly to regular <<classes, class instances>>, but instead of using the `new` keyword the class name is prefixed with `@`.
|
|
||||||
The object body may be omitted if an annotation's class has no properties or the declared annotation does not override any of the class's default values
|
|
||||||
Multiple annotations may be defined on a member.
|
|
||||||
If the annotated member has a <<doc-comments,doc comment>>, the annotation is defined between the comment and the member.
|
|
||||||
|
|
||||||
[source%tested,{pkl}]
|
|
||||||
----
|
|
||||||
/// Module doc comment
|
|
||||||
@SomeAnnotation // <1>
|
|
||||||
module myModule
|
|
||||||
|
|
||||||
class SomeAnnotation extends Annotation { // <2>
|
|
||||||
description: String = "some annotation"
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Module doc comment
|
|
||||||
@SomeAnnotation // <3>
|
|
||||||
class Bird {
|
|
||||||
@SomeAnnotation { description = "some property" } // <4>
|
|
||||||
name: String
|
|
||||||
|
|
||||||
@SomeAnnotation { description = "some method" } // <5>
|
|
||||||
@Unlisted // <6>
|
|
||||||
function greet(greeting: String): String = "\(greeting), \(name)!"
|
|
||||||
}
|
|
||||||
----
|
|
||||||
<1> An annotation applied to a module. The annotation(s) must precede the `module` clause and follow the doc comment. The object body is omitted.
|
|
||||||
<2> The definition of an annotation class.
|
|
||||||
<3> An annotation appied to a class. The object body is omitted.
|
|
||||||
<4> An annotation applied to a property. The object body is included because the `description` property is overridden.
|
|
||||||
<5> An annotation applied to a method. The object body is included because the `description` property is overridden.
|
|
||||||
<6> A second annotation applied to the same method.
|
|
||||||
|
|
||||||
[[name-resolution]]
|
[[name-resolution]]
|
||||||
=== Name Resolution
|
=== Name Resolution
|
||||||
|
|
||||||
|
|||||||
@@ -454,16 +454,6 @@ output {
|
|||||||
----
|
----
|
||||||
====
|
====
|
||||||
|
|
||||||
[[power-assertions-eval]]
|
|
||||||
.--power-assertions, --no-power-assertions
|
|
||||||
[%collapsible]
|
|
||||||
====
|
|
||||||
Default: enabled +
|
|
||||||
Enable or disable power assertions for detailed assertion failure messages.
|
|
||||||
When enabled, type constraint failures will show intermediate values in the assertion expression.
|
|
||||||
Use `--no-power-assertions` to disable this feature if you prefer simpler output or better performance.
|
|
||||||
====
|
|
||||||
|
|
||||||
This command also takes <<common-options, common options>>.
|
This command also takes <<common-options, common options>>.
|
||||||
|
|
||||||
[[command-server]]
|
[[command-server]]
|
||||||
@@ -489,9 +479,7 @@ If these are the only failures, the command exits with exit code 10.
|
|||||||
Otherwise, failures result in exit code 1.
|
Otherwise, failures result in exit code 1.
|
||||||
|
|
||||||
<modules>::
|
<modules>::
|
||||||
The absolute or relative URIs of the modules to test.
|
The absolute or relative URIs of the modules to test. Relative URIs are resolved against the working directory.
|
||||||
The module must extend `pkl:test`.
|
|
||||||
Relative URIs are resolved against the working directory.
|
|
||||||
|
|
||||||
==== Options
|
==== Options
|
||||||
|
|
||||||
@@ -536,42 +524,6 @@ Force generation of expected examples. +
|
|||||||
The old expected files will be deleted if present.
|
The old expected files will be deleted if present.
|
||||||
====
|
====
|
||||||
|
|
||||||
[[power-assertions-test]]
|
|
||||||
.--power-assertions, --no-power-assertions
|
|
||||||
[%collapsible]
|
|
||||||
====
|
|
||||||
Default: enabled +
|
|
||||||
Enable or disable power assertions for detailed assertion failure messages.
|
|
||||||
When enabled, test failures will show intermediate values in the assertion expression, making it easier to understand why a test failed.
|
|
||||||
Use `--no-power-assertions` to disable this feature if you prefer simpler output.
|
|
||||||
====
|
|
||||||
|
|
||||||
[[test-reporter]]
|
|
||||||
.--test-reporter
|
|
||||||
[%collapsible]
|
|
||||||
====
|
|
||||||
Default: `spec` +
|
|
||||||
Example: `--test-reporter minimal` +
|
|
||||||
Which test reporter to use for CLI output. Possible values are `spec` and `minimal`.
|
|
||||||
====
|
|
||||||
|
|
||||||
This command also takes <<common-options, common options>>.
|
|
||||||
|
|
||||||
[[command-run]]
|
|
||||||
=== `pkl run`
|
|
||||||
|
|
||||||
*Synopsis:* `pkl run [<options>] [<module>] [<command options>]`
|
|
||||||
|
|
||||||
Evaluate a <<cli-tools,CLI command>> defined by `<module>`.
|
|
||||||
|
|
||||||
<module>::
|
|
||||||
The absolute or relative URIs of the command module to run.
|
|
||||||
The module must extend `pkl:Command`.
|
|
||||||
Relative URIs are resolved against the working directory.
|
|
||||||
|
|
||||||
<command options>::
|
|
||||||
Additional CLI options and arguments defined by `<module>`.
|
|
||||||
|
|
||||||
This command also takes <<common-options, common options>>.
|
This command also takes <<common-options, common options>>.
|
||||||
|
|
||||||
[[command-repl]]
|
[[command-repl]]
|
||||||
@@ -676,14 +628,6 @@ Force generation of expected examples. +
|
|||||||
The old expected files will be deleted if present.
|
The old expected files will be deleted if present.
|
||||||
====
|
====
|
||||||
|
|
||||||
.--test-reporter
|
|
||||||
[%collapsible]
|
|
||||||
====
|
|
||||||
Default: `spec` +
|
|
||||||
Example: `--test-reporter minimal` +
|
|
||||||
Which test reporter to use for CLI output. Possible values are `spec` and `minimal`.
|
|
||||||
====
|
|
||||||
|
|
||||||
This command also takes <<common-options,common options>>.
|
This command also takes <<common-options,common options>>.
|
||||||
|
|
||||||
[[command-project-resolve]]
|
[[command-project-resolve]]
|
||||||
@@ -797,9 +741,9 @@ pkl shell-completion zsh
|
|||||||
This command formats or checks formatting of Pkl files. +
|
This command formats or checks formatting of Pkl files. +
|
||||||
Exit codes:
|
Exit codes:
|
||||||
|
|
||||||
* 0: No violations found or files were updated.
|
* 0: No violations found.
|
||||||
* 1: An unexpected error happened (ex.: IO error)
|
* 1: An unexpected error happened (ex.: IO error)
|
||||||
* 11: Violations were found (when running without `--write`).
|
* 11: Violations were found.
|
||||||
|
|
||||||
If the path is a directory, recursively looks for files with a `.pkl` extension, or files named `PklProject`.
|
If the path is a directory, recursively looks for files with a `.pkl` extension, or files named `PklProject`.
|
||||||
|
|
||||||
@@ -836,7 +780,7 @@ Write the path of files with formatting violations to stdout.
|
|||||||
[[common-options]]
|
[[common-options]]
|
||||||
=== Common options
|
=== Common options
|
||||||
|
|
||||||
The <<command-eval>>, <<command-test>>, <<command-run>>, <<command-repl>>, <<command-project-resolve>>, <<command-project-package>>, <<command-download-package>>, and <<command-analyze-imports>> commands support the following common options:
|
The <<command-eval>>, <<command-test>>, <<command-repl>>, <<command-project-resolve>>, <<command-project-package>>, <<command-download-package>>, and <<command-analyze-imports>> commands support the following common options:
|
||||||
|
|
||||||
include::../../pkl-cli/partials/cli-common-options.adoc[]
|
include::../../pkl-cli/partials/cli-common-options.adoc[]
|
||||||
|
|
||||||
@@ -937,310 +881,6 @@ If multiple module outputs are written to the same file, or to standard output,
|
|||||||
By default, module outputs are separated with `---`, as in a YAML stream.
|
By default, module outputs are separated with `---`, as in a YAML stream.
|
||||||
The separator can be customized using the `--module-output-separator` option.
|
The separator can be customized using the `--module-output-separator` option.
|
||||||
|
|
||||||
[[cli-tools]]
|
|
||||||
== Implementing CLI Tools
|
|
||||||
|
|
||||||
CLI tools can be implemented in Pkl by modules extending the `pkl:Command` module.
|
|
||||||
With `pkl:Command`, you can define a script in Pkl that is executed by your shell, providing a better CLI experience.
|
|
||||||
|
|
||||||
Regular evaluation requires use of xref:language-reference:index.adoc#resources[resources] like properties and evironment variables to provide parameters:
|
|
||||||
[source,bash]
|
|
||||||
----
|
|
||||||
$ pkl eval script.pkl -p username=me -p password=password
|
|
||||||
----
|
|
||||||
|
|
||||||
Commands provide a native, familiar CLI experience:
|
|
||||||
[source,bash]
|
|
||||||
----
|
|
||||||
$ pkl run script.pkl --username=admin --password=hunter2
|
|
||||||
$ ./script.pkl --username=admin --password=hunter2
|
|
||||||
----
|
|
||||||
|
|
||||||
Pkl commands have a few properties that distinguish them from standard module evaluation:
|
|
||||||
|
|
||||||
* Users provide input to commands using familiar command line idioms, providing a better experience than deriving inputs from xref:language-reference:index.adoc#resources[resources] like external properties or environment variables.
|
|
||||||
* Commands can dynamically import modules when they are specified as command line options.
|
|
||||||
* Commands may write to standard output (via `output.text` or `output.bytes`) and the filesystem (via `output.files`) in the same evaluation.
|
|
||||||
* Command file output may write to any absolute path (not only relative to the `--multiple-file-output-path` option).
|
|
||||||
** Relative output paths are written relative to the current working directory (or `--working-dir`, if specified).
|
|
||||||
** Paths of output file are printed to the command's standard error.
|
|
||||||
|
|
||||||
IMPORTANT: Users of `pkl run` must be aware of the security implications of this behavior.
|
|
||||||
Using `pkl eval` prevents accidental overwrites by not allowing absolute paths, but `pkl run` does not offer this protection.
|
|
||||||
Commands may write to any path the invoking user has permissions to modify.
|
|
||||||
|
|
||||||
Commands are implemented as regular modules and declare their supported command line flags and positional arguments using a class with annotated properties.
|
|
||||||
|
|
||||||
=== Defining Commands
|
|
||||||
|
|
||||||
Commands are defined by creating a module that extends `pkl:Command`:
|
|
||||||
|
|
||||||
[source,pkl%tested]
|
|
||||||
.my-tool.pkl
|
|
||||||
----
|
|
||||||
/// This doc comment becomes part of the command's CLI help!
|
|
||||||
/// Markdown formatting is **allowed!**
|
|
||||||
extends "pkl:Command"
|
|
||||||
|
|
||||||
options: Options // <1>
|
|
||||||
|
|
||||||
class Options {
|
|
||||||
// Define CLI flags/arguments...
|
|
||||||
}
|
|
||||||
|
|
||||||
// Regular module code...
|
|
||||||
----
|
|
||||||
<1> Re-declaration of the `options` property's type.
|
|
||||||
|
|
||||||
Like `pkl eval`, when a command completes without an evaluation error the process exits successfully (exit code 0).
|
|
||||||
Commands can return a failure using `throw` (exit code 1), but otherwise may not control the exit code.
|
|
||||||
|
|
||||||
Other than the differences listed above, commands behave like any other Pkl module.
|
|
||||||
For example, there is no way to execute other programs or make arbitrary HTTP requests.
|
|
||||||
If additional functionality is desired, xref:language-reference:index.adoc#external-readers[external readers] may be used to extends Pkl's capabilities.
|
|
||||||
|
|
||||||
=== Command Options
|
|
||||||
|
|
||||||
Each property of a command's options class becomes a command line option.
|
|
||||||
Properties with the `local`, `hidden`, `fixed`, and/or `const` modifiers are not parsed as options
|
|
||||||
A property's doc comment, if present, becomes the corresponding option's CLI help description.
|
|
||||||
Doc comments are interpreted as Markdown text and formatted nicely when displayed to users.
|
|
||||||
Properties must have xref:language-reference:index.adoc#type-annotations[type annotations] to determine how they are parsed.
|
|
||||||
|
|
||||||
Properties may be xref:language-reference:index.adoc#annotations[annotated] to influence how they behave:
|
|
||||||
|
|
||||||
* Properties annotated with link:{uri-stdlib-Command-Flag}[`@Flag`] become CLI flags named `--<property name>` that accept a value.
|
|
||||||
* `Boolean` properties annotated with link:{uri-stdlib-Command-BooleanFlag}[`@BooleanFlag`] become CLI flags named `--<property name>` and `--no-<property name>` that result in `true` and `false` values, respectively.
|
|
||||||
* `Int` (and type aliases of `Int`) properties annotated with link:{uri-stdlib-Command-CountedFlag}[`@CountedFlag`] become CLI flags named `--<property name>` that produce a value equal to the number of times they are present on the command line.
|
|
||||||
* Properties annotated with link:{uri-stdlib-Command-Argument}[`@Argument`] become positional CLI arguments and are parsed in the order they appear in the class.
|
|
||||||
* Properties with no annotation are treated the same as `@Flag` with no further customization.
|
|
||||||
|
|
||||||
Flag options may set a `shortName` property to define a single-character abbreviation (`-<short name>`).
|
|
||||||
Flag abbreviations may be combined (e.g. `-a -b -v -v -q some-value` is equivalent to `-abvvq some-value`).
|
|
||||||
|
|
||||||
[CAUTION]
|
|
||||||
====
|
|
||||||
Flag names and short names may not conflict with <<common-options,common options>>.
|
|
||||||
Future versions of Pkl may introduce additional common options and the names of these options will become forbidden for use in `pkl:Command`.
|
|
||||||
Thus, any Pkl release that adds common options may introduce breaking changes for commands.
|
|
||||||
|
|
||||||
While unfortunate, this behavior eliminates potentially dangerous or misleading ambiguities between Pkl-defined and user-defined options.
|
|
||||||
====
|
|
||||||
|
|
||||||
A `@Flag` or `@Argument` property's type annotation determines how it is converted from the raw string value:
|
|
||||||
|
|
||||||
|===
|
|
||||||
|Type |Behavior
|
|
||||||
|
|
||||||
|`String`
|
|
||||||
|Value is used verbatim.
|
|
||||||
|
|
||||||
|`Char`
|
|
||||||
|Value is used verbatim but must be exactly one character.
|
|
||||||
|
|
||||||
|`Boolean`
|
|
||||||
|True values: `true`, `t`, `1`, `yes`, `y`, `on`
|
|
||||||
|
|
||||||
False values: `false`, `f`, `0`, `no`, `n`, `off`
|
|
||||||
|
|
||||||
|`Number`
|
|
||||||
|Value is parsed as an `Int` if possible, otherwise parsed as `Float`.
|
|
||||||
|
|
||||||
|`Float`
|
|
||||||
|Value is parsed as a `Float`.
|
|
||||||
|
|
||||||
|`Int`
|
|
||||||
|Value is parsed as a `Int`.
|
|
||||||
|
|
||||||
|`Int8`, `Int16`, `Int32`, `UInt`, `UInt8`, `UInt16`, `UInt32`
|
|
||||||
|Value is parsed as a `Int` and must be within the type's range.
|
|
||||||
|
|
||||||
|xref:language-reference:index.adoc#union-types[Union] of xref:language-reference:index.adoc#string-literal-types[string literals]
|
|
||||||
|Value is used verbatim but must match a member of the union.
|
|
||||||
|
|
||||||
|`List<Element>`, `Listing<Element>`, `Set<Element>`
|
|
||||||
|Each occurrence of the option becomes an element of the final value.
|
|
||||||
|
|
||||||
`Element` values are parsed based on the above primitive types.
|
|
||||||
|
|
||||||
|`Map<Key, Value>`, `Mapping<Key, Value>`
|
|
||||||
|Each occurrence of the option becomes an entry of the final value.
|
|
||||||
|
|
||||||
Values are split on the first `"="` character; the first part is parsed as `Key` and the second as `Value`, both based on the above primitive types.
|
|
||||||
|
|
||||||
|`Pair<First, Second>`
|
|
||||||
|Value is split on the first `"="` character; the first part is parsed as `First` and the second as `Second`, both based on the above primitive types.
|
|
||||||
|
|
||||||
|===
|
|
||||||
|
|
||||||
If a flag that accepts only a single value is provided multiple times, the last occurrence becomes the final value.
|
|
||||||
|
|
||||||
Only a single positional argument accepting multiple values is permitted per command.
|
|
||||||
|
|
||||||
A property with a xref:language-reference:index.adoc#nullable-types[nullable type] is optional and, if not specified on the command line, will have value `null`.
|
|
||||||
Properties with default values are also optional.
|
|
||||||
Type constraints are evaluated when the command is executed, so additional restrictions on option values are enforced at runtime.
|
|
||||||
|
|
||||||
==== Custom Option Conversion and Aggregation
|
|
||||||
|
|
||||||
A property may be annotated with any type if its `@Flag` or `@Argument` annotation sets the `convert` or `transformAll` properties.
|
|
||||||
The `convert` property is a xref:language-reference:index.adoc#anonymous-functions[function] that overrides how _each_ raw option value is interpreted.
|
|
||||||
The `transformAll` property is a function that overrides how _all_ parsed option values become the final property value.
|
|
||||||
|
|
||||||
The `convert` and `transformAll` functions may return an pkldoc:Import[pkl:Command] value that is replaced during option parsing with the actual value of the module specified by its `uri` property.
|
|
||||||
If `glob` is `true`, the replacement value is a `Mapping`; its keys are the _absolute_ URIs of the matched modules and its values are the actual module values.
|
|
||||||
When specifying glob import options on the command line, it is often necessary to quote the value to avoid it being interpreted by the shell.
|
|
||||||
If the return value of `convert` or `transformAll` is a `List`, `Set`, `Map`, or `Pair`, each contained value (elements and entry keys/values) that are `Import` values are also replaced.
|
|
||||||
|
|
||||||
[IMPORTANT]
|
|
||||||
====
|
|
||||||
If an option has type `Mapping<String, «some module type»>` and should accept a single glob pattern value, the option's annotation must also set `multiple = false` to override the default behavior of `Mapping` options accepting multiple values.
|
|
||||||
Example:
|
|
||||||
[source%parsed,{pkl}]
|
|
||||||
----
|
|
||||||
@Flag {
|
|
||||||
convert = (it) -> new Import { uri = it; glob = true }
|
|
||||||
multiple = false
|
|
||||||
}
|
|
||||||
birds: Mapping<String, Bird>
|
|
||||||
----
|
|
||||||
|
|
||||||
If multiple glob patterns values should be accepted and merged, `transformAll` may be used to merge every glob-imported `Mapping`:
|
|
||||||
[source%parsed,{pkl}]
|
|
||||||
----
|
|
||||||
@Flag {
|
|
||||||
convert = (it) -> new Import { uri = it; glob = true }
|
|
||||||
transformAll =
|
|
||||||
(values) -> values.fold(new Mapping {}, (result, element) ->
|
|
||||||
(result) { ...element }
|
|
||||||
)
|
|
||||||
}
|
|
||||||
birds: Mapping<String, Bird>
|
|
||||||
----
|
|
||||||
====
|
|
||||||
|
|
||||||
=== Subcommands
|
|
||||||
|
|
||||||
Like many other command line libraries, `pkl:Command` allows building commands into a hierarchy with a root command and subcommands:
|
|
||||||
|
|
||||||
[source,pkl%tested]
|
|
||||||
.my-tool.pkl
|
|
||||||
----
|
|
||||||
extends "pkl:Command"
|
|
||||||
|
|
||||||
command {
|
|
||||||
subcommands {
|
|
||||||
import("subcommand1.pkl")
|
|
||||||
import("subcommand2.pkl")
|
|
||||||
for (_, subcommand in import*("./subcommands/*.pkl")) {
|
|
||||||
subcommand
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
----
|
|
||||||
|
|
||||||
[source,pkl%tested]
|
|
||||||
.subcommand1.pkl
|
|
||||||
----
|
|
||||||
extends "pkl:Command"
|
|
||||||
|
|
||||||
import "my-tool.pkl"
|
|
||||||
|
|
||||||
parent: `my-tool` // <1>
|
|
||||||
|
|
||||||
// Regular module code...
|
|
||||||
----
|
|
||||||
<1> Optional; asserts that this is a subcommand of `my-tool` and simplifies accessing properties and options of the parent command
|
|
||||||
|
|
||||||
Each element of `subcommands` must have a unique value for `command.name`.
|
|
||||||
|
|
||||||
=== Testing Commands
|
|
||||||
|
|
||||||
Command modules are normal Pkl modules, so they may be imported and used like any other module.
|
|
||||||
This is particularly helpful when testing commands, as the command's `options` and `parent` properties can be populated by test code.
|
|
||||||
|
|
||||||
Testing the above command and subcommand might look like this:
|
|
||||||
|
|
||||||
[source,pkl%tested]
|
|
||||||
----
|
|
||||||
amends "pkl:test"
|
|
||||||
|
|
||||||
import "my-tool.pkl"
|
|
||||||
import "subcommand1.pkl"
|
|
||||||
|
|
||||||
examples {
|
|
||||||
["Test my-tool"] {
|
|
||||||
(`my-tool`) {
|
|
||||||
options {
|
|
||||||
// Set my-tool options here...
|
|
||||||
}
|
|
||||||
}.output.text
|
|
||||||
}
|
|
||||||
["Test subcommand1"] {
|
|
||||||
(subcommand1) {
|
|
||||||
parent { // this amends `my-tool`
|
|
||||||
options {
|
|
||||||
// Set my-tool options here...
|
|
||||||
}
|
|
||||||
}
|
|
||||||
options {
|
|
||||||
// Set subcommand options here...
|
|
||||||
}
|
|
||||||
}.output.text
|
|
||||||
}
|
|
||||||
}
|
|
||||||
----
|
|
||||||
|
|
||||||
[[commands-as-standalone-scripts]]
|
|
||||||
=== Commands as standalone scripts
|
|
||||||
|
|
||||||
On *nix platforms, Pkl commands can be configured to run as standalone tools that can be invoked without the `pkl run` command.
|
|
||||||
To achieve this, the command file must be marked executable (i.e. `chmod +x my-tool.pkl`) and a link:https://en.wikipedia.org/wiki/Shebang_(Unix)[shebang comment] must be added on the first line of the file:
|
|
||||||
|
|
||||||
[source,pkl%parsed]
|
|
||||||
----
|
|
||||||
#!/usr/bin/env -S pkl run
|
|
||||||
----
|
|
||||||
|
|
||||||
NOTE: The `-S` flag for `env` is required on Linux systems due to a limitation of shebang handling in the Linux kernel.
|
|
||||||
While not required on other *nix platforms like macOS, but it should be included for compatibility.
|
|
||||||
|
|
||||||
==== Shell Completion
|
|
||||||
|
|
||||||
Like with Pkl's own CLI, <<command-shell-completion, shell completions>> can be generated for standalone scripts.
|
|
||||||
|
|
||||||
[source,shell]
|
|
||||||
----
|
|
||||||
# Generate shell completion script for bash
|
|
||||||
./my-tool.pkl shell-completion bash
|
|
||||||
|
|
||||||
# Generate shell completion script for zsh
|
|
||||||
./my-tool.pkl shell-completion zsh
|
|
||||||
----
|
|
||||||
|
|
||||||
==== Customizing Completion Candidates
|
|
||||||
|
|
||||||
`@Flag` and `@Argument` annotations may specify the `completionCandidates` to improve generated shell completions.
|
|
||||||
|
|
||||||
Valid values include:
|
|
||||||
|
|
||||||
* A `Listing<String>` of literal string values to offer for completion.
|
|
||||||
* The literal string `"path"`, which offers local file paths for completion.
|
|
||||||
|
|
||||||
Options with a string literal union type implicitly offer the members of the union as completion candidates.
|
|
||||||
|
|
||||||
=== Flag name ambiguities
|
|
||||||
|
|
||||||
It is possible for commands to define flags with names or short names that collide with Pkl's own command line options.
|
|
||||||
To avoid ambiguity in parsing these options, all flags for Pkl itself (e.g. `--root-dir`) must be placed before the root command module's URI.
|
|
||||||
Command authors are encouraged to avoid overlapping with Pkl's built-in flags, but this may not always be feasible, especially for single-character abbreviated names.
|
|
||||||
|
|
||||||
This imposes a limitation around <<commands-as-standalone-scripts,standalone commands>> that prevents users from customizing Pkl evaluator options when they are invoked.
|
|
||||||
There are two recommended workarounds for this limitation:
|
|
||||||
|
|
||||||
* Use a `PklProject` to define evaluator settings instead of doing so on the command line.
|
|
||||||
* If the command line must be used, switch to invoking via `pkl run [<flags>] [<root command module>]`.
|
|
||||||
|
|
||||||
[[repl]]
|
[[repl]]
|
||||||
== Working with the REPL
|
== Working with the REPL
|
||||||
|
|
||||||
|
|||||||
@@ -158,23 +158,6 @@ This option is commonly used to enable package mirroring.
|
|||||||
The above example will rewrite URL `\https://pkg.pkl-lang.org/pkl-k8s/k8s@1.0.0` to `\https://my.internal.mirror/pkl-k8s/k8s@1.0.0`.
|
The above example will rewrite URL `\https://pkg.pkl-lang.org/pkl-k8s/k8s@1.0.0` to `\https://my.internal.mirror/pkl-k8s/k8s@1.0.0`.
|
||||||
====
|
====
|
||||||
|
|
||||||
.--http-header
|
|
||||||
[%collapsible]
|
|
||||||
====
|
|
||||||
Default: (none) +
|
|
||||||
Example: `**=User-Agent: My User Agent` +
|
|
||||||
|
|
||||||
Additional headers to add to outbound HTTP requests.
|
|
||||||
|
|
||||||
The syntax is `<glob pattern>=<header name>:<header value>`, and any whitespace after the leading colon is trimmed.
|
|
||||||
|
|
||||||
The glob pattern is used to match against the URLs of outbound HTTP calls, and the value is the header name and value to add.
|
|
||||||
In the case of multiple matches, every header is added.
|
|
||||||
|
|
||||||
To describe a prefix match, the `\\**` wildcard should be added to the pattern.
|
|
||||||
For example, `https?://example.com/**` matches against every request to host `example.com`.
|
|
||||||
====
|
|
||||||
|
|
||||||
.--trace-mode
|
.--trace-mode
|
||||||
[%collapsible]
|
[%collapsible]
|
||||||
====
|
====
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import org.pkl.core.PObject;
|
|||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
// the pkl-jvm-examples repo has a similar example
|
// the pkl-jvm-examples repo has a similar example
|
||||||
@SuppressWarnings({"unchecked", "unused", "ConstantConditions", "NewClassNamingConvention"})
|
@SuppressWarnings({"unchecked", "unused", "ConstantConditions"})
|
||||||
public class CoreEvaluatorExample {
|
public class CoreEvaluatorExample {
|
||||||
@Test
|
@Test
|
||||||
public void usage() {
|
public void usage() {
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ Download links:
|
|||||||
The Pkldoc tool is offered as Gradle plugin, Java library, and CLI.
|
The Pkldoc tool is offered as Gradle plugin, Java library, and CLI.
|
||||||
It can generate documentation either for modules directly, or generate documentation for _package uris_.
|
It can generate documentation either for modules directly, or generate documentation for _package uris_.
|
||||||
|
|
||||||
The tool accepts an optional argument of a module named _docsite-info.pkl_, that amends link:{uri-DocsiteInfo}[pkl.DocsiteInfo].
|
The tool requires an argument of a module named _docsite-info.pkl_, that amends link:{uri-DocsiteInfo}[pkl.DocsiteInfo].
|
||||||
|
|
||||||
[discrete]
|
[discrete]
|
||||||
==== Generating documentation for modules directly
|
==== Generating documentation for modules directly
|
||||||
|
|||||||
@@ -322,25 +322,6 @@ Default: `false` +
|
|||||||
Whether to ignore expected example files and generate them again.
|
Whether to ignore expected example files and generate them again.
|
||||||
====
|
====
|
||||||
|
|
||||||
[[test-reporter]]
|
|
||||||
.testReporter: Property<String>
|
|
||||||
[%collapsible]
|
|
||||||
====
|
|
||||||
Default: `"spec"` +
|
|
||||||
Example: `reporter = "minimal"` +
|
|
||||||
Which test reporter to use for CLI output. Possible values are `"spec"` and `"minimal"`.
|
|
||||||
====
|
|
||||||
|
|
||||||
[[power-assertions-test]]
|
|
||||||
.powerAssertions: Property<Boolean>
|
|
||||||
[%collapsible]
|
|
||||||
====
|
|
||||||
Default: `true` (for test tasks) +
|
|
||||||
Example: `powerAssertions = false` +
|
|
||||||
Enable or disable power assertions for detailed assertion failure messages.
|
|
||||||
When enabled, test failures will show intermediate values in the assertion expression, making it easier to understand why a test failed.
|
|
||||||
====
|
|
||||||
|
|
||||||
Common properties:
|
Common properties:
|
||||||
|
|
||||||
include::../partials/gradle-modules-properties.adoc[]
|
include::../partials/gradle-modules-properties.adoc[]
|
||||||
@@ -423,7 +404,7 @@ For Spring Boot applications, and for users of `pkl-config-java` compiling the g
|
|||||||
.nonNullAnnotation: Property<String>
|
.nonNullAnnotation: Property<String>
|
||||||
[%collapsible]
|
[%collapsible]
|
||||||
====
|
====
|
||||||
Default: `"org.jspecify.annotations.NonNull"` +
|
Default: `"org.pkl.config.java.mapper.NonNull"` +
|
||||||
Example: `nonNullAnnotation = "org.project.MyAnnotation"` +
|
Example: `nonNullAnnotation = "org.project.MyAnnotation"` +
|
||||||
Fully qualified name of the annotation type to use for annotating non-null types. +
|
Fully qualified name of the annotation type to use for annotating non-null types. +
|
||||||
The specified annotation type must be annotated with `@java.lang.annotation.Target(ElementType.TYPE_USE)`
|
The specified annotation type must be annotated with `@java.lang.annotation.Target(ElementType.TYPE_USE)`
|
||||||
@@ -686,14 +667,6 @@ Default: `false` +
|
|||||||
Whether to ignore expected example files and generate them again.
|
Whether to ignore expected example files and generate them again.
|
||||||
====
|
====
|
||||||
|
|
||||||
.testReporter: Property<String>
|
|
||||||
[%collapsible]
|
|
||||||
====
|
|
||||||
Default: `"spec"` +
|
|
||||||
Example: `reporter = "minimal"` +
|
|
||||||
Which test reporter to use for CLI output. Possible values are `"spec"` and `"minimal"`.
|
|
||||||
====
|
|
||||||
|
|
||||||
Common properties:
|
Common properties:
|
||||||
|
|
||||||
include::../partials/gradle-common-properties.adoc[]
|
include::../partials/gradle-common-properties.adoc[]
|
||||||
|
|||||||
@@ -118,26 +118,3 @@ The left-hand side describes the source prefix, and the right-hand describes the
|
|||||||
This option is commonly used to enable package mirroring.
|
This option is commonly used to enable package mirroring.
|
||||||
The above example will rewrite URL `\https://pkg.pkl-lang.org/pkl-k8s/k8s@1.0.0` to `\https://my.internal.mirror/pkl-k8s/k8s@1.0.0`.
|
The above example will rewrite URL `\https://pkg.pkl-lang.org/pkl-k8s/k8s@1.0.0` to `\https://my.internal.mirror/pkl-k8s/k8s@1.0.0`.
|
||||||
====
|
====
|
||||||
|
|
||||||
.httpHeaders: MapProperty<String, Map<String, List<String>>>
|
|
||||||
[%collapsible]
|
|
||||||
====
|
|
||||||
Default: `null` +
|
|
||||||
Example: `httpHeaders = ["**": ["User-Agent": ["My User Agent"]]]` +
|
|
||||||
Additional headers to add to outbound HTTP requests.
|
|
||||||
The key is a glob pattern that is used to match against the URLs of outbound HTTP calls, and the value is the header name and values to add.
|
|
||||||
Each header value becomes its own HTTP header.
|
|
||||||
|
|
||||||
To describe a prefix match, the `\\**` wildcard should be added to the pattern.
|
|
||||||
For example, `https?://example.com/**` matches against every request to host `example.com`.
|
|
||||||
====
|
|
||||||
|
|
||||||
.powerAssertions: Property<Boolean>
|
|
||||||
[%collapsible]
|
|
||||||
====
|
|
||||||
Default: `false` (except for test tasks, which default to `true`) +
|
|
||||||
Example: `powerAssertions = true` +
|
|
||||||
Enable power assertions for detailed assertion failure messages.
|
|
||||||
When enabled, type constraint failures will show intermediate values in the assertion expression.
|
|
||||||
This option has a performance impact when constraint failures occur.
|
|
||||||
====
|
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 217 KiB |
@@ -266,7 +266,7 @@ Thanks to https://github.com/gordonbondon[@gordonbondon] for contributing to thi
|
|||||||
|
|
||||||
=== `@Generated` annotation for Java/Kotlin codegen
|
=== `@Generated` annotation for Java/Kotlin codegen
|
||||||
|
|
||||||
Classes generated by the Java and Kotlin code generator can optionally receive new annotation called `Generated` (https://github.com/apple/pkl/pull/1075[#1075], https://github.com/apple/pkl/pull/1115[#1115]).
|
Classes generated by the Java and Kotlin code generator can optionally recieve new annotation called `Generated` (https://github.com/apple/pkl/pull/1075[#1075], https://github.com/apple/pkl/pull/1115[#1115]).
|
||||||
|
|
||||||
This behavior is toggled with the `--generated-annotation` CLI flag, or the similarly named Gradle property.
|
This behavior is toggled with the `--generated-annotation` CLI flag, or the similarly named Gradle property.
|
||||||
|
|
||||||
|
|||||||
@@ -1,352 +0,0 @@
|
|||||||
= Pkl 0.31 Release Notes
|
|
||||||
:version: 0.31
|
|
||||||
:version-minor: 0.31.1
|
|
||||||
:release-date: February 26th, 2026
|
|
||||||
:version-next: 0.32
|
|
||||||
:version-next-date: July 2026
|
|
||||||
|
|
||||||
include::partial$intro.adoc[]
|
|
||||||
|
|
||||||
== Highlights [small]#💖#
|
|
||||||
|
|
||||||
[[power-assertions]]
|
|
||||||
=== Power Assertions
|
|
||||||
|
|
||||||
Pkl's test output and error output has been improved with power assertions (pr:https://github.com/apple/pkl/pull/1384[], pr:https://github.com/apple/pkl/pull/1419[])!
|
|
||||||
|
|
||||||
Pkl has two places that are effectively assertions.
|
|
||||||
These are:
|
|
||||||
|
|
||||||
* Type constraint expressions
|
|
||||||
* Test facts
|
|
||||||
|
|
||||||
Currently, when these assertions fail, the error message prints the assertion's source section.
|
|
||||||
However, this information can sometimes be lacking.
|
|
||||||
It tells you what the mechanics of the assertion is, but doesn't tell you _why_ the assertion is failing.
|
|
||||||
|
|
||||||
For example, here is the current error output of a failing typecheck.
|
|
||||||
|
|
||||||
[source,text]
|
|
||||||
----
|
|
||||||
–– Pkl Error ––
|
|
||||||
Type constraint `name.endsWith(lastName)` violated.
|
|
||||||
Value: new Person { name = "Bub Johnson" }
|
|
||||||
|
|
||||||
7 | passenger: Person(name.endsWith(lastName)) = new { name = "Bub Johnson" }
|
|
||||||
----
|
|
||||||
|
|
||||||
Just from this error message, we don't know what the last name is supposed to be.
|
|
||||||
What is `name` supposed to end with?
|
|
||||||
We just know it's some property called `lastName` but, we don't know what it _is_.
|
|
||||||
|
|
||||||
In Pkl 0.31, the error output becomes:
|
|
||||||
|
|
||||||
[source,text]
|
|
||||||
----
|
|
||||||
–– Pkl Error ––
|
|
||||||
Type constraint `name.endsWith(lastName)` violated.
|
|
||||||
Value: new Person { name = "Bub Johnson" }
|
|
||||||
|
|
||||||
name.endsWith(lastName)
|
|
||||||
│ │ │
|
|
||||||
│ false "Smith"
|
|
||||||
"Bub Johnson"
|
|
||||||
|
|
||||||
7 | passenger: Person(name.endsWith(lastName)) = new { name = "Bub Johnson" }
|
|
||||||
----
|
|
||||||
|
|
||||||
Now, we know what the expectation is.
|
|
||||||
|
|
||||||
This type of diagram is also added to test facts.
|
|
||||||
When tests fail, Pkl emits a diagram of the expression, and the values produced.
|
|
||||||
|
|
||||||
For example, given the following test:
|
|
||||||
|
|
||||||
.math.pkl
|
|
||||||
[source,pkl]
|
|
||||||
----
|
|
||||||
amends "pkl:test"
|
|
||||||
|
|
||||||
facts {
|
|
||||||
local function add(a: Int, b: Int) = a * b
|
|
||||||
local function divide(a: Int, b: Int) = a % b
|
|
||||||
["math"] {
|
|
||||||
add(3, 4) == 7
|
|
||||||
divide(8, 2) == 4
|
|
||||||
}
|
|
||||||
}
|
|
||||||
----
|
|
||||||
|
|
||||||
The error output now includes a power assertion diagram, which helps explain why the test failed.
|
|
||||||
|
|
||||||
[source,text]
|
|
||||||
----
|
|
||||||
module math
|
|
||||||
facts
|
|
||||||
✘ math
|
|
||||||
add(3, 4) == 7 (math.pkl:9)
|
|
||||||
│ │
|
|
||||||
12 false
|
|
||||||
divide(8, 2) == 4 (math.pkl:10)
|
|
||||||
│ │
|
|
||||||
0 false
|
|
||||||
|
|
||||||
0.0% tests pass [1/1 failed], 0.0% asserts pass [2/2 failed]
|
|
||||||
----
|
|
||||||
|
|
||||||
To learn more about this feature, consult https://github.com/apple/pkl-evolution/blob/main/spices/SPICE-0026-power-assertions.adoc[SPICE-0026].
|
|
||||||
|
|
||||||
[[cli-framework]]
|
|
||||||
=== CLI Framework
|
|
||||||
|
|
||||||
Pkl 0.31 introduces a new framework for implementing CLI tools in Pkl (pr:https://github.com/apple/pkl/pull/1367[], pr:https://github.com/apple/pkl/pull/1431[], pr:https://github.com/apple/pkl/pull/1432[], pr:https://github.com/apple/pkl/pull/1436[], pr:https://github.com/apple/pkl/pull/1440[], pr:https://github.com/apple/pkl/pull/1444[]).
|
|
||||||
|
|
||||||
The framework provides a way to build command line tools with user experience idioms that will be immediately familiar to users.
|
|
||||||
CLI tools implemented in Pkl have largely the same capabilities as normal Pkl evaluation (i.e. writing to standard output and files), but this may be extended using xref:language-reference:index.adoc#external-readers[external readers].
|
|
||||||
|
|
||||||
Commands are defined by extending the pkldoc:#[pkl:Command] module:
|
|
||||||
|
|
||||||
.bird-generator.pkl
|
|
||||||
[source,pkl]
|
|
||||||
----
|
|
||||||
extends "pkl:Command"
|
|
||||||
|
|
||||||
options: Options
|
|
||||||
|
|
||||||
class Options {
|
|
||||||
/// Mapping of <bird>=<bird age> pairs defining the list of birds.
|
|
||||||
@Argument
|
|
||||||
birds: Mapping<String, Number>
|
|
||||||
|
|
||||||
/// Aggregation function to apply to all bird ages.
|
|
||||||
aggregate: *"sum" | "mean" | "count"
|
|
||||||
}
|
|
||||||
|
|
||||||
class Bird {
|
|
||||||
/// Name of the bird.
|
|
||||||
name: String
|
|
||||||
|
|
||||||
/// Age of the bird in years.
|
|
||||||
age: Number
|
|
||||||
}
|
|
||||||
|
|
||||||
birds: Listing<Bird> = new {
|
|
||||||
for (_name, _age in options.birds) {
|
|
||||||
new { name = _name; age = _age }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
result: Number =
|
|
||||||
if (options.aggregate == "sum")
|
|
||||||
birds.toList().fold(0.0, (result, bird) -> result + bird.age)
|
|
||||||
else if (options.aggregate == "mean")
|
|
||||||
birds.toList().fold(0.0, (result, bird) -> result + bird.age) / birds.length
|
|
||||||
else
|
|
||||||
birds.length
|
|
||||||
----
|
|
||||||
|
|
||||||
Commands are executed using the `pkl run` CLI subcommand:
|
|
||||||
|
|
||||||
[source,bash]
|
|
||||||
----
|
|
||||||
$ pkl run bird-generator.pkl pigeon --aggregate=mean Pigeon=1 Hawk=8 Eagle=3
|
|
||||||
birds {
|
|
||||||
new {
|
|
||||||
name = "Pigeon"
|
|
||||||
age = 1
|
|
||||||
}
|
|
||||||
new {
|
|
||||||
name = "Hawk"
|
|
||||||
age = 8
|
|
||||||
}
|
|
||||||
new {
|
|
||||||
name = "Eagle"
|
|
||||||
age = 3
|
|
||||||
}
|
|
||||||
}
|
|
||||||
result = 4.0
|
|
||||||
----
|
|
||||||
|
|
||||||
Automatic CLI help is provided:
|
|
||||||
|
|
||||||
[source,bash]
|
|
||||||
----
|
|
||||||
$ pkl run test.pkl -h
|
|
||||||
Usage: test.pkl [<options>] [<birds>]... <command> [<args>]...
|
|
||||||
|
|
||||||
Options:
|
|
||||||
--aggregate=<count, mean, sum> Aggregation function to apply to all bird ages.
|
|
||||||
-h, --help Show this message and exit
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
<birds> Mapping of <bird>=<bird age> pairs defining the list of birds.
|
|
||||||
----
|
|
||||||
|
|
||||||
To learn more about this feature, consult xref:pkl-cli:index.adoc#cli-tools[the documentation] and https://github.com/apple/pkl-evolution/blob/main/spices/SPICE-0025-pkl-run-cli-framework.adoc[SPICE-0025].
|
|
||||||
|
|
||||||
== Noteworthy [small]#🎶#
|
|
||||||
|
|
||||||
=== Syntax Highlighting
|
|
||||||
|
|
||||||
The Pkl CLI displays Pkl code in several locations: stack frames within errors messages, <<power-assertions,power assertions>>, and in the xref:pkl-cli:index.adoc#repl[REPL].
|
|
||||||
This code is now syntax highlighted to improve readability (pr:https://github.com/apple/pkl/pull/1385[], pr:https://github.com/apple/pkl/pull/1409[]):
|
|
||||||
|
|
||||||
image::syntax-highlight-error.png[syntax highlighted output]
|
|
||||||
|
|
||||||
[[cli-dependency-notation]]
|
|
||||||
=== CLI Support for Dependency Notation
|
|
||||||
|
|
||||||
The Pkl CLI now supports specifying modules using xref:language-reference:index.adoc#project-dependencies[dependency notation] (pr:https://github.com/apple/pkl/pull/1434[], pr:https://github.com/apple/pkl/pull/1439[]).
|
|
||||||
This is especially helpful for <<cli-framework,CLI commands>> defined in Packages:
|
|
||||||
|
|
||||||
[source,bash]
|
|
||||||
----
|
|
||||||
$ pkl run @my-tool/cmd.pkl ...
|
|
||||||
----
|
|
||||||
|
|
||||||
This enhancement applies to the `pkl eval`, `pkl run`, `pkl test`, and `pkl analyze imports` commands.
|
|
||||||
It also applies to the `pkldoc`, `pkl-codegen-java`, and `pkl-codegen-kotlin` tools.
|
|
||||||
|
|
||||||
[NOTE]
|
|
||||||
Dependency notation only works for remote package dependencies. xref:language-reference:index.adoc#local-dependencies[Local dependencies] are not supported.
|
|
||||||
|
|
||||||
=== Property Converter Annotations
|
|
||||||
|
|
||||||
Pkl provides the pkldoc:BaseValueRenderers#converters[] mechanism for transforming values during rendering.
|
|
||||||
Converters are flexible, but their design makes some transformations awkward.
|
|
||||||
In particular, modifying property names during rendering required a lot of extra code.
|
|
||||||
|
|
||||||
The new pkldoc:ConvertProperty[] annotation adds a way to express parameterized per-property name and value transformations (pr:https://github.com/apple/pkl/pull/1333[]).
|
|
||||||
|
|
||||||
To learn more about this feature, consult https://github.com/apple/pkl-evolution/blob/main/spices/SPICE-0024-annotation-converters.adoc[SPICE-0024].
|
|
||||||
|
|
||||||
Additional new Pkl APIs for per-format property renaming will be added for many built-in renderers:
|
|
||||||
|
|
||||||
.fmt.pkl
|
|
||||||
[source,pkl]
|
|
||||||
----
|
|
||||||
import "pkl:json"
|
|
||||||
import "pkl:yaml"
|
|
||||||
|
|
||||||
@json.Property { name = "foo_bar" }
|
|
||||||
@yaml.Property { name = "foo-bar" }
|
|
||||||
fooBar: String = "hello world"
|
|
||||||
----
|
|
||||||
|
|
||||||
[source,terminaloutput]
|
|
||||||
----
|
|
||||||
$ pkl eval fmt.pkl -f json
|
|
||||||
{
|
|
||||||
"foo_bar": "hello world"
|
|
||||||
}
|
|
||||||
|
|
||||||
$ pkl eval fmt.pkl -f yaml
|
|
||||||
foo-bar: hello world
|
|
||||||
----
|
|
||||||
|
|
||||||
=== Java API changes
|
|
||||||
|
|
||||||
==== New classes
|
|
||||||
|
|
||||||
New classes are introduced to the Java API.
|
|
||||||
|
|
||||||
* `org.pkl.core.CommandSpec`
|
|
||||||
|
|
||||||
==== New methods
|
|
||||||
|
|
||||||
New methods are introduced to the Java API.
|
|
||||||
|
|
||||||
* `org.pkl.core.Evaluator.evaluateCommand`
|
|
||||||
* `org.pkl.core.EvaluatorBuilder.setPowerAssertionsEnabled`
|
|
||||||
* `org.pkl.core.EvaluatorBuilder.getPowerAssertionsEnabled`
|
|
||||||
* `org.pkl.core.SecurityManager.resolveSecurePath`
|
|
||||||
* `org.pkl.config.java.ConfigEvaluator.evaluateOutputValue`
|
|
||||||
* `org.pkl.coznfig.java.ConfigEvaluator.evaluateExpression`
|
|
||||||
|
|
||||||
=== Standard Library changes
|
|
||||||
|
|
||||||
New properties have been added to the standard library (pr:https://github.com/apple/pkl/pull/1396[]).
|
|
||||||
|
|
||||||
==== Additions to `pkl:base`
|
|
||||||
|
|
||||||
* pkldoc:List#isNotEmpty[]
|
|
||||||
* pkldoc:Map#isNotEmpty[]
|
|
||||||
* pkldoc:Set#isNotEmpty[]
|
|
||||||
* pkldoc:Listing#isNotEmpty[]
|
|
||||||
* pkldoc:Mapping#isNotEmpty[]
|
|
||||||
* pkldoc:String#isNotEmpty[]
|
|
||||||
* pkldoc:String#isNotBlank[]
|
|
||||||
* pkldoc:ConvertProperty[]
|
|
||||||
* pkldoc:BaseValueRenderer#convertPropertyTransformers[]
|
|
||||||
|
|
||||||
==== New module `pkl:Command`
|
|
||||||
|
|
||||||
The pkldoc:#[pkl:Command] standard library module is added.
|
|
||||||
|
|
||||||
==== Additions to `pkl:json`
|
|
||||||
|
|
||||||
* pkldoc:Property[pkl:json]
|
|
||||||
|
|
||||||
==== Additions to `pkl:jsonnet`
|
|
||||||
|
|
||||||
* pkldoc:Property[pkl:jsonnet]
|
|
||||||
|
|
||||||
==== Additions to `pkl:protobuf`
|
|
||||||
|
|
||||||
* pkldoc:Property[pkl:protobuf]
|
|
||||||
|
|
||||||
==== Additions to `pkl:xml`
|
|
||||||
|
|
||||||
* pkldoc:Property[pkl:xml]
|
|
||||||
|
|
||||||
==== Additions to `pkl:yaml`
|
|
||||||
|
|
||||||
* pkldoc:Property[pkl:yaml]
|
|
||||||
|
|
||||||
== Breaking Changes [small]#💔#
|
|
||||||
|
|
||||||
Things to watch out for when upgrading.
|
|
||||||
|
|
||||||
=== Removal of `@argfile` support
|
|
||||||
|
|
||||||
Prior versions of Pkl had an undocumented feature allowing inclusion of CLI arguments from files using `@path/to/file`.
|
|
||||||
In order to support <<cli-dependency-notation,dependency notation>> on the CLI, `@argfile` support has been removed from Pkl.
|
|
||||||
|
|
||||||
=== Removal of `Collection#transpose()`
|
|
||||||
|
|
||||||
Prior versions of Pkl defined a `transpose()` method on the `Collection` class.
|
|
||||||
This method was never implemented and threw an error when called.
|
|
||||||
As it was never functional, it has been removed entirely without a deprecation warning (pr:https://github.com/apple/pkl/pull/1437[]).
|
|
||||||
|
|
||||||
== Miscellaneous [small]#🐸#
|
|
||||||
|
|
||||||
* Improve formatting of imports to keep surrounding comments (pr:https://github.com/apple/pkl/pull/1424[]).
|
|
||||||
* Add support for evaluating module output and expressions to `ConfigEvaluator` (pr:https://github.com/apple/pkl/pull/1297[]).
|
|
||||||
* The `pkl format --write` command now exits successfully when formatting violations are found and updated (pr:https://github.com/apple/pkl/pull/1340[]).
|
|
||||||
* Add `pkl-bom` module to aid in aligning Pkl Java dependencies (pr:https://github.com/apple/pkl/pull/1390[]).
|
|
||||||
* Improve error message when writing `PklProject.deps.json` fails (pr:https://github.com/apple/pkl/pull/1405[]).
|
|
||||||
* Add information about pkldoc:Annotation[]s to the language reference (pr:https://github.com/apple/pkl/pull/1427[]).
|
|
||||||
* Improved usability for the `org.pkl.formatter.Formatter` Java API (pr:https://github.com/apple/pkl/pull/1428[]).
|
|
||||||
|
|
||||||
== Bugs fixed [small]#🐜#
|
|
||||||
|
|
||||||
The following bugs have been fixed.
|
|
||||||
|
|
||||||
* `Function.toString()` returns incorrect result (pr:https://github.com/apple/pkl/pull/1411[]).
|
|
||||||
* Failure when `--multiple-file-output-path` is a symlink (pr:https://github.com/apple/pkl/pull/1389[]).
|
|
||||||
* The `module` type in a non-final module has default value of type `Dynamic` (pr:https://github.com/apple/pkl/pull/1392[]).
|
|
||||||
* The `module` type is cached incorrectly in some cases (pr:https://github.com/apple/pkl/pull/1393[]).
|
|
||||||
* A possible race condition involving symlinks could bypass `--root-dir` during module and resource reading (pr:https://github.com/apple/pkl/pull/1426[]).
|
|
||||||
* `pkl format` produces internal stack traces when lexing fails (pr:https://github.com/apple/pkl/pull/1430[]).
|
|
||||||
* `super` access expressions are parsed incorrectly inside the spread operator (pr:https://github.com/apple/pkl/pull/1364[]).
|
|
||||||
* Modules and resources with `jar:file:` URIs were not properly sandboxed by `--root-dir` (pr:https://github.com/apple/pkl/pull/1442[]).
|
|
||||||
|
|
||||||
== Contributors [small]#🙏#
|
|
||||||
|
|
||||||
We would like to thank the contributors to this release (in alphabetical order):
|
|
||||||
|
|
||||||
* https://github.com/bioball[@bioball]
|
|
||||||
* https://github.com/eddie4941[@eddie4941]
|
|
||||||
* https://github.com/HT154[@HT154]
|
|
||||||
* https://github.com/stackoverflow[@stackoverflow]
|
|
||||||
* https://github.com/StefMa[@StefMa]
|
|
||||||
@@ -1,93 +0,0 @@
|
|||||||
= Pkl 0.32.0 Release Notes
|
|
||||||
:version: 0.32
|
|
||||||
:version-minor: 0.32.0
|
|
||||||
:release-date: TBD
|
|
||||||
:version-next: 0.33
|
|
||||||
:version-next-date: TBD
|
|
||||||
|
|
||||||
include::partial$intro.adoc[]
|
|
||||||
|
|
||||||
== Highlights [small]#💖#
|
|
||||||
|
|
||||||
News you don't want to miss.
|
|
||||||
|
|
||||||
.XXX
|
|
||||||
[%collapsible]
|
|
||||||
====
|
|
||||||
XXX
|
|
||||||
====
|
|
||||||
|
|
||||||
== Noteworthy [small]#🎶#
|
|
||||||
|
|
||||||
Ready when you need them.
|
|
||||||
|
|
||||||
=== Standard Library Changes
|
|
||||||
|
|
||||||
==== `pkl:EvaluatorSettings`
|
|
||||||
|
|
||||||
**Additions**
|
|
||||||
|
|
||||||
* New method: link:{uri-stdlib-evaluatorSettingsModule}#resolve()[`EvaluatorSettings.resolve()`]
|
|
||||||
* New method: link:{uri-stdlib-evaluatorSettingsModule}#resolveForOs()[`EvaluatorSettings.resolveForOs()`]
|
|
||||||
* New property: link:{uri-stdlib-evaluatorSettingsExternalReaderClass}#workingDir[`EvaluatorSettings#ExternalReader.workingDir`]
|
|
||||||
|
|
||||||
==== `pkl:Project`
|
|
||||||
|
|
||||||
**Additions**
|
|
||||||
|
|
||||||
* New property: link:{uri-stdlib-projectModule}#resolvedEvaluatorSettings[`Project.resolvedEvaluatorSettings`]
|
|
||||||
|
|
||||||
== Breaking Changes [small]#💔#
|
|
||||||
|
|
||||||
Things to watch out for when upgrading.
|
|
||||||
|
|
||||||
=== Java API changes
|
|
||||||
|
|
||||||
Changes have been made to the Java API.
|
|
||||||
|
|
||||||
==== Removals and deprecations
|
|
||||||
|
|
||||||
The following APIs have been removed without replacement.
|
|
||||||
|
|
||||||
* `org.pkl.config.java.Config#makeConfig` (pr:https://github.com/apple/pkl/pull/1531[])
|
|
||||||
|
|
||||||
The following APIs have been deprecated for removal.
|
|
||||||
|
|
||||||
* `org.pkl.config.java.mapper.NonNull` (https://github.com/apple/pkl/pull/1607[#1607]).
|
|
||||||
|
|
||||||
==== Changes
|
|
||||||
|
|
||||||
* `org.pkl.core.evaluatorSettings.PklEvaluatorSettings.parse` no longer accepts a `pathNormalizer` argument.
|
|
||||||
|
|
||||||
=== Loading rule changes in `pkl:EvaluatorSettings`
|
|
||||||
|
|
||||||
Breaking changes have been made to how evaluator settings are loaded (https://github.com/apple/pkl/pull/1394[#1394]).
|
|
||||||
|
|
||||||
==== Loading rule changes for the external reader executable
|
|
||||||
|
|
||||||
The following changes have been made for the `executable` property in an external reader:
|
|
||||||
|
|
||||||
* If the executable does not contain a slash (`/` on POSIX, `\` on Windows) character, it is always resolved against the `PATH` environment variable.
|
|
||||||
* If it does contain a slash, it is resolved relative to the enclosing PklProject directory, instead of the current working directory.
|
|
||||||
|
|
||||||
=== Changes to `--external-module-reader` and `--external-resource-reader` CLI flags
|
|
||||||
|
|
||||||
The `--external-module-reader` and `--external-resource-reader` CLI flags will _replace_ any external readers otherwise configured within a PklProject, instead of add to it (https://github.com/apple/pkl/pull/1394[#1394]).
|
|
||||||
|
|
||||||
This makes this behavior consistent with how other settings work.
|
|
||||||
|
|
||||||
== Work In Progress [small]#🚆#
|
|
||||||
|
|
||||||
They missed the train but deserve a mention.
|
|
||||||
|
|
||||||
.XXX
|
|
||||||
[%collapsible]
|
|
||||||
====
|
|
||||||
XXX
|
|
||||||
====
|
|
||||||
|
|
||||||
== Contributors [small]#🙏#
|
|
||||||
|
|
||||||
We would like to thank the contributors to this release (in alphabetical order):
|
|
||||||
|
|
||||||
* XXX
|
|
||||||
@@ -1,45 +1,7 @@
|
|||||||
= Changelog
|
= Changelog
|
||||||
include::ROOT:partial$component-attributes.adoc[]
|
include::ROOT:partial$component-attributes.adoc[]
|
||||||
|
|
||||||
[[release-0.32.0]]
|
|
||||||
== 0.32.0 (UNRELEASED)
|
|
||||||
|
|
||||||
[[release-0.31.1]]
|
|
||||||
== 0.31.1 (2026-03-26)
|
|
||||||
|
|
||||||
=== Breaking Changes [small]#💔#
|
|
||||||
|
|
||||||
* Allow nullable reads for custom/external resources (pr:https://github.com/apple/pkl/pull/1471[]).
|
|
||||||
|
|
||||||
This allows custom/external resources to produce `null` values for xref:language-reference:index.adoc#nullable-reads[nullable reads] (`read?`).
|
|
||||||
While this is a breaking change in behavior, it is currently not possible to exercise with versions of pkl-go or pkl-swift released prior to this change.
|
|
||||||
|
|
||||||
=== Fixes
|
|
||||||
|
|
||||||
* Fix typo in changelog and language reference (pr:https://github.com/apple/pkl/pull/1455[]).
|
|
||||||
* Fix bugs in `CommandSpecParser` (pr:https://github.com/apple/pkl/pull/1448[], pr:https://github.com/apple/pkl/pull/1449[]).
|
|
||||||
* Respect `--omit-project-settings` for all evaluator options (pr:https://github.com/apple/pkl/pull/1459[]).
|
|
||||||
* Fix SecurityManager check for HTTP(S) module URIs (pr:https://github.com/apple/pkl/pull/1463[]).
|
|
||||||
* Fix performance regression caused by activation of power assertion instrumentation during some union type checks (pr:https://github.com/apple/pkl/pull/1462[]).
|
|
||||||
* Fix module reflection when power assertion instrumentation is active (pr:https://github.com/apple/pkl/pull/1464[]).
|
|
||||||
* Prevent I/O when checking UNC paths against `--root-dir` (pr:https://github.com/apple/pkl/pull/1466[]).
|
|
||||||
* Prevent `--multiple-file-output-path` writes from following symlinks outside the target directory
|
|
||||||
(pr:https://github.com/apple/pkl/pull/1467[]).
|
|
||||||
|
|
||||||
=== Contributors ❤️
|
|
||||||
|
|
||||||
Thank you to all the contributors for this release!
|
|
||||||
|
|
||||||
* https://github.com/04cb[@04cb]
|
|
||||||
* https://github.com/HT154[@HT154]
|
|
||||||
* https://github.com/KushalP[@KushalP]
|
|
||||||
|
|
||||||
[[release-0.31.0]]
|
|
||||||
== 0.31.0 (2026-02-26)
|
|
||||||
|
|
||||||
xref:0.31.adoc[Release Notes]
|
|
||||||
[[release-0.30.2]]
|
[[release-0.30.2]]
|
||||||
|
|
||||||
== 0.30.2 (2025-12-15)
|
== 0.30.2 (2025-12-15)
|
||||||
|
|
||||||
=== Fixes
|
=== Fixes
|
||||||
|
|||||||
@@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
The Pkl team aims to release a new version of Pkl in February, June, and October of each year.
|
The Pkl team aims to release a new version of Pkl in February, June, and October of each year.
|
||||||
|
|
||||||
* xref:0.32.adoc[0.32 Release Notes]
|
|
||||||
* xref:0.31.adoc[0.31 Release Notes]
|
|
||||||
* xref:0.30.adoc[0.30 Release Notes]
|
* xref:0.30.adoc[0.30 Release Notes]
|
||||||
* xref:0.29.adoc[0.29 Release Notes]
|
* xref:0.29.adoc[0.29 Release Notes]
|
||||||
* xref:0.28.adoc[0.28 Release Notes]
|
* xref:0.28.adoc[0.28 Release Notes]
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
include::ROOT:partial$component-attributes.adoc[]
|
|
||||||
|
|
||||||
Pkl {version} was released on {release-date}. +
|
|
||||||
[.small]#The latest bugfix release is {version-minor}. (xref:changelog.adoc[All Versions])#
|
|
||||||
|
|
||||||
The next release ({version-next}) is scheduled for {version-next-date}.
|
|
||||||
To see what's coming in the future, follow the {uri-pkl-roadmap}[Pkl Roadmap].
|
|
||||||
|
|
||||||
Please send feedback and questions to https://github.com/apple/pkl/discussions[GitHub Discussions], or submit an issue on https://github.com/apple/pkl/issues/new[GitHub]. +
|
|
||||||
|
|
||||||
[small]#Pkl is hosted on https://github.com/apple/pkl[GitHub].
|
|
||||||
To get started, follow xref:pkl-cli:index.adoc#installation[Installation].#
|
|
||||||
@@ -2,10 +2,20 @@
|
|||||||
:version: XXX (e.g., 0.9)
|
:version: XXX (e.g., 0.9)
|
||||||
:version-minor: XXX (e.g., 0.9.0)
|
:version-minor: XXX (e.g., 0.9.0)
|
||||||
:release-date: XXX (e.g., July 11, 2018)
|
:release-date: XXX (e.g., July 11, 2018)
|
||||||
:version-next: XXX (e.g., 0.10)
|
|
||||||
:version-next-date: XXX (e.g., July 2018)
|
|
||||||
|
|
||||||
include::partial$intro.adoc[]
|
include::ROOT:partial$component-attributes.adoc[]
|
||||||
|
|
||||||
|
Pkl {version} was released on {release-date}. +
|
||||||
|
[.small]#The latest bugfix release is {version-minor}. (xref:changelog.adoc[All Versions])#
|
||||||
|
|
||||||
|
XXX
|
||||||
|
|
||||||
|
The next release (XXX) is scheduled for XXX (e.g., August 2, 2021).
|
||||||
|
|
||||||
|
Please send feedback and questions to https://github.com/apple/pkl/discussions[GitHub Discussions], or submit an issue on https://github.com/apple/pkl/issues/new[GitHub]. +
|
||||||
|
|
||||||
|
[small]#Pkl is hosted on https://github.com/apple/pkl[GitHub].
|
||||||
|
To get started, follow xref:pkl-cli:index.adoc#installation[Installation].#
|
||||||
|
|
||||||
== Highlights [small]#💖#
|
== Highlights [small]#💖#
|
||||||
|
|
||||||
@@ -52,3 +62,10 @@ XXX
|
|||||||
We would like to thank the contributors to this release (in alphabetical order):
|
We would like to thank the contributors to this release (in alphabetical order):
|
||||||
|
|
||||||
* XXX
|
* XXX
|
||||||
|
|
||||||
|
== Closed Radars [small]#🔒#
|
||||||
|
|
||||||
|
XXX Radars down, Inbox Zero in sight ...
|
||||||
|
|
||||||
|
[smaller]
|
||||||
|
. XXX (https://github.com/apple/pkl/issues/new[XXX])
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ Too many lines separate `foo` and `baz`.
|
|||||||
Properties that override an existing property shouldn't have doc comments nor type annotations,
|
Properties that override an existing property shouldn't have doc comments nor type annotations,
|
||||||
unless the type is intentionally overridden via `extends`.
|
unless the type is intentionally overridden via `extends`.
|
||||||
|
|
||||||
[source%parsed,{pkl}]
|
[source%tested,{pkl}]
|
||||||
----
|
----
|
||||||
amends "myOtherModule.pkl"
|
amends "myOtherModule.pkl"
|
||||||
|
|
||||||
|
|||||||
@@ -41,8 +41,6 @@
|
|||||||
* xref:ROOT:evolution-and-roadmap.adoc[Evolution and Roadmap]
|
* xref:ROOT:evolution-and-roadmap.adoc[Evolution and Roadmap]
|
||||||
|
|
||||||
* xref:release-notes:index.adoc[Release Notes]
|
* xref:release-notes:index.adoc[Release Notes]
|
||||||
** xref:release-notes:0.32.adoc[0.32 Release Notes]
|
|
||||||
** xref:release-notes:0.31.adoc[0.31 Release Notes]
|
|
||||||
** xref:release-notes:0.30.adoc[0.30 Release Notes]
|
** xref:release-notes:0.30.adoc[0.30 Release Notes]
|
||||||
** xref:release-notes:0.29.adoc[0.29 Release Notes]
|
** xref:release-notes:0.29.adoc[0.29 Release Notes]
|
||||||
** xref:release-notes:0.28.adoc[0.28 Release Notes]
|
** xref:release-notes:0.28.adoc[0.28 Release Notes]
|
||||||
|
|||||||
@@ -1,22 +1,3 @@
|
|||||||
/*
|
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
import java.nio.file.Files
|
|
||||||
import kotlin.io.path.isDirectory
|
|
||||||
import kotlin.io.path.isRegularFile
|
|
||||||
import kotlin.io.path.useDirectoryEntries
|
|
||||||
import org.junit.platform.commons.annotation.Testable
|
import org.junit.platform.commons.annotation.Testable
|
||||||
import org.junit.platform.engine.*
|
import org.junit.platform.engine.*
|
||||||
import org.junit.platform.engine.TestDescriptor.Type
|
import org.junit.platform.engine.TestDescriptor.Type
|
||||||
@@ -35,18 +16,23 @@ import org.pkl.core.Loggers
|
|||||||
import org.pkl.core.SecurityManagers
|
import org.pkl.core.SecurityManagers
|
||||||
import org.pkl.core.StackFrameTransformers
|
import org.pkl.core.StackFrameTransformers
|
||||||
import org.pkl.core.evaluatorSettings.TraceMode
|
import org.pkl.core.evaluatorSettings.TraceMode
|
||||||
import org.pkl.core.http.HttpClient
|
|
||||||
import org.pkl.core.module.ModuleKeyFactories
|
import org.pkl.core.module.ModuleKeyFactories
|
||||||
import org.pkl.core.repl.ReplRequest
|
import org.pkl.core.repl.ReplRequest
|
||||||
import org.pkl.core.repl.ReplResponse
|
import org.pkl.core.repl.ReplResponse
|
||||||
import org.pkl.core.repl.ReplServer
|
import org.pkl.core.repl.ReplServer
|
||||||
import org.pkl.core.resource.ResourceReaders
|
|
||||||
import org.pkl.core.util.IoUtils
|
import org.pkl.core.util.IoUtils
|
||||||
|
import org.pkl.core.http.HttpClient
|
||||||
import org.pkl.parser.Parser
|
import org.pkl.parser.Parser
|
||||||
import org.pkl.parser.ParserError
|
import org.pkl.parser.ParserError
|
||||||
import org.pkl.parser.syntax.ClassProperty
|
import org.pkl.parser.syntax.ClassProperty
|
||||||
|
import org.pkl.core.resource.ResourceReaders
|
||||||
|
import java.nio.file.Files
|
||||||
|
import kotlin.io.path.isDirectory
|
||||||
|
import kotlin.io.path.isRegularFile
|
||||||
|
import kotlin.io.path.useDirectoryEntries
|
||||||
|
|
||||||
@Testable class DocSnippetTests
|
@Testable
|
||||||
|
class DocSnippetTests
|
||||||
|
|
||||||
class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.ExecutionContext>() {
|
class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.ExecutionContext>() {
|
||||||
private val projectDir = rootProjectDir.resolve("docs")
|
private val projectDir = rootProjectDir.resolve("docs")
|
||||||
@@ -55,8 +41,7 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
|||||||
private companion object {
|
private companion object {
|
||||||
val headingRegex = Regex("""(?u)^\s*(=++)\s*(.+)""")
|
val headingRegex = Regex("""(?u)^\s*(=++)\s*(.+)""")
|
||||||
val collapsibleBlockRegex = Regex("""(?u)^\s*\[%collapsible""")
|
val collapsibleBlockRegex = Regex("""(?u)^\s*\[%collapsible""")
|
||||||
val codeBlockRegex =
|
val codeBlockRegex = Regex("""(?u)^\s*\[source(?:%(tested|parsed)(%error)?)?(?:,\{?([a-zA-Z-_]+)}?)?""")
|
||||||
Regex("""(?u)^\s*\[source(?:%(tested|parsed)(%error)?)?(?:,\{?([a-zA-Z-_]+)}?)?""")
|
|
||||||
val codeBlockNameRegex = Regex("""(?u)^\s*\.(.+)""")
|
val codeBlockNameRegex = Regex("""(?u)^\s*\.(.+)""")
|
||||||
val codeBlockDelimiterRegex = Regex("""(?u)^\s*----""")
|
val codeBlockDelimiterRegex = Regex("""(?u)^\s*----""")
|
||||||
val graphicsRegex = Regex("\\[small]#.+#")
|
val graphicsRegex = Regex("\\[small]#.+#")
|
||||||
@@ -66,7 +51,7 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
|||||||
|
|
||||||
override fun discover(
|
override fun discover(
|
||||||
discoveryRequest: EngineDiscoveryRequest,
|
discoveryRequest: EngineDiscoveryRequest,
|
||||||
uniqueId: UniqueId,
|
uniqueId: UniqueId
|
||||||
): TestDescriptor {
|
): TestDescriptor {
|
||||||
val packageSelectors = discoveryRequest.getSelectorsByType(PackageSelector::class.java)
|
val packageSelectors = discoveryRequest.getSelectorsByType(PackageSelector::class.java)
|
||||||
val classSelectors = discoveryRequest.getSelectorsByType(ClassSelector::class.java)
|
val classSelectors = discoveryRequest.getSelectorsByType(ClassSelector::class.java)
|
||||||
@@ -77,14 +62,12 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
|||||||
val packageName = testClass.`package`.name
|
val packageName = testClass.`package`.name
|
||||||
val className = testClass.name
|
val className = testClass.name
|
||||||
|
|
||||||
if (
|
if (methodSelectors.isEmpty()
|
||||||
methodSelectors.isEmpty() &&
|
&& (packageSelectors.isEmpty() || packageSelectors.any { it.packageName == packageName })
|
||||||
(packageSelectors.isEmpty() || packageSelectors.any { it.packageName == packageName }) &&
|
&& (classSelectors.isEmpty() || classSelectors.any { it.className == className })
|
||||||
(classSelectors.isEmpty() || classSelectors.any { it.className == className })
|
|
||||||
) {
|
) {
|
||||||
|
|
||||||
val rootDescriptor =
|
val rootDescriptor = Descriptor.Path(uniqueId, docsDir.fileName.toString(), ClassSource.from(testClass), docsDir)
|
||||||
Descriptor.Path(uniqueId, docsDir.fileName.toString(), ClassSource.from(testClass), docsDir)
|
|
||||||
doDiscover(rootDescriptor, uniqueIdSelectors)
|
doDiscover(rootDescriptor, uniqueIdSelectors)
|
||||||
return rootDescriptor
|
return rootDescriptor
|
||||||
}
|
}
|
||||||
@@ -94,34 +77,36 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun createExecutionContext(request: ExecutionRequest): ExecutionContext {
|
override fun createExecutionContext(request: ExecutionRequest): ExecutionContext {
|
||||||
val replServer =
|
val replServer = ReplServer(
|
||||||
ReplServer(
|
SecurityManagers.defaultManager,
|
||||||
SecurityManagers.defaultManager,
|
HttpClient.dummyClient(),
|
||||||
HttpClient.dummyClient(),
|
Loggers.stdErr(),
|
||||||
Loggers.stdErr(),
|
listOf(
|
||||||
listOf(
|
ModuleKeyFactories.standardLibrary,
|
||||||
ModuleKeyFactories.standardLibrary,
|
ModuleKeyFactories.classPath(DocSnippetTests::class.java.classLoader),
|
||||||
ModuleKeyFactories.classPath(DocSnippetTests::class.java.classLoader),
|
ModuleKeyFactories.file
|
||||||
ModuleKeyFactories.file,
|
),
|
||||||
),
|
listOf(
|
||||||
listOf(ResourceReaders.environmentVariable(), ResourceReaders.externalProperty()),
|
ResourceReaders.environmentVariable(),
|
||||||
System.getenv(),
|
ResourceReaders.externalProperty()
|
||||||
emptyMap(),
|
),
|
||||||
null,
|
System.getenv(),
|
||||||
null,
|
emptyMap(),
|
||||||
null,
|
null,
|
||||||
IoUtils.getCurrentWorkingDir(),
|
null,
|
||||||
StackFrameTransformers.defaultTransformer,
|
null,
|
||||||
false,
|
IoUtils.getCurrentWorkingDir(),
|
||||||
TraceMode.COMPACT,
|
StackFrameTransformers.defaultTransformer,
|
||||||
)
|
false,
|
||||||
|
TraceMode.COMPACT,
|
||||||
|
)
|
||||||
return ExecutionContext(replServer)
|
return ExecutionContext(replServer)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun doDiscover(rootDescriptor: TestDescriptor, selectors: List<UniqueIdSelector>) {
|
private fun doDiscover(rootDescriptor: TestDescriptor, selectors: List<UniqueIdSelector>) {
|
||||||
fun isMatch(other: UniqueId) =
|
fun isMatch(other: UniqueId) = selectors.isEmpty() || selectors.any {
|
||||||
selectors.isEmpty() ||
|
it.uniqueId.hasPrefix(other) || other.hasPrefix(it.uniqueId)
|
||||||
selectors.any { it.uniqueId.hasPrefix(other) || other.hasPrefix(it.uniqueId) }
|
}
|
||||||
|
|
||||||
docsDir.useDirectoryEntries { docsDirEntries ->
|
docsDir.useDirectoryEntries { docsDirEntries ->
|
||||||
for (docsDirEntry in docsDirEntries) {
|
for (docsDirEntry in docsDirEntries) {
|
||||||
@@ -131,13 +116,12 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
|||||||
val docsDirEntryId = rootDescriptor.uniqueId.append("dir", docsDirEntryName)
|
val docsDirEntryId = rootDescriptor.uniqueId.append("dir", docsDirEntryName)
|
||||||
if (!isMatch(docsDirEntryId)) continue
|
if (!isMatch(docsDirEntryId)) continue
|
||||||
|
|
||||||
val docsDirEntryDescriptor =
|
val docsDirEntryDescriptor = Descriptor.Path(
|
||||||
Descriptor.Path(
|
docsDirEntryId,
|
||||||
docsDirEntryId,
|
docsDirEntryName,
|
||||||
docsDirEntryName,
|
DirectorySource.from(docsDirEntry.toFile()),
|
||||||
DirectorySource.from(docsDirEntry.toFile()),
|
docsDirEntry
|
||||||
docsDirEntry,
|
)
|
||||||
)
|
|
||||||
rootDescriptor.addChild(docsDirEntryDescriptor)
|
rootDescriptor.addChild(docsDirEntryDescriptor)
|
||||||
|
|
||||||
val pagesDir = docsDirEntry.resolve("pages")
|
val pagesDir = docsDirEntry.resolve("pages")
|
||||||
@@ -147,20 +131,17 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
|||||||
for (pagesDirEntry in pagesDirEntries) {
|
for (pagesDirEntry in pagesDirEntries) {
|
||||||
val pagesDirEntryName = pagesDirEntry.fileName.toString()
|
val pagesDirEntryName = pagesDirEntry.fileName.toString()
|
||||||
val pagesDirEntryId = docsDirEntryId.append("file", pagesDirEntryName)
|
val pagesDirEntryId = docsDirEntryId.append("file", pagesDirEntryName)
|
||||||
if (
|
if (!pagesDirEntry.isRegularFile() ||
|
||||||
!pagesDirEntry.isRegularFile() ||
|
!pagesDirEntryName.endsWith(".adoc") ||
|
||||||
!pagesDirEntryName.endsWith(".adoc") ||
|
!isMatch(pagesDirEntryId)
|
||||||
!isMatch(pagesDirEntryId)
|
) continue
|
||||||
)
|
|
||||||
continue
|
|
||||||
|
|
||||||
val pagesDirEntryDescriptor =
|
val pagesDirEntryDescriptor = Descriptor.Path(
|
||||||
Descriptor.Path(
|
pagesDirEntryId,
|
||||||
pagesDirEntryId,
|
pagesDirEntryName,
|
||||||
pagesDirEntryName,
|
FileSource.from(pagesDirEntry.toFile()),
|
||||||
FileSource.from(pagesDirEntry.toFile()),
|
pagesDirEntry
|
||||||
pagesDirEntry,
|
)
|
||||||
)
|
|
||||||
docsDirEntryDescriptor.addChild(pagesDirEntryDescriptor)
|
docsDirEntryDescriptor.addChild(pagesDirEntryDescriptor)
|
||||||
|
|
||||||
parseAsciidoc(pagesDirEntryDescriptor, selectors)
|
parseAsciidoc(pagesDirEntryDescriptor, selectors)
|
||||||
@@ -193,15 +174,17 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
|||||||
}
|
}
|
||||||
|
|
||||||
val parent = sections.firstOrNull() ?: docDescriptor
|
val parent = sections.firstOrNull() ?: docDescriptor
|
||||||
val normalizedTitle =
|
val normalizedTitle = title
|
||||||
title.replace("<code>", "").replace("</code>", "").replace(graphicsRegex, "").trim()
|
.replace("<code>", "")
|
||||||
val childSection =
|
.replace("</code>", "")
|
||||||
Descriptor.Section(
|
.replace(graphicsRegex, "")
|
||||||
parent.uniqueId.append("section", normalizedTitle),
|
.trim()
|
||||||
normalizedTitle,
|
val childSection = Descriptor.Section(
|
||||||
FileSource.from(docDescriptor.path.toFile(), FilePosition.from(lineNum)),
|
parent.uniqueId.append("section", normalizedTitle),
|
||||||
newLevel,
|
normalizedTitle,
|
||||||
)
|
FileSource.from(docDescriptor.path.toFile(), FilePosition.from(lineNum)),
|
||||||
|
newLevel
|
||||||
|
)
|
||||||
|
|
||||||
sections.addFirst(childSection)
|
sections.addFirst(childSection)
|
||||||
parent.addChild(childSection)
|
parent.addChild(childSection)
|
||||||
@@ -234,8 +217,7 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
|||||||
codeBlockNum += 1
|
codeBlockNum += 1
|
||||||
val (testMode, error, language) = codeBlockMatch.destructured
|
val (testMode, error, language) = codeBlockMatch.destructured
|
||||||
if (testMode.isNotEmpty()) {
|
if (testMode.isNotEmpty()) {
|
||||||
val blockName =
|
val blockName = codeBlockNameRegex.find(prevLine)?.groupValues?.get(1) ?: "snippet$codeBlockNum"
|
||||||
codeBlockNameRegex.find(prevLine)?.groupValues?.get(1) ?: "snippet$codeBlockNum"
|
|
||||||
while (linesIterator.hasNext()) {
|
while (linesIterator.hasNext()) {
|
||||||
advance()
|
advance()
|
||||||
val startDelimiterMatch = codeBlockDelimiterRegex.find(line)
|
val startDelimiterMatch = codeBlockDelimiterRegex.find(line)
|
||||||
@@ -254,13 +236,10 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
|||||||
snippetId,
|
snippetId,
|
||||||
blockName,
|
blockName,
|
||||||
language,
|
language,
|
||||||
FileSource.from(
|
FileSource.from(docDescriptor.path.toFile(), FilePosition.from(jumpToLineNum)),
|
||||||
docDescriptor.path.toFile(),
|
|
||||||
FilePosition.from(jumpToLineNum),
|
|
||||||
),
|
|
||||||
builder.toString(),
|
builder.toString(),
|
||||||
testMode == "parsed",
|
testMode == "parsed",
|
||||||
error.isNotEmpty(),
|
error.isNotEmpty()
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -282,21 +261,28 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private sealed class Descriptor(uniqueId: UniqueId, displayName: String, source: TestSource) :
|
private sealed class Descriptor(
|
||||||
AbstractTestDescriptor(uniqueId, displayName, source), Node<ExecutionContext> {
|
uniqueId: UniqueId,
|
||||||
|
displayName: String,
|
||||||
|
source: TestSource
|
||||||
|
) : AbstractTestDescriptor(uniqueId, displayName, source), Node<ExecutionContext> {
|
||||||
|
|
||||||
class Path(
|
class Path(
|
||||||
uniqueId: UniqueId,
|
uniqueId: UniqueId,
|
||||||
displayName: String,
|
displayName: String,
|
||||||
source: TestSource,
|
source: TestSource,
|
||||||
val path: java.nio.file.Path,
|
val path: java.nio.file.Path
|
||||||
) : Descriptor(uniqueId, displayName, source) {
|
) : Descriptor(uniqueId, displayName, source) {
|
||||||
|
|
||||||
override fun getType() = Type.CONTAINER
|
override fun getType() = Type.CONTAINER
|
||||||
}
|
}
|
||||||
|
|
||||||
class Section(uniqueId: UniqueId, displayName: String, source: TestSource, val level: Int) :
|
class Section(
|
||||||
Descriptor(uniqueId, displayName, source) {
|
uniqueId: UniqueId,
|
||||||
|
displayName: String,
|
||||||
|
source: TestSource,
|
||||||
|
val level: Int
|
||||||
|
) : Descriptor(uniqueId, displayName, source) {
|
||||||
|
|
||||||
override fun getType() = Type.CONTAINER
|
override fun getType() = Type.CONTAINER
|
||||||
|
|
||||||
@@ -313,7 +299,7 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
|||||||
source: TestSource,
|
source: TestSource,
|
||||||
private val code: String,
|
private val code: String,
|
||||||
private val parseOnly: Boolean,
|
private val parseOnly: Boolean,
|
||||||
private val expectError: Boolean,
|
private val expectError: Boolean
|
||||||
) : Descriptor(uniqueId, displayName, source) {
|
) : Descriptor(uniqueId, displayName, source) {
|
||||||
|
|
||||||
override fun getType() = Type.TEST
|
override fun getType() = Type.TEST
|
||||||
@@ -322,14 +308,11 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
|||||||
when (language) {
|
when (language) {
|
||||||
"pkl" -> Parser().parseModule(code)
|
"pkl" -> Parser().parseModule(code)
|
||||||
"pkl-expr" -> Parser().parseExpressionInput(code)
|
"pkl-expr" -> Parser().parseExpressionInput(code)
|
||||||
else -> throw (Exception("Unrecognized language: $language"))
|
else -> throw(Exception("Unrecognized language: $language"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun execute(
|
override fun execute(context: ExecutionContext, executor: DynamicTestExecutor): ExecutionContext {
|
||||||
context: ExecutionContext,
|
|
||||||
executor: DynamicTestExecutor,
|
|
||||||
): ExecutionContext {
|
|
||||||
if (parseOnly) {
|
if (parseOnly) {
|
||||||
try {
|
try {
|
||||||
parsed
|
parsed
|
||||||
@@ -345,7 +328,12 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
|||||||
}
|
}
|
||||||
|
|
||||||
context.replServer.handleRequest(
|
context.replServer.handleRequest(
|
||||||
ReplRequest.Eval("snippet", code, !expectError, !expectError)
|
ReplRequest.Eval(
|
||||||
|
"snippet",
|
||||||
|
code,
|
||||||
|
!expectError,
|
||||||
|
!expectError
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
val properties = parsed.children()?.filterIsInstance<ClassProperty>() ?: emptyList()
|
val properties = parsed.children()?.filterIsInstance<ClassProperty>() ?: emptyList()
|
||||||
@@ -354,21 +342,21 @@ class DocSnippetTestsEngine : HierarchicalTestEngine<DocSnippetTestsEngine.Execu
|
|||||||
|
|
||||||
// force each property
|
// force each property
|
||||||
for (prop in properties) {
|
for (prop in properties) {
|
||||||
responses.addAll(
|
responses.addAll(context.replServer.handleRequest(
|
||||||
context.replServer.handleRequest(
|
ReplRequest.Eval(
|
||||||
ReplRequest.Eval("snippet", prop.name.value, false, true)
|
"snippet",
|
||||||
|
prop.name.value,
|
||||||
|
false,
|
||||||
|
true
|
||||||
)
|
)
|
||||||
)
|
))
|
||||||
}
|
}
|
||||||
if (expectError) {
|
if (expectError) {
|
||||||
if (
|
if (responses.dropLast(1).any { it !is ReplResponse.EvalSuccess } ||
|
||||||
responses.dropLast(1).any { it !is ReplResponse.EvalSuccess } ||
|
responses.last() !is ReplResponse.EvalError) {
|
||||||
responses.last() !is ReplResponse.EvalError
|
|
||||||
) {
|
|
||||||
throw AssertionError(
|
throw AssertionError(
|
||||||
"Expected %error snippet to fail at the end, but got the following REPL responses:\n\n" +
|
"Expected %error snippet to fail at the end, but got the following REPL responses:\n\n" +
|
||||||
responses.joinToString("\n\n") { it.message }
|
responses.joinToString("\n\n") { it.message })
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return context
|
return context
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
# suppress inspection "UnusedProperty" for whole file
|
# suppress inspection "UnusedProperty" for whole file
|
||||||
|
|
||||||
group=org.pkl-lang
|
group=org.pkl-lang
|
||||||
version=0.32.0
|
version=0.30.2
|
||||||
|
|
||||||
# google-java-format requires jdk.compiler exports
|
# google-java-format requires jdk.compiler exports
|
||||||
org.gradle.jvmargs= \
|
org.gradle.jvmargs= \
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
#This file is generated by updateDaemonJvm
|
|
||||||
toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/1630f7ebef05444cb27a2709ea0249b3/redirect
|
|
||||||
toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/cd495626d2ee49a75447e3fdc6afb287/redirect
|
|
||||||
toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/1630f7ebef05444cb27a2709ea0249b3/redirect
|
|
||||||
toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/cd495626d2ee49a75447e3fdc6afb287/redirect
|
|
||||||
toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/d4fd992c9557644e637ebe98263e0ae7/redirect
|
|
||||||
toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/faa12903720d410b387cc69ccafb1a74/redirect
|
|
||||||
toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/1630f7ebef05444cb27a2709ea0249b3/redirect
|
|
||||||
toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/cd495626d2ee49a75447e3fdc6afb287/redirect
|
|
||||||
toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/8e1d9ee5d0f13e442218f6884a306da1/redirect
|
|
||||||
toolchainVendor=ADOPTIUM
|
|
||||||
toolchainVersion=25
|
|
||||||
+56
-81
@@ -1,68 +1,55 @@
|
|||||||
[versions] # ordered alphabetically
|
[versions] # ordered alphabetically
|
||||||
assertj = "3.27.7"
|
assertj = "3.+"
|
||||||
checksumPlugin = "1.4.0"
|
checksumPlugin = "1.4.0"
|
||||||
# 5.0.3 is the last version compatible with Kotlin 2.2
|
clikt = "5.+"
|
||||||
clikt = "5.0.3"
|
commonMark = "0.+"
|
||||||
commonMark = "0.28.0"
|
downloadTaskPlugin = "5.6.0"
|
||||||
downloadTaskPlugin = "5.7.0"
|
geantyref = "1.+"
|
||||||
errorProne = "2.49.0"
|
googleJavaFormat = "1.25.2"
|
||||||
errorPronePlugin = "5.1.0"
|
# must not use `+` because used in download URL
|
||||||
geantyref = "2.0.1"
|
# 23.1.x requires JDK 20+
|
||||||
#noinspection UnusedVersionCatalogEntry
|
graalVm = "25.0.0"
|
||||||
googleJavaFormat = "1.35.0"
|
graalVmJdkVersion = "25.0.0"
|
||||||
# 25.0.2 no longer supports macos-x64
|
|
||||||
graalVm = "25.0.1"
|
|
||||||
#noinspection UnusedVersionCatalogEntry
|
|
||||||
graalVmJdkVersion = "25.0.1"
|
|
||||||
# slightly hacky but convenient place so we remember to update the checksum
|
# slightly hacky but convenient place so we remember to update the checksum
|
||||||
#noinspection UnusedVersionCatalogEntry
|
graalVmSha256-macos-x64 = "04278cf867d040e29dc71dd7727793f0ea67eb72adce8a35d04b87b57906778d"
|
||||||
graalVmSha256-macos-x64 = "a3d895b4cd1c783badbd277ec70409806bd4102fca0d2a60dbaeb0bab41aec30"
|
graalVmSha256-macos-aarch64 = "c446d5aaeda98660a4c14049d299e9fba72105a007df89f19d27cf3979d37158"
|
||||||
#noinspection UnusedVersionCatalogEntry
|
graalVmSha256-linux-x64 = "1862f2ce97387a303cae4c512cb21baf36fafd2457c3cbbc10d87db94b89d3dd"
|
||||||
graalVmSha256-macos-aarch64 = "066339f24a8ab5c161548491a9400f7344e7761a1e46f8979e76c7ef11d5bc76"
|
graalVmSha256-linux-aarch64 = "6c3c8b7617006c5d174d9cf7d357ccfb4bae77a4df1294ee28084fcb6eea8921"
|
||||||
#noinspection UnusedVersionCatalogEntry
|
graalVmSha256-windows-x64 = "33ef1d186b5c1e95465fcc97e637bc26e72d5f2250a8615b9c5d667ed5c17fd0"
|
||||||
graalVmSha256-linux-x64 = "01e39fe1a87f28b842a3e4e3b77be9b544dca3a58fa6e93b924a6106c8bac7fb"
|
ideaExtPlugin = "1.1.9"
|
||||||
#noinspection UnusedVersionCatalogEntry
|
intellijPlugin = "2.10.1"
|
||||||
graalVmSha256-linux-aarch64 = "7aa0b9935a80e67f37c6025678393dbd123bb6f2226811decbc1a13093fc8ae2"
|
intellij = "2025.2.3"
|
||||||
#noinspection UnusedVersionCatalogEntry
|
javaPoet = "0.+"
|
||||||
graalVmSha256-windows-x64 = "fde83c5ceec2c75560c747ccd9f314f90e4cf5c5287416e67c4ce442e344ca27"
|
|
||||||
# pklGraalVm.gradle.kts assumes this entry exists
|
|
||||||
#noinspection UnusedVersionCatalogEntry
|
|
||||||
graalVmSha256-windows-aarch64 = "unavailable"
|
|
||||||
ideaExtPlugin = "1.4.1"
|
|
||||||
javaPoet = "0.16.0"
|
|
||||||
javaxInject = "1"
|
javaxInject = "1"
|
||||||
jimfs = "1.3.1"
|
jansi = "2.+"
|
||||||
jline = "4.1.3"
|
jimfs = "1.+"
|
||||||
jmh = "1.37"
|
# later versions don't work with native image
|
||||||
jmhPlugin = "0.7.3"
|
# (at least not without additional configuration; tested with 3.25.1 and 3.27.1)
|
||||||
jspecify = "1.0.0"
|
jline = "3.23.0"
|
||||||
junit = "6.1.0"
|
jmh = "1.+"
|
||||||
|
jmhPlugin = "0.7.2"
|
||||||
|
jsr305 = "3.+"
|
||||||
|
junit = "5.+"
|
||||||
|
junitPlatform = "1.+"
|
||||||
|
kotlin = "2.2.20"
|
||||||
# 1.7+ generates much more verbose code
|
# 1.7+ generates much more verbose code
|
||||||
kotlinPoet = "1.6.0"
|
kotlinPoet = "1.6.+"
|
||||||
kotlinStdLib = "2.2.21"
|
kotlinxHtml = "0.11.0"
|
||||||
#noinspection UnusedVersionCatalogEntry
|
kotlinxSerialization = "1.8.0"
|
||||||
kotlinTarget = "2.2"
|
kotlinxCoroutines = "1.+"
|
||||||
kotlinToolchain = "2.3.21"
|
ktfmt = "0.53"
|
||||||
kotlinxHtml = "0.12.0"
|
|
||||||
# 1.9.0 is the last version compatible with Kotlin 2.2
|
|
||||||
kotlinxSerialization = "1.9.0"
|
|
||||||
kotlinxCoroutines = "1.11.0"
|
|
||||||
#noinspection UnusedVersionCatalogEntry
|
|
||||||
ktfmt = "0.62"
|
|
||||||
# replaces nuValidator's log4j dependency
|
# replaces nuValidator's log4j dependency
|
||||||
# 2.17.1 is the last version compatible with nuValidator
|
# something related to log4j-1.2-api is apparently broken in 2.17.2
|
||||||
log4j = "2.17.1"
|
log4j = "2.17.1"
|
||||||
msgpack = "0.9.12"
|
msgpack = "0.9.8"
|
||||||
nexusPublishPlugin = "2.0.0"
|
nexusPublishPlugin = "2.0.0"
|
||||||
nullaway = "0.13.4"
|
nuValidator = "20.+"
|
||||||
nullawayPlugin = "3.0.0"
|
paguro = "3.+"
|
||||||
nuValidator = "26.5.29"
|
shadowPlugin = "9.+"
|
||||||
paguro = "3.10.3"
|
slf4j = "1.+"
|
||||||
shadowPlugin = "9.4.2"
|
snakeYaml = "2.+"
|
||||||
slf4j = "2.0.18"
|
spotlessPlugin = "6.25.0"
|
||||||
snakeYaml = "3.0.1"
|
wiremock = "3.+"
|
||||||
spotlessPlugin = "8.6.0"
|
|
||||||
wiremock = "3.13.2"
|
|
||||||
|
|
||||||
[libraries] # ordered alphabetically
|
[libraries] # ordered alphabetically
|
||||||
assertj = { group = "org.assertj", name = "assertj-core", version.ref = "assertj" }
|
assertj = { group = "org.assertj", name = "assertj-core", version.ref = "assertj" }
|
||||||
@@ -71,44 +58,35 @@ cliktMarkdown = { group = "com.github.ajalt.clikt", name = "clikt-markdown", ver
|
|||||||
commonMark = { group = "org.commonmark", name = "commonmark", version.ref = "commonMark" }
|
commonMark = { group = "org.commonmark", name = "commonmark", version.ref = "commonMark" }
|
||||||
commonMarkTables = { group = "org.commonmark", name = "commonmark-ext-gfm-tables", version.ref = "commonMark" }
|
commonMarkTables = { group = "org.commonmark", name = "commonmark-ext-gfm-tables", version.ref = "commonMark" }
|
||||||
downloadTaskPlugin = { group = "de.undercouch", name = "gradle-download-task", version.ref = "downloadTaskPlugin" }
|
downloadTaskPlugin = { group = "de.undercouch", name = "gradle-download-task", version.ref = "downloadTaskPlugin" }
|
||||||
#noinspection UnusedVersionCatalogEntry
|
|
||||||
errorProne = { group = "com.google.errorprone", name = "error_prone_core", version.ref = "errorProne" }
|
|
||||||
errorProneAnnotations = { group = "com.google.errorprone", name = "error_prone_annotations", version.ref = "errorProne" }
|
|
||||||
errorPronePlugin = { group = "net.ltgt.gradle", name = "gradle-errorprone-plugin", version.ref = "errorPronePlugin" }
|
|
||||||
geantyref = { group = "io.leangen.geantyref", name = "geantyref", version.ref = "geantyref" }
|
geantyref = { group = "io.leangen.geantyref", name = "geantyref", version.ref = "geantyref" }
|
||||||
graalCompiler = { group = "org.graalvm.compiler", name = "compiler", version.ref = "graalVm" }
|
graalCompiler = { group = "org.graalvm.compiler", name = "compiler", version.ref = "graalVm" }
|
||||||
graalSdk = { group = "org.graalvm.sdk", name = "graal-sdk", version.ref = "graalVm" }
|
graalSdk = { group = "org.graalvm.sdk", name = "graal-sdk", version.ref = "graalVm" }
|
||||||
graalJs = { group = "org.graalvm.js", name = "js", version.ref = "graalVm" }
|
graalJs = { group = "org.graalvm.js", name = "js", version.ref = "graalVm" }
|
||||||
|
intellij = { group = "com.jetbrains.intellij.idea", name = "ideaIC", version.ref = "intellij" }
|
||||||
javaPoet = { group = "com.palantir.javapoet", name = "javapoet", version.ref = "javaPoet" }
|
javaPoet = { group = "com.palantir.javapoet", name = "javapoet", version.ref = "javaPoet" }
|
||||||
javaxInject = { group = "javax.inject", name = "javax.inject", version.ref = "javaxInject" }
|
javaxInject = { group = "javax.inject", name = "javax.inject", version.ref = "javaxInject" }
|
||||||
|
jansi = { group = "org.fusesource.jansi", name = "jansi", version.ref = "jansi" }
|
||||||
jimfs = { group = "com.google.jimfs", name = "jimfs", version.ref = "jimfs" }
|
jimfs = { group = "com.google.jimfs", name = "jimfs", version.ref = "jimfs" }
|
||||||
jlineReader = { group = "org.jline", name = "jline-reader", version.ref = "jline" }
|
jlineReader = { group = "org.jline", name = "jline-reader", version.ref = "jline" }
|
||||||
jlineTerminal = { group = "org.jline", name = "jline-terminal", version.ref = "jline" }
|
jlineTerminal = { group = "org.jline", name = "jline-terminal", version.ref = "jline" }
|
||||||
jlineTerminalJni = { group = "org.jline", name = "jline-terminal-jni", version.ref = "jline" }
|
jlineTerminalJansi = { group = "org.jline", name = "jline-terminal-jansi", version.ref = "jline" }
|
||||||
#noinspection UnusedVersionCatalogEntry
|
jsr305 = { group = "com.google.code.findbugs", name = "jsr305", version.ref = "jsr305" }
|
||||||
jspecify = { group = "org.jspecify", name = "jspecify", version.ref = "jspecify" }
|
|
||||||
junitApi = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "junit" }
|
junitApi = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "junit" }
|
||||||
junitEngine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "junit" }
|
junitEngine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "junit" }
|
||||||
junitParams = { group = "org.junit.jupiter", name = "junit-jupiter-params", version.ref = "junit" }
|
junitParams = { group = "org.junit.jupiter", name = "junit-jupiter-params", version.ref = "junit" }
|
||||||
#noinspection UnusedVersionCatalogEntry
|
junitLauncher = { group = "org.junit.platform", name = "junit-platform-launcher", version.ref = "junitPlatform" }
|
||||||
junitLauncher = { group = "org.junit.platform", name = "junit-platform-launcher", version.ref = "junit" }
|
kotlinCompilerEmbeddable = { group = "org.jetbrains.kotlin", name = "kotlin-compiler-embeddable", version.ref = "kotlin" }
|
||||||
kotlinPlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlinToolchain" }
|
kotlinPlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }
|
||||||
kotlinPoet = { group = "com.squareup", name = "kotlinpoet", version.ref = "kotlinPoet" }
|
kotlinPoet = { group = "com.squareup", name = "kotlinpoet", version.ref = "kotlinPoet" }
|
||||||
kotlinReflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlinStdLib" }
|
kotlinReflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlin" }
|
||||||
kotlinScripting = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-jsr223", version.ref = "kotlinStdLib" }
|
kotlinScripting = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-jsr223", version.ref = "kotlin" }
|
||||||
#noinspection UnusedVersionCatalogEntry
|
kotlinStdLib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", version.ref = "kotlin" }
|
||||||
kotlinStdLib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlinStdLib" }
|
|
||||||
kotlinxHtml = { group = "org.jetbrains.kotlinx", name = "kotlinx-html-jvm", version.ref = "kotlinxHtml" }
|
kotlinxHtml = { group = "org.jetbrains.kotlinx", name = "kotlinx-html-jvm", version.ref = "kotlinxHtml" }
|
||||||
kotlinxSerializationJson = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerialization" }
|
kotlinxSerializationJson = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerialization" }
|
||||||
kotlinxCoroutinesCore = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" }
|
kotlinxCoroutinesCore = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" }
|
||||||
#noinspection UnusedVersionCatalogEntry
|
|
||||||
log4j12Api = { group = "org.apache.logging.log4j", name = "log4j-1.2-api", version.ref = "log4j" }
|
log4j12Api = { group = "org.apache.logging.log4j", name = "log4j-1.2-api", version.ref = "log4j" }
|
||||||
msgpack = { group = "org.msgpack", name = "msgpack-core", version.ref = "msgpack" }
|
msgpack = { group = "org.msgpack", name = "msgpack-core", version.ref = "msgpack" }
|
||||||
#noinspection UnusedVersionCatalogEntry
|
|
||||||
nuValidator = { group = "nu.validator", name = "validator", version.ref = "nuValidator" }
|
nuValidator = { group = "nu.validator", name = "validator", version.ref = "nuValidator" }
|
||||||
#noinspection UnusedVersionCatalogEntry
|
|
||||||
nullaway = { group = "com.uber.nullaway", name = "nullaway", version.ref = "nullaway" }
|
|
||||||
nullawayPlugin = { group = "net.ltgt.gradle", name = "gradle-nullaway-plugin", version.ref = "nullawayPlugin" }
|
|
||||||
# to be replaced with https://github.com/usethesource/capsule or https://github.com/lacuna/bifurcan
|
# to be replaced with https://github.com/usethesource/capsule or https://github.com/lacuna/bifurcan
|
||||||
paguro = { group = "org.organicdesign", name = "Paguro", version.ref = "paguro" }
|
paguro = { group = "org.organicdesign", name = "Paguro", version.ref = "paguro" }
|
||||||
pklConfigJavaAll025 = { group = "org.pkl-lang", name = "pkl-config-java-all", version = "0.25.0" }
|
pklConfigJavaAll025 = { group = "org.pkl-lang", name = "pkl-config-java-all", version = "0.25.0" }
|
||||||
@@ -126,12 +104,9 @@ wiremock = { group = "org.wiremock", name = "wiremock", version.ref = "wiremock"
|
|||||||
|
|
||||||
[plugins] # ordered alphabetically
|
[plugins] # ordered alphabetically
|
||||||
checksum = { id = "org.gradle.crypto.checksum", version.ref = "checksumPlugin" }
|
checksum = { id = "org.gradle.crypto.checksum", version.ref = "checksumPlugin" }
|
||||||
#noinspection UnusedVersionCatalogEntry
|
|
||||||
errorProne = { id = "net.ltgt.errorprone", version.ref = "errorPronePlugin" }
|
|
||||||
ideaExt = { id = "org.jetbrains.gradle.plugin.idea-ext", version.ref = "ideaExtPlugin" }
|
ideaExt = { id = "org.jetbrains.gradle.plugin.idea-ext", version.ref = "ideaExtPlugin" }
|
||||||
jmh = { id = "me.champeau.jmh", version.ref = "jmhPlugin" }
|
jmh = { id = "me.champeau.jmh", version.ref = "jmhPlugin" }
|
||||||
kotlinxSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlinToolchain" }
|
kotlinxSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
|
||||||
nexusPublish = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexusPublishPlugin" }
|
nexusPublish = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexusPublishPlugin" }
|
||||||
#noinspection UnusedVersionCatalogEntry
|
|
||||||
nullaway = { id = "net.ltgt.nullaway", version.ref = "nullawayPlugin" }
|
|
||||||
shadow = { id = "com.gradleup.shadow", version.ref = "shadowPlugin" }
|
shadow = { id = "com.gradleup.shadow", version.ref = "shadowPlugin" }
|
||||||
|
intellij = { id = "org.jetbrains.intellij.platform", version.ref = "intellijPlugin" }
|
||||||
|
|||||||
Vendored
BIN
Binary file not shown.
+2
-4
@@ -1,10 +1,8 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionSha256Sum=bafc141b619ad6350fd975fc903156dd5c151998cc8b058e8c1044ab5f7b031f
|
distributionSha256Sum=a17ddd85a26b6a7f5ddb71ff8b05fc5104c0202c6e64782429790c933686c806
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
retries=0
|
|
||||||
retryBackOffMs=500
|
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright © 2015 the original authors.
|
# Copyright © 2015-2021 the original authors.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
# Darwin, MinGW, and NonStop.
|
# Darwin, MinGW, and NonStop.
|
||||||
#
|
#
|
||||||
# (3) This script is generated from the Groovy template
|
# (3) This script is generated from the Groovy template
|
||||||
# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||||
# within the Gradle project.
|
# within the Gradle project.
|
||||||
#
|
#
|
||||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||||
@@ -114,6 +114,7 @@ case "$( uname )" in #(
|
|||||||
NONSTOP* ) nonstop=true ;;
|
NONSTOP* ) nonstop=true ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
CLASSPATH="\\\"\\\""
|
||||||
|
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
# Determine the Java command to use to start the JVM.
|
||||||
@@ -171,6 +172,7 @@ fi
|
|||||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||||
if "$cygwin" || "$msys" ; then
|
if "$cygwin" || "$msys" ; then
|
||||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||||
|
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
||||||
|
|
||||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||||
|
|
||||||
@@ -210,6 +212,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
|||||||
|
|
||||||
set -- \
|
set -- \
|
||||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||||
|
-classpath "$CLASSPATH" \
|
||||||
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
||||||
"$@"
|
"$@"
|
||||||
|
|
||||||
|
|||||||
Vendored
+22
-10
@@ -23,8 +23,8 @@
|
|||||||
@rem
|
@rem
|
||||||
@rem ##########################################################################
|
@rem ##########################################################################
|
||||||
|
|
||||||
@rem Set local scope for the variables, and ensure extensions are enabled
|
@rem Set local scope for the variables with windows NT shell
|
||||||
setlocal EnableExtensions
|
if "%OS%"=="Windows_NT" setlocal
|
||||||
|
|
||||||
set DIRNAME=%~dp0
|
set DIRNAME=%~dp0
|
||||||
if "%DIRNAME%"=="" set DIRNAME=.
|
if "%DIRNAME%"=="" set DIRNAME=.
|
||||||
@@ -51,7 +51,7 @@ echo. 1>&2
|
|||||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||||
echo location of your Java installation. 1>&2
|
echo location of your Java installation. 1>&2
|
||||||
|
|
||||||
"%COMSPEC%" /c exit 1
|
goto fail
|
||||||
|
|
||||||
:findJavaFromJavaHome
|
:findJavaFromJavaHome
|
||||||
set JAVA_HOME=%JAVA_HOME:"=%
|
set JAVA_HOME=%JAVA_HOME:"=%
|
||||||
@@ -65,18 +65,30 @@ echo. 1>&2
|
|||||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||||
echo location of your Java installation. 1>&2
|
echo location of your Java installation. 1>&2
|
||||||
|
|
||||||
"%COMSPEC%" /c exit 1
|
goto fail
|
||||||
|
|
||||||
:execute
|
:execute
|
||||||
@rem Setup the command line
|
@rem Setup the command line
|
||||||
|
|
||||||
|
set CLASSPATH=
|
||||||
|
|
||||||
|
|
||||||
@rem Execute Gradle
|
@rem Execute Gradle
|
||||||
@rem endlocal doesn't take effect until after the line is parsed and variables are expanded
|
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
|
||||||
@rem which allows us to clear the local environment before executing the java command
|
|
||||||
endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel
|
|
||||||
|
|
||||||
:exitWithErrorLevel
|
:end
|
||||||
@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts
|
@rem End local scope for the variables with windows NT shell
|
||||||
"%COMSPEC%" /c exit %ERRORLEVEL%
|
if %ERRORLEVEL% equ 0 goto mainEnd
|
||||||
|
|
||||||
|
:fail
|
||||||
|
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||||
|
rem the _cmd.exe /c_ return code!
|
||||||
|
set EXIT_CODE=%ERRORLEVEL%
|
||||||
|
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
||||||
|
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
||||||
|
exit /b %EXIT_CODE%
|
||||||
|
|
||||||
|
:mainEnd
|
||||||
|
if "%OS%"=="Windows_NT" endlocal
|
||||||
|
|
||||||
|
:omega
|
||||||
|
|||||||
+3
-3
@@ -2,15 +2,15 @@
|
|||||||
"catalogs": {},
|
"catalogs": {},
|
||||||
"aliases": {
|
"aliases": {
|
||||||
"pkl": {
|
"pkl": {
|
||||||
"script-ref": "org.pkl-lang:pkl-cli-java:0.31.1",
|
"script-ref": "org.pkl-lang:pkl-cli-java:0.30.2",
|
||||||
"java-agents": []
|
"java-agents": []
|
||||||
},
|
},
|
||||||
"pkl-codegen-java": {
|
"pkl-codegen-java": {
|
||||||
"script-ref": "org.pkl-lang:pkl-codegen-java:0.31.1",
|
"script-ref": "org.pkl-lang:pkl-codegen-java:0.30.2",
|
||||||
"java-agents": []
|
"java-agents": []
|
||||||
},
|
},
|
||||||
"pkl-codegen-kotlin": {
|
"pkl-codegen-kotlin": {
|
||||||
"script-ref": "org.pkl-lang:pkl-codegen-kotlin:0.31.1",
|
"script-ref": "org.pkl-lang:pkl-codegen-kotlin:0.30.2",
|
||||||
"java-agents": []
|
"java-agents": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,60 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
plugins {
|
|
||||||
id("pklAllProjects")
|
|
||||||
`java-platform`
|
|
||||||
`maven-publish`
|
|
||||||
signing
|
|
||||||
}
|
|
||||||
|
|
||||||
description = "Pkl BOM that includes all modules"
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
constraints {
|
|
||||||
api(projects.pklCli)
|
|
||||||
api(projects.pklCodegenJava)
|
|
||||||
api(projects.pklCodegenKotlin)
|
|
||||||
// Use explicit coordinates for pkl-config-java to avoid ambiguity with fatJar publication
|
|
||||||
api("${project.group}:pkl-config-java:${project.version}")
|
|
||||||
api("${project.group}:pkl-config-java-all:${project.version}")
|
|
||||||
api(projects.pklConfigKotlin)
|
|
||||||
api(projects.pklCore)
|
|
||||||
api(projects.pklDoc)
|
|
||||||
api(projects.pklExecutor)
|
|
||||||
api(projects.pklFormatter)
|
|
||||||
api(projects.pklGradle)
|
|
||||||
api(projects.pklParser)
|
|
||||||
api(projects.pklTools)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
publishing {
|
|
||||||
publications {
|
|
||||||
create<MavenPublication>("library") {
|
|
||||||
from(components["javaPlatform"])
|
|
||||||
pom {
|
|
||||||
url.set("https://github.com/apple/pkl/tree/main/pkl-bom")
|
|
||||||
description.set("Bill of Materials for managing Pkl dependency versions")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
configurePklPomMetadata()
|
|
||||||
|
|
||||||
configurePomValidation()
|
|
||||||
|
|
||||||
configurePklSigning()
|
|
||||||
@@ -0,0 +1,145 @@
|
|||||||
|
# This is a Gradle generated file for dependency locking.
|
||||||
|
# Manual edits can break the build and are not advised.
|
||||||
|
# This file is expected to be part of source control.
|
||||||
|
com.ethlo.time:itu:1.10.3=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.fasterxml.jackson.core:jackson-annotations:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.fasterxml.jackson.core:jackson-core:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.fasterxml.jackson.core:jackson-databind:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.fasterxml.jackson:jackson-bom:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-core-jvm:5.0.3=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-core:5.0.3=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-jvm:5.0.3=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-markdown-jvm:5.0.3=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt-markdown:5.0.3=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.clikt:clikt:5.0.3=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.colormath:colormath-jvm:3.6.0=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.colormath:colormath:3.6.0=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-core-jvm:3.0.1=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-core:3.0.1=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-ffm-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-ffm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-graal-ffi-jvm:3.0.1=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-graal-ffi:3.0.1=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-jna-jvm:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm-jna:3.0.1=runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-jvm:3.0.1=compileClasspath,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-markdown-jvm:3.0.1=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant-markdown:3.0.1=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
com.github.ajalt.mordant:mordant:3.0.1=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.ben-manes.caffeine:caffeine:2.9.3=swiftExportClasspathResolvable
|
||||||
|
com.github.jknack:handlebars-helpers:4.3.1=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.github.jknack:handlebars:4.3.1=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.google.errorprone:error_prone_annotations:2.28.0=swiftExportClasspathResolvable
|
||||||
|
com.google.errorprone:error_prone_annotations:2.36.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.google.guava:failureaccess:1.0.3=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.google.guava:guava:33.4.8-jre=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.google.j2objc:j2objc-annotations:3.0.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.jayway.jsonpath:json-path:2.9.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
com.networknt:json-schema-validator:1.5.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
commons-fileupload:commons-fileupload:1.6.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
commons-io:commons-io:2.19.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
io.github.java-diff-utils:java-diff-utils:4.12=kotlinInternalAbiValidation
|
||||||
|
io.opentelemetry:opentelemetry-api:1.41.0=swiftExportClasspathResolvable
|
||||||
|
io.opentelemetry:opentelemetry-context:1.41.0=swiftExportClasspathResolvable
|
||||||
|
net.bytebuddy:byte-buddy:1.17.7=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
net.java.dev.jna:jna:5.14.0=runtimeClasspath,testRuntimeClasspath
|
||||||
|
net.javacrumbs.json-unit:json-unit-core:2.40.1=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
net.minidev:accessors-smart:2.5.0=testRuntimeClasspath
|
||||||
|
net.minidev:json-smart:2.5.0=testRuntimeClasspath
|
||||||
|
net.sf.jopt-simple:jopt-simple:5.0.4=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.apache.httpcomponents.client5:httpclient5:5.5=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.apache.httpcomponents.core5:httpcore5-h2:5.3.4=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.apache.httpcomponents.core5:httpcore5:5.3.4=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.apiguardian:apiguardian-api:1.1.2=testCompileClasspath,testImplementationDependenciesMetadata
|
||||||
|
org.assertj:assertj-core:3.27.6=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.bouncycastle:bcpg-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||||
|
org.bouncycastle:bcpkix-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||||
|
org.bouncycastle:bcprov-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||||
|
org.bouncycastle:bcutil-jdk18on:1.80=kotlinBouncyCastleConfiguration
|
||||||
|
org.checkerframework:checker-qual:3.43.0=swiftExportClasspathResolvable
|
||||||
|
org.eclipse.jetty.http2:http2-common:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty.http2:http2-hpack:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty.http2:http2-server:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty.toolchain:jetty-jakarta-servlet-api:5.0.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-alpn-client:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-alpn-java-client:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-alpn-java-server:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-alpn-server:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-bom:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-client:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-http:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-io:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-proxy:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-security:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-server:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-servlet:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-servlets:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-util:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-webapp:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.eclipse.jetty:jetty-xml:11.0.24=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.fusesource.jansi:jansi:2.4.2=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.graalvm.polyglot:polyglot:25.0.0=compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:collections:25.0.0=compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:graal-sdk:25.0.0=compileClasspath,compileOnlyDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:jniutils:25.0.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:nativeimage:25.0.0=compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.graalvm.sdk:word:25.0.0=compileClasspath,compileOnlyDependenciesMetadata,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.graalvm.truffle:truffle-api:25.0.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.graalvm.truffle:truffle-compiler:25.0.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.graalvm.truffle:truffle-runtime:25.0.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.hamcrest:hamcrest-core:2.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.hamcrest:hamcrest:2.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:abi-tools-api:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:abi-tools:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-api:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-build-tools-impl:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-compiler-runner:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-client:2.2.20=kotlinBuildToolsApiClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:2.2.20=kotlinKlibCommonizerClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-metadata-jvm:2.2.20=kotlinInternalAbiValidation
|
||||||
|
org.jetbrains.kotlin:kotlin-native-prebuilt:2.0.21=kotlinNativeBundleConfiguration
|
||||||
|
org.jetbrains.kotlin:kotlin-reflect:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-script-runtime:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-common:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-scripting-jvm:2.2.20=kotlinBuildToolsApiClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:kotlin-stdlib:2.2.20=apiDependenciesMetadata,compileClasspath,implementationDependenciesMetadata,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,nativeImageClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jetbrains.kotlin:swift-export-embeddable:2.2.20=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0=kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3=swiftExportClasspathResolvable
|
||||||
|
org.jetbrains:annotations:13.0=compileClasspath,kotlinBuildToolsApiClasspath,kotlinCompilerClasspath,kotlinCompilerPluginClasspathMain,kotlinCompilerPluginClasspathTest,kotlinInternalAbiValidation,kotlinKlibCommonizerClasspath,nativeImageClasspath,runtimeClasspath,swiftExportClasspathResolvable,testCompileClasspath,testRuntimeClasspath
|
||||||
|
org.jetbrains:markdown-jvm:0.7.3=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.jetbrains:markdown:0.7.3=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.jline:jline-native:3.23.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jline:jline-reader:3.23.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jline:jline-terminal-jansi:3.23.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jline:jline-terminal:3.23.0=compileClasspath,implementationDependenciesMetadata,nativeImageClasspath,runtimeClasspath,testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.jspecify:jspecify:1.0.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-engine:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-commons:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-engine:1.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.junit.platform:junit-platform-launcher:1.14.0=testRuntimeClasspath
|
||||||
|
org.junit:junit-bom:5.14.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.msgpack:msgpack-core:0.9.8=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.opentest4j:opentest4j:1.3.0=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.organicdesign:Paguro:3.10.3=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.slf4j:slf4j-api:2.0.17=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.snakeyaml:snakeyaml-engine:2.10=nativeImageClasspath,runtimeClasspath,testRuntimeClasspath
|
||||||
|
org.wiremock:wiremock:3.13.1=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.xmlunit:xmlunit-core:2.10.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.xmlunit:xmlunit-legacy:2.10.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.xmlunit:xmlunit-placeholders:2.10.2=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
org.yaml:snakeyaml:2.4=testCompileClasspath,testImplementationDependenciesMetadata,testRuntimeClasspath
|
||||||
|
empty=annotationProcessor,intransitiveDependenciesMetadata,javaExecutable,kotlinCompilerPluginClasspath,kotlinNativeCompilerPluginClasspath,kotlinScriptDefExtensions,shadow,signatures,sourcesJar,stagedAlpineLinuxAmd64Executable,stagedLinuxAarch64Executable,stagedLinuxAmd64Executable,stagedMacAarch64Executable,stagedMacAmd64Executable,stagedWindowsAmd64Executable,testAnnotationProcessor,testApiDependenciesMetadata,testCompileOnlyDependenciesMetadata,testIntransitiveDependenciesMetadata,testKotlinScriptDefExtensions
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -18,14 +18,14 @@ import java.io.OutputStream
|
|||||||
import org.gradle.kotlin.dsl.support.serviceOf
|
import org.gradle.kotlin.dsl.support.serviceOf
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("pklAllProjects")
|
pklAllProjects
|
||||||
id("pklKotlinLibrary")
|
pklKotlinLibrary
|
||||||
id("pklPublishLibrary")
|
pklPublishLibrary
|
||||||
id("pklJavaExecutable")
|
pklJavaExecutable
|
||||||
id("pklNativeExecutable")
|
pklNativeExecutable
|
||||||
`maven-publish`
|
`maven-publish`
|
||||||
|
|
||||||
// already on build script class path (see build-logic/build.gradle.kts),
|
// already on build script class path (see buildSrc/build.gradle.kts),
|
||||||
// hence must only specify plugin ID here
|
// hence must only specify plugin ID here
|
||||||
id(libs.plugins.shadow.get().pluginId)
|
id(libs.plugins.shadow.get().pluginId)
|
||||||
|
|
||||||
@@ -56,9 +56,10 @@ dependencies {
|
|||||||
api(projects.pklCommonsCli)
|
api(projects.pklCommonsCli)
|
||||||
|
|
||||||
implementation(projects.pklCommons)
|
implementation(projects.pklCommons)
|
||||||
|
implementation(libs.jansi)
|
||||||
implementation(libs.jlineReader)
|
implementation(libs.jlineReader)
|
||||||
implementation(libs.jlineTerminal)
|
implementation(libs.jlineTerminal)
|
||||||
implementation(libs.jlineTerminalJni)
|
implementation(libs.jlineTerminalJansi)
|
||||||
implementation(projects.pklServer)
|
implementation(projects.pklServer)
|
||||||
implementation(projects.pklFormatter)
|
implementation(projects.pklFormatter)
|
||||||
implementation(libs.clikt)
|
implementation(libs.clikt)
|
||||||
|
|||||||
@@ -1,270 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright © 2025-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package org.pkl.cli
|
|
||||||
|
|
||||||
import com.github.ajalt.clikt.completion.CompletionCandidates
|
|
||||||
import com.github.ajalt.clikt.completion.CompletionCommand
|
|
||||||
import com.github.ajalt.clikt.core.*
|
|
||||||
import com.github.ajalt.clikt.parameters.arguments.*
|
|
||||||
import com.github.ajalt.clikt.parameters.options.*
|
|
||||||
import com.github.ajalt.clikt.parameters.types.int
|
|
||||||
import java.io.OutputStream
|
|
||||||
import java.net.URI
|
|
||||||
import java.nio.file.Path
|
|
||||||
import kotlin.io.path.createParentDirectories
|
|
||||||
import kotlin.io.path.exists
|
|
||||||
import kotlin.io.path.isDirectory
|
|
||||||
import kotlin.io.path.writeBytes
|
|
||||||
import org.pkl.commons.cli.CliBaseOptions
|
|
||||||
import org.pkl.commons.cli.CliCommand
|
|
||||||
import org.pkl.commons.cli.CliException
|
|
||||||
import org.pkl.commons.cli.commands.installCommonOptions
|
|
||||||
import org.pkl.commons.currentWorkingDir
|
|
||||||
import org.pkl.core.Closeables
|
|
||||||
import org.pkl.core.CommandSpec
|
|
||||||
import org.pkl.core.EvaluatorBuilder
|
|
||||||
import org.pkl.core.FileOutput
|
|
||||||
import org.pkl.core.ModuleSource.uri
|
|
||||||
import org.pkl.core.PklBugException
|
|
||||||
import org.pkl.core.PklException
|
|
||||||
import org.pkl.core.util.IoUtils
|
|
||||||
|
|
||||||
class CliCommandRunner
|
|
||||||
@JvmOverloads
|
|
||||||
constructor(
|
|
||||||
private val options: CliBaseOptions,
|
|
||||||
private val reservedFlagNames: Set<String>,
|
|
||||||
private val reservedFlagShortNames: Set<String>,
|
|
||||||
private val args: List<String>,
|
|
||||||
private val outputStream: OutputStream = System.out,
|
|
||||||
private val errStream: OutputStream = System.err,
|
|
||||||
) : CliCommand(options) {
|
|
||||||
|
|
||||||
override fun doRun() {
|
|
||||||
val builder = evaluatorBuilder()
|
|
||||||
try {
|
|
||||||
evalCmd(builder)
|
|
||||||
} finally {
|
|
||||||
Closeables.closeQuietly(builder.moduleKeyFactories)
|
|
||||||
Closeables.closeQuietly(builder.resourceReaders)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun evalCmd(builder: EvaluatorBuilder) {
|
|
||||||
val evaluator = builder.build()
|
|
||||||
evaluator.use {
|
|
||||||
evaluator.evaluateCommand(
|
|
||||||
uri(options.normalizedSourceModules.first()),
|
|
||||||
reservedFlagNames,
|
|
||||||
reservedFlagShortNames,
|
|
||||||
) { spec ->
|
|
||||||
try {
|
|
||||||
val root = SynthesizedRunCommand(spec, this, options.sourceModules.first().toString())
|
|
||||||
root.installCommonOptions(includeVersion = false)
|
|
||||||
root.subcommands(
|
|
||||||
CompletionCommand(
|
|
||||||
name = "shell-completion",
|
|
||||||
help = "Generate a completion script for the given shell",
|
|
||||||
)
|
|
||||||
)
|
|
||||||
root.parse(args)
|
|
||||||
} catch (e: PklException) {
|
|
||||||
throw e
|
|
||||||
} catch (e: Exception) {
|
|
||||||
throw e.message?.let { PklException(it, e) } ?: PklException(e)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Renders the comand's `output.bytes`, writing it to the standard output stream. */
|
|
||||||
fun writeOutput(outputBytes: ByteArray) {
|
|
||||||
if (outputBytes.isEmpty()) return
|
|
||||||
outputStream.write(outputBytes)
|
|
||||||
outputStream.flush()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Renders the command's `output.files`, writing each entry as a file.
|
|
||||||
*
|
|
||||||
* File paths are written to the standard error stream.
|
|
||||||
*
|
|
||||||
* Unlike CliEvaluator, command outputs write relative to --working-dir and may write files
|
|
||||||
* anywhere in the filesystem. This is intentionally less sandboxed than `pkl eval` and directly
|
|
||||||
* targets the capabilities of CLI tools written in general purpose languages. Pkl commands should
|
|
||||||
* therefore be treated as untrusted code the way that any other CLI tool would be.
|
|
||||||
*/
|
|
||||||
fun writeMultipleFileOutput(outputFiles: Map<String, FileOutput>) {
|
|
||||||
if (outputFiles.isEmpty()) return
|
|
||||||
|
|
||||||
val writtenFiles = mutableMapOf<Path, String>()
|
|
||||||
val outputDir = options.normalizedWorkingDir
|
|
||||||
if (outputDir.exists() && !outputDir.isDirectory()) {
|
|
||||||
throw CliException("Output path `$outputDir` exists and is not a directory.")
|
|
||||||
}
|
|
||||||
for ((pathSpec, fileOutput) in outputFiles) {
|
|
||||||
checkPathSpec(pathSpec)
|
|
||||||
val resolvedPath = outputDir.resolve(pathSpec).normalize()
|
|
||||||
val realPath = if (resolvedPath.exists()) resolvedPath.toRealPath() else resolvedPath
|
|
||||||
val previousOutput = writtenFiles[realPath]
|
|
||||||
if (previousOutput != null) {
|
|
||||||
throw CliException(
|
|
||||||
"Output file conflict: `output.files` entries `\"${previousOutput}\"` and `\"$pathSpec\"` resolve to the same file path `$realPath`."
|
|
||||||
)
|
|
||||||
}
|
|
||||||
if (realPath.isDirectory()) {
|
|
||||||
throw CliException(
|
|
||||||
"Output file conflict: `output.files` entry `\"$pathSpec\"` resolves to file path `$realPath`, which is a directory."
|
|
||||||
)
|
|
||||||
}
|
|
||||||
writtenFiles[realPath] = pathSpec
|
|
||||||
realPath.createParentDirectories()
|
|
||||||
realPath.writeBytes(fileOutput.bytes)
|
|
||||||
val displayPath =
|
|
||||||
if (Path.of(pathSpec).isAbsolute) pathSpec
|
|
||||||
else IoUtils.relativize(resolvedPath, currentWorkingDir).toString()
|
|
||||||
errStream.writeText(displayPath + IoUtils.getLineSeparator())
|
|
||||||
errStream.flush()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class SynthesizedRunCommand(
|
|
||||||
private val spec: CommandSpec,
|
|
||||||
private val runner: CliCommandRunner,
|
|
||||||
name: String? = null,
|
|
||||||
) : CliktCommand(name = name ?: spec.name) {
|
|
||||||
init {
|
|
||||||
spec.options.forEach { opt ->
|
|
||||||
when (opt) {
|
|
||||||
is CommandSpec.Flag ->
|
|
||||||
registerOption(
|
|
||||||
option(
|
|
||||||
names = opt.names,
|
|
||||||
help = opt.helpText ?: "",
|
|
||||||
metavar = opt.metavar,
|
|
||||||
hidden = opt.hidden,
|
|
||||||
completionCandidates = opt.completionCandidates?.toClikt(),
|
|
||||||
)
|
|
||||||
.convert {
|
|
||||||
try {
|
|
||||||
opt.transformEach.apply(it, workingDirUri)
|
|
||||||
} catch (e: CommandSpec.Option.BadValue) {
|
|
||||||
fail(e.message!!)
|
|
||||||
} catch (_: CommandSpec.Option.MissingOption) {
|
|
||||||
throw MissingOption(option)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.transformAll(opt.defaultValue, opt.showAsRequired) {
|
|
||||||
try {
|
|
||||||
opt.transformAll.apply(it, workingDirUri)
|
|
||||||
} catch (e: CommandSpec.Option.BadValue) {
|
|
||||||
fail(e.message!!)
|
|
||||||
} catch (_: CommandSpec.Option.MissingOption) {
|
|
||||||
throw MissingOption(option)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
is CommandSpec.BooleanFlag ->
|
|
||||||
registerOption(
|
|
||||||
if (opt.defaultValue != null)
|
|
||||||
option(names = opt.names, help = opt.helpText ?: "", hidden = opt.hidden)
|
|
||||||
.flag("--no-${opt.name}", default = opt.defaultValue!!)
|
|
||||||
else
|
|
||||||
option(names = opt.names, help = opt.helpText ?: "", hidden = opt.hidden)
|
|
||||||
.nullableFlag("--no-${opt.name}")
|
|
||||||
)
|
|
||||||
is CommandSpec.CountedFlag ->
|
|
||||||
registerOption(
|
|
||||||
option(names = opt.names, help = opt.helpText ?: "", hidden = opt.hidden)
|
|
||||||
.int()
|
|
||||||
.transformValues(0..0) { it.lastOrNull() ?: 1 }
|
|
||||||
.transformAll { it.sum().toLong() }
|
|
||||||
)
|
|
||||||
is CommandSpec.Argument ->
|
|
||||||
registerArgument(
|
|
||||||
argument(
|
|
||||||
opt.name,
|
|
||||||
opt.helpText ?: "",
|
|
||||||
completionCandidates = opt.completionCandidates?.toClikt(),
|
|
||||||
)
|
|
||||||
.convert {
|
|
||||||
try {
|
|
||||||
opt.transformEach.apply(it, workingDirUri)
|
|
||||||
} catch (e: CommandSpec.Option.BadValue) {
|
|
||||||
fail(e.message!!)
|
|
||||||
} catch (_: CommandSpec.Option.MissingOption) {
|
|
||||||
throw MissingArgument(argument)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.transformAll(if (opt.repeated) -1 else 1, !opt.repeated) {
|
|
||||||
try {
|
|
||||||
opt.transformAll.apply(it, workingDirUri)
|
|
||||||
} catch (e: CommandSpec.Option.BadValue) {
|
|
||||||
fail(e.message!!)
|
|
||||||
} catch (_: CommandSpec.Option.MissingOption) {
|
|
||||||
throw MissingArgument(argument)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
spec.subcommands.forEach { subcommands(SynthesizedRunCommand(it, runner)) }
|
|
||||||
}
|
|
||||||
|
|
||||||
val workingDirUri: URI by lazy { runner.options.normalizedWorkingDir.toUri() }
|
|
||||||
|
|
||||||
override val invokeWithoutSubcommand = true
|
|
||||||
|
|
||||||
override val hiddenFromHelp: Boolean = spec.hidden
|
|
||||||
|
|
||||||
override fun help(context: Context): String = spec.helpText ?: ""
|
|
||||||
|
|
||||||
override fun run() {
|
|
||||||
if (currentContext.invokedSubcommand is CompletionCommand) return
|
|
||||||
|
|
||||||
val opts =
|
|
||||||
registeredOptions()
|
|
||||||
.mapNotNull {
|
|
||||||
val opt = it as? OptionWithValues<*, *, *> ?: return@mapNotNull null
|
|
||||||
return@mapNotNull if (it.names.contains("--help")) null
|
|
||||||
else it.names.last().trimStart('-') to opt.value
|
|
||||||
}
|
|
||||||
.toMap() +
|
|
||||||
registeredArguments()
|
|
||||||
.mapNotNull { it as? ArgumentDelegate<*> }
|
|
||||||
.associateBy({ it.name }, { it.value })
|
|
||||||
|
|
||||||
val state = spec.apply.apply(opts, currentContext.obj as CommandSpec.State?)
|
|
||||||
currentContext.obj = state
|
|
||||||
|
|
||||||
if (currentContext.invokedSubcommand != null) return
|
|
||||||
if (spec.subcommands.isNotEmpty() && spec.noOp) {
|
|
||||||
throw PrintHelpMessage(currentContext, true, 1)
|
|
||||||
}
|
|
||||||
|
|
||||||
val result = state.evaluate()
|
|
||||||
runner.writeOutput(result.outputBytes)
|
|
||||||
runner.writeMultipleFileOutput(result.outputFiles)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun CommandSpec.CompletionCandidates.toClikt(): CompletionCandidates =
|
|
||||||
when (this) {
|
|
||||||
CommandSpec.CompletionCandidates.PATH -> CompletionCandidates.Path
|
|
||||||
is CommandSpec.CompletionCandidates.Fixed -> CompletionCandidates.Fixed(values)
|
|
||||||
else -> throw PklBugException.unreachableCode()
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -111,11 +111,12 @@ constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun resolveOutputPaths(pathStr: String): Map<URI, Path> {
|
private fun resolveOutputPaths(pathStr: String): Map<URI, Path> {
|
||||||
|
val moduleUris = options.base.normalizedSourceModules
|
||||||
val workingDir = options.base.normalizedWorkingDir
|
val workingDir = options.base.normalizedWorkingDir
|
||||||
// used just to resolve the `%{moduleName}` placeholder
|
// used just to resolve the `%{moduleName}` placeholder
|
||||||
val moduleResolver = ModuleResolver(moduleKeyFactories(ModulePathResolver.empty()))
|
val moduleResolver = ModuleResolver(moduleKeyFactories(ModulePathResolver.empty()))
|
||||||
|
|
||||||
return options.base.normalizedSourceModules.associateWith { uri ->
|
return moduleUris.associateWith { uri ->
|
||||||
val moduleDir: String? =
|
val moduleDir: String? =
|
||||||
IoUtils.toPath(uri)?.let {
|
IoUtils.toPath(uri)?.let {
|
||||||
IoUtils.relativize(it.parent, workingDir).toString().ifEmpty { "." }
|
IoUtils.relativize(it.parent, workingDir).toString().ifEmpty { "." }
|
||||||
@@ -142,6 +143,17 @@ constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun Evaluator.writeOutput(moduleSource: ModuleSource, writeTo: Path): Boolean {
|
||||||
|
if (options.expression == null) {
|
||||||
|
val bytes = evaluateOutputBytes(moduleSource)
|
||||||
|
writeTo.writeBytes(bytes)
|
||||||
|
return bytes.isNotEmpty()
|
||||||
|
}
|
||||||
|
val text = evaluateExpressionString(moduleSource, options.expression)
|
||||||
|
writeTo.writeString(text)
|
||||||
|
return text.isNotEmpty()
|
||||||
|
}
|
||||||
|
|
||||||
private fun Evaluator.evalOutput(moduleSource: ModuleSource): ByteArray {
|
private fun Evaluator.evalOutput(moduleSource: ModuleSource): ByteArray {
|
||||||
if (options.expression == null) {
|
if (options.expression == null) {
|
||||||
return evaluateOutputBytes(moduleSource)
|
return evaluateOutputBytes(moduleSource)
|
||||||
@@ -215,6 +227,13 @@ constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun OutputStream.writeText(text: String) = write(text.toByteArray())
|
||||||
|
|
||||||
|
private fun OutputStream.writeLine(text: String) {
|
||||||
|
writeText(text)
|
||||||
|
writeText("\n")
|
||||||
|
}
|
||||||
|
|
||||||
private fun toModuleSource(uri: URI, reader: InputStream) =
|
private fun toModuleSource(uri: URI, reader: InputStream) =
|
||||||
if (uri == VmUtils.REPL_TEXT_URI) {
|
if (uri == VmUtils.REPL_TEXT_URI) {
|
||||||
ModuleSource.create(uri, reader.readAllBytes().toString(StandardCharsets.UTF_8))
|
ModuleSource.create(uri, reader.readAllBytes().toString(StandardCharsets.UTF_8))
|
||||||
@@ -222,6 +241,14 @@ constructor(
|
|||||||
ModuleSource.uri(uri)
|
ModuleSource.uri(uri)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun checkPathSpec(pathSpec: String) {
|
||||||
|
val illegal = pathSpec.indexOfFirst { IoUtils.isReservedFilenameChar(it) && it != '/' }
|
||||||
|
if (illegal == -1) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
throw CliException("Path spec `$pathSpec` contains illegal character `${pathSpec[illegal]}`.")
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Renders each module's `output.files`, writing each entry as a file into the specified output
|
* Renders each module's `output.files`, writing each entry as a file into the specified output
|
||||||
* directory.
|
* directory.
|
||||||
@@ -229,62 +256,42 @@ constructor(
|
|||||||
private fun writeMultipleFileOutput(builder: EvaluatorBuilder) {
|
private fun writeMultipleFileOutput(builder: EvaluatorBuilder) {
|
||||||
val outputDirs = directoryOutputPaths!!
|
val outputDirs = directoryOutputPaths!!
|
||||||
val writtenFiles = mutableMapOf<Path, OutputFile>()
|
val writtenFiles = mutableMapOf<Path, OutputFile>()
|
||||||
builder.setOutputFormat(options.outputFormat).build().use { evaluator ->
|
for ((moduleUri, outputDir) in outputDirs) {
|
||||||
for ((moduleUri, outputDir) in outputDirs) {
|
val evaluator = builder.setOutputFormat(options.outputFormat).build()
|
||||||
if (outputDir.exists() && !outputDir.isDirectory()) {
|
if (outputDir.exists() && !outputDir.isDirectory()) {
|
||||||
throw CliException("Output path `$outputDir` exists and is not a directory.")
|
throw CliException("Output path `$outputDir` exists and is not a directory.")
|
||||||
}
|
}
|
||||||
val moduleSource = toModuleSource(moduleUri, inputStream)
|
val moduleSource = toModuleSource(moduleUri, inputStream)
|
||||||
val output = evaluator.evaluateOutputFiles(moduleSource)
|
val output = evaluator.evaluateOutputFiles(moduleSource)
|
||||||
val realOutputDir = if (outputDir.exists()) outputDir.toRealPath() else outputDir
|
for ((pathSpec, fileOutput) in output) {
|
||||||
|
checkPathSpec(pathSpec)
|
||||||
for ((pathSpec, fileOutput) in output) {
|
val resolvedPath = outputDir.resolve(pathSpec).normalize()
|
||||||
checkPathSpec(pathSpec)
|
val realPath = if (resolvedPath.exists()) resolvedPath.toRealPath() else resolvedPath
|
||||||
val (realPath, resolvedPath) = realOutputDir.resolveRealPath(Path.of(pathSpec))
|
if (!realPath.startsWith(outputDir)) {
|
||||||
if (!realPath.startsWith(realOutputDir)) {
|
throw CliException(
|
||||||
throw CliException(
|
"Output file conflict: `output.files` entry `\"$pathSpec\"` in module `$moduleUri` resolves to file path `$realPath`, which is outside output directory `$outputDir`."
|
||||||
"Output file conflict: `output.files` entry `\"$pathSpec\"` in module `$moduleUri` resolves to file path `$realPath`, which is outside output directory `$realOutputDir`."
|
|
||||||
)
|
|
||||||
}
|
|
||||||
val previousOutput = writtenFiles[realPath]
|
|
||||||
if (previousOutput != null) {
|
|
||||||
throw CliException(
|
|
||||||
"Output file conflict: `output.files` entries `\"${previousOutput.pathSpec}\"` in module `${previousOutput.moduleUri}` and `\"$pathSpec\"` in module `$moduleUri` resolve to the same file path `$realPath`."
|
|
||||||
)
|
|
||||||
}
|
|
||||||
if (realPath.isDirectory()) {
|
|
||||||
throw CliException(
|
|
||||||
"Output file conflict: `output.files` entry `\"$pathSpec\"` in module `$moduleUri` resolves to file path `$realPath`, which is a directory."
|
|
||||||
)
|
|
||||||
}
|
|
||||||
writtenFiles[realPath] = OutputFile(pathSpec, moduleUri)
|
|
||||||
realPath.createParentDirectories()
|
|
||||||
realPath.writeBytes(fileOutput.bytes)
|
|
||||||
outputStream.writeText(
|
|
||||||
IoUtils.relativize(resolvedPath, currentWorkingDir).toString() +
|
|
||||||
IoUtils.getLineSeparator()
|
|
||||||
)
|
)
|
||||||
outputStream.flush()
|
|
||||||
}
|
}
|
||||||
|
val previousOutput = writtenFiles[realPath]
|
||||||
|
if (previousOutput != null) {
|
||||||
|
throw CliException(
|
||||||
|
"Output file conflict: `output.files` entries `\"${previousOutput.pathSpec}\"` in module `${previousOutput.moduleUri}` and `\"$pathSpec\"` in module `$moduleUri` resolve to the same file path `$realPath`."
|
||||||
|
)
|
||||||
|
}
|
||||||
|
if (realPath.isDirectory()) {
|
||||||
|
throw CliException(
|
||||||
|
"Output file conflict: `output.files` entry `\"$pathSpec\"` in module `$moduleUri` resolves to file path `$realPath`, which is a directory."
|
||||||
|
)
|
||||||
|
}
|
||||||
|
writtenFiles[realPath] = OutputFile(pathSpec, moduleUri)
|
||||||
|
realPath.createParentDirectories()
|
||||||
|
realPath.writeBytes(fileOutput.bytes)
|
||||||
|
outputStream.writeText(
|
||||||
|
IoUtils.relativize(resolvedPath, currentWorkingDir).toString() +
|
||||||
|
IoUtils.getLineSeparator()
|
||||||
|
)
|
||||||
|
outputStream.flush()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Resolves [rel] against this Path name-by-name. At each step, the real path is resolved if the
|
|
||||||
* file exists. The normalized real path and normalized resolved path are returned. This has a
|
|
||||||
* similar effect to `this.resolve(rel).toRealPath().normalize()`, but the real paths account for
|
|
||||||
* symlinks in the middle of the relative path so the full path need not exist.
|
|
||||||
*/
|
|
||||||
private fun Path.resolveRealPath(rel: Path): Pair<Path, Path> {
|
|
||||||
assert(!rel.isAbsolute)
|
|
||||||
var resolved = this
|
|
||||||
var real = this
|
|
||||||
for (name in rel) {
|
|
||||||
resolved = resolved.resolve(name)
|
|
||||||
real = real.resolve(name)
|
|
||||||
if (real.exists()) real = real.toRealPath()
|
|
||||||
}
|
|
||||||
return real.normalize() to resolved.normalize()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user