diff --git a/CedarJava/CHANGELOG.md b/CedarJava/CHANGELOG.md index fd16ae48..dc1fe4b7 100644 --- a/CedarJava/CHANGELOG.md +++ b/CedarJava/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased ### Added +* Added Zig version validation for publishing artifacts [#306](https://github.com/cedar-policy/cedar-java/pull/306) + +## 4.3.0 +### Added * Introduced new model classes for improved type safety and functionality: * `com.cedarpolicy.model.Context` - Policy context representation (will replace `Map`) [#286](https://github.com/cedar-policy/cedar-java/pull/286) * `com.cedarpolicy.model.entity.Entities` - Entity collection management (will replace `Set`) [#293](https://github.com/cedar-policy/cedar-java/pull/293) diff --git a/CedarJava/build.gradle b/CedarJava/build.gradle index ef81c444..d0a4da70 100644 --- a/CedarJava/build.gradle +++ b/CedarJava/build.gradle @@ -124,6 +124,26 @@ tasks.register('installCargoZigbuild', Exec) { commandLine 'cargo', '+' + RustVersion, 'install', 'cargo-zigbuild@0.19.7' } +def ZigVersion = '0.11' +tasks.register('validateZigVersion') { + group = 'Build' + description = 'Validates that the correct zig version is installed' + + doLast { + def output = new ByteArrayOutputStream() + exec { + commandLine 'zig', 'version' + standardOutput = output + } + def version = output.toString().trim() + println "Detected Zig version: ${version}" + if (!version.startsWith(ZigVersion)) { + throw new GradleException("Zig version must be ${ZigVersion} but found: ${version}") + } + println "Zig version validation successful" + } +} + tasks.register('compileFFI') { dependsOn('installCargoZigbuild') group 'Build' @@ -252,6 +272,7 @@ java { /* Configures Maven publishing */ +publish.dependsOn('validateZigVersion') publishing { publications { mavenJava(MavenPublication) {