Hi all, Currently I am working on setting up testing flows for my prototypes (e.g. JENKINS-38313 - External Build Logging <https://issues.jenkins-ci.org/browse/JENKINS-38313> or JENKINS-44100 - Detach Remoting logic from the core <https://issues.jenkins-ci.org/browse/JENKINS-44100>). Such prototypes include multiple components including unreleased core patches and plugins. Our current test frameworks (Jenkins Test Harness, Acceptance Test Harness, Plugin Compatibility Tester) are mostly focused on WAR file testing, so I would need to package the prototypes as WAR files in order to run tests.
In order to achieve the goal, I have created a new packaging tool: https://github.com/oleg-nenashev/jenkins-war-packager, which is generally a maven-hpi-plugin:custom-war <https://jenkinsci.github.io/maven-hpi-plugin/custom-war-mojo.html> on steroids. It can run as CLI tool and as a Maven plugin. The tool takes the WAR as a YAML definition (example <https://github.com/oleg-nenashev/jenkins-war-packager#configuration-file>) and packages everything as a single WAR file: - Base WAR (including dev branches from Git/filesystem) - List of plugins and libraries to be bundled (including dev branches from Git/filesystem) - List of system properties to be pre-set - Groovy Hook Scripts <https://wiki.jenkins.io/display/JENKINS/Groovy+Hook+Script>to bundle (may also support Configuration-as-Code plugin <https://github.com/jenkinsci/configuration-as-code-plugin> later) WAR file includes system properties and Groovy hooks, so it may configure itself on startup. It allows the custom configuration to be transparently used with existing tests. I have created two examples for the tool: - External Task Logging for ElasticSearch <https://github.com/oleg-nenashev/jenkins-war-packager/tree/master/demo/external-logging-elasticsearch>- A prototype we created together with Jesse Glick in 2016. It packages extra plugins and preconfigures them - Jenkins - all latest WAR <https://github.com/oleg-nenashev/jenkins-war-packager/tree/master/demo/all-latest-core> - Automatic build of the Jenkins core with latest dependencies (Stapler, Remoting, modules) In the current state I consider Custom Jenkins War Packager to b e a development tool only. It can be potentially used to package Jenkins WARs for production use, but IMHO it would require more work before it can be advertised (standardized specification format, support of Docker packaging, etc.). But Jenkins developers may find the tool useful even in the current state. So I would like to get it hosted within Jenkins organization and released as an alpha version. If you are interested in such packaging and development tool for Jenkins, I would appreciate any feedback. Best regards, Oleg Nenashev -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CAPfivLBEF%3DQD4XzkxYOfQhPTKERrFnHhWwNaCgWB%2B69zHfixwQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
