A modernized, secure Gradle build system for creating Rundeck plugins in ZIP format.
- Security Focused: Uses latest Gradle 8.10.2 with security best practices
- Modern Gradle: Uses plugins block, Provider API, and configuration avoidance
- CVE Scanning: Automated vulnerability scanning via Snyk and GitHub Actions
- Secure Publishing: HTTPS-only repositories and proper POM metadata
- Reproducible Builds: Consistent output with timestamp preservation disabled
- Include this as a shared build script in your Rundeck plugin projects
- Create a
gradle.properties
file with your plugin details:archivesBaseName=my-plugin version=1.0.0 pluginName=My Rundeck Plugin pluginDescription=Description of my plugin sopsCopyright=Your Name sopsUrl=https://github.com/your-org/your-plugin
- Create the required directory structure:
resources/
- Plugin resourcescontents/
- Plugin content filesplugin.yaml
- Plugin metadata (supports token replacement)
A modernized Gradle build system for creating Rundeck plugins in ZIP format. This shared build script provides standardized packaging for Rundeck plugins across the rundeck-plugins organization.
- Modern Gradle 8.10.2: Uses the latest stable Gradle version to avoid known CVEs
- Security Hardened: Includes security configurations and dependency verification support
- Reproducible Builds: Ensures consistent build outputs
- Maven Publishing: Supports publishing to GitHub Packages with secure authentication
- Token Replacement: Processes
plugin.yaml
with configurable tokens
-
Include this repository as a Git submodule or copy the build files
-
Create a
gradle.properties
file with your plugin configuration:archivesBaseName=your-plugin-name version=1.0.0 pluginName=Your Plugin Name pluginDescription=Description of your plugin sopsCopyright=Your Organization sopsUrl=https://github.com/your-org/your-plugin
-
Ensure your project structure includes:
resources/
- Plugin resourcescontents/
- Plugin content filesplugin.yaml
- Plugin metadata (tokens will be replaced)
-
Run the build:
./gradlew build
- Uses Gradle 8.10.2 to avoid known CVEs in older versions
- Supports dependency verification (run
./gradlew --write-verification-metadata sha256
) - Configured for secure Maven publishing
- Includes Snyk security scanning via GitHub Actions
- Reproducible builds enabled
build
- Builds the plugin ZIPpluginZip
- Creates the plugin ZIP archiveinstall
- Builds and installs to local Maven repositorypublishToMavenLocal
- Publishes to local Maven repositorypublish
- Publishes to configured repositories
# Build the plugin
./gradlew build
# Install to local Maven repository
./gradlew install
# Publish to remote repository
./gradlew publish
This build system includes several security measures:
- Uses latest stable Gradle version to avoid known CVEs
- HTTPS-only repository access
- Dependency vulnerability scanning integration
- Reproducible builds
- Secure credential management for publishing
- JDK 11 or higher
- Gradle 8.10.2+ (included via wrapper)