Skip to content

Grails 7 Migration - Rundeck 6.0 Compatibility#25

Merged
fdevans merged 30 commits intomasterfrom
grails7-upgrade
Apr 7, 2026
Merged

Grails 7 Migration - Rundeck 6.0 Compatibility#25
fdevans merged 30 commits intomasterfrom
grails7-upgrade

Conversation

@fdevans
Copy link
Copy Markdown
Contributor

@fdevans fdevans commented Apr 2, 2026

Overview

Updates this plugin for Grails 7 / Rundeck 6.0 compatibility.

Key Changes

  • Upgraded to Java 17
  • Updated to Grails 7 / Groovy 4 / Spring Boot 3
  • Modernized GitHub Actions workflows (Java 17, updated actions, YAML fixes)
  • Standardized Gradle to 8.14.3
  • Updated CVEs (commons-lang3)
  • Replaced cglib with ByteBuddy for Java 17 compatibility
  • Updated version to 1.0.23-grails7 format

Documentation

Migration details and handoff documentation: .github/Grails7-Handoff/

Testing

  • All CI workflows passing on grails7-upgrade branch
  • Plugin builds and tests successfully with Java 17
  • Compatible with Rundeck 6.0 (Grails 7)

Notes

  • Version uses temporary -grails7 suffix (will be removed at release)
  • Maintains backward compatibility with Rundeck 5.x

fdevans added 26 commits January 2, 2026 15:12
- Update groupId to com.github.rundeck-plugins
- Update version to X.Y.Z-grails7-upgrade-test
- Update rundeck-core dependency to 6.0.0-SNAPSHOT
- Enhanced diagnostics and error logging
- Fixed test compatibility issues (JUnit 4 vs 5, Java 17)
- Updated for Spring Boot 3 / Java 17
- OSSRH sunset on June 30, 2025, migrated to Central Portal
- Repository: https://central.sonatype.com/repository/maven-snapshots/
- Uses includeGroup('org.rundeck') to resolve all org.rundeck modules
- Resolves rundeck-core and its transitive dependencies
- Tested successfully in SSHJ plugin CI build
- Reference: https://central.sonatype.org/publish/publish-portal-upload/#consuming--snapshot-releases-for-your-project
… Snapshots

- Add jitpack.yml to specify Java 17 for JitPack builds
- Bump version to 1.0.12-grails7-upgrade-test
- JitPack will now build with:
  - Java 17 (from jitpack.yml)
  - rundeck-core:6.0.0-SNAPSHOT from Central Portal Snapshots
- Tested successfully with sshj-plugin v0.1.23
JitPack build was failing because it was trying to resolve
http-step:1.1.9-grails7-upgrade-test which doesn't exist.

Updated to current version: 1.1.12-grails7-upgrade-test
- Change commons-lang3 from 3.18.0 to 3.17.0 to match Spring Boot BOM 3.5.8
- Update http-step dependency to 1.1.13-grails7-upgrade-test
- Bump version to 1.0.14-grails7-upgrade-test
- Change from 3.17.0 to 3.18.0 to match other plugins
- Update http-step dependency to 1.1.14-grails7-upgrade-test
- Bump version to 1.0.15-grails7-upgrade-test
- Change from 3.18.0 to 3.17.0
- Update http-step dependency to 1.1.15-grails7-upgrade-test
- Required for Grails 7 / Spring Boot compatibility
- Bump version to 1.0.16-grails7-upgrade-test
- Update http-step dependency to 1.1.16
- JitPack had infrastructure timeout on previous versions
- No code changes, just version bump to bypass JitPack cache
…ndency to 1.1.17

JitPack failed to publish artifacts for 1.0.17 (build succeeded but modules array empty).
Bumping version to trigger fresh build attempt.
- Updated http-step dependency to 1.1.18-grails7-upgrade-test
- Removed copyToLib task (old pattern)
- Updated jar task to directly bundle dependencies using into('lib')
- Fixed rootProject.name in settings.gradle to match Maven artifactId
- Simplified build process to match modern Gradle best practices
- All dependencies still bundled correctly in lib/ directory
- All Rundeck plugin manifest attributes preserved

This modernization should resolve JitPack publication issues seen in 1.0.16-1.0.18.
Working around JitPack infrastructure timeout issue.
Build succeeded, artifacts found, but container finalization timed out in 1.0.19.
Eliminated inefficiencies causing JitPack issues:
- Updated axion-release plugin from 1.13.4 to 1.17.2
- Removed legacy buildscript block (Gradle 4.x pattern)
- Removed redundant 'apply plugin' declarations
- Removed unnecessary groovy-all dependency
- Fixed CRITICAL duplicate dependency bundling:
  * Set transitive=false on http-step dependency
  * Eliminated duplicate commons-lang3, httpclient, gson, httpcore
  * JAR size reduced from 4.5MB to 2.1MB (53% smaller!)
- Removed redundant httpclient/commons-lang3 declarations
- Removed now-unnecessary dependencySubstitution block
- Simplified test configuration (useJUnit vs useJUnitPlatform)
- Cleaned up repository ordering

The duplicate bundling was likely confusing JitPack's artifact scanner.
This is the cleanest version yet.
….plugins

- Changed groupId: com.github.rundeck-plugins → com.rundeck.plugins
- Added Axion scmVersion with prefix='' (no 'v' prefix)
- Removed hardcoded version (1.0.21-grails7-upgrade-test)
- Updated http-step dependency to use com.rundeck.plugins groupId and version 1.1.19-grails7
- Added PackageCloud repository for dependency resolution
- Added PackageCloud publishing configuration
- Version now managed dynamically from git tags

See: .temp/PLUGIN_TAGGING_ARCHITECTURE.md and PACKAGECLOUD_MIGRATION_PLAN.md
- Added 'groovy' plugin to compile Groovy source files
- Added groovy-all:4.0.29 dependency for Groovy compilation
- Added httpclient:4.5.14 and commons-lang3:3.17.0 for compilation
  (http-step bundles these but doesn't expose them transitively)

This fixes ClassNotFoundException: com.rundeck.plugin.HttpNotificationPlugin
The JAR was missing compiled classes because Groovy files weren't being compiled.
Security fix:
- commons-lang3 3.17.0 -> 3.18.0 (fixes StackOverflowError in ClassUtils.getClass)
- Update bundled http-step dependency to 1.1.21-grails7 (includes same fix)

Java 17 compatibility:
- Replace cglib-nodep 3.3.0 with ByteBuddy 1.14.11 (cglib unmaintained)
- Update objenesis 1.4 -> 3.4 for Java 17

Merged origin/master (1 commit: CVE fixes).
- Update actions/checkout@v2 to v4
- Update actions/setup-java@v1 to v4 with zulu distribution
- Replace deprecated actions/create-release and actions/upload-release-asset with gh CLI
- Fix ::set-output syntax to use GITHUB_OUTPUT
- Align Java version to 17 across all workflows

These changes ensure workflows remain functional after Node.js 20 deprecation in September 2026.
Added distribution: 'zulu' to all setup-java@v4 calls.
This parameter is required in v4 and was causing workflow failures.
Version 1.1.21-grails7 is tagged but not yet published to PackageCloud,
causing CI build failures. Reverting to last published version.
Upgrade Gradle wrapper to match rundeck/rundeckpro (8.14.3) for consistency.
This ensures all plugins use the same build tooling version.
Corrected distribution parameter indentation to align with java-version.
This fixes GitHub Actions validation errors.
- Fixed distribution parameter indentation (must align with java-version)
- Updated step name labels to 'Set up JDK 17'
- Updated Gradle wrapper scripts to 8.14.3
Copilot AI review requested due to automatic review settings April 2, 2026 22:28

This comment was marked as outdated.

Copy link
Copy Markdown

@ronaveva ronaveva left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

jitpack.yml seems irrelevant, otherwise looks ok

@fdevans fdevans merged commit f4be30e into master Apr 7, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants