Dear Community,
I have been struggling hard with implementing a new plugin. While some of the core concepts are more or less clear to me (ExtensionPoint, @Extension annotation, Descriptor, Describable and jenkins.model package), I could not get my project get started. I spent so much time already.
So what's the goal?
- This plugin adds a button to each build (Run class?) to mark it "as release build"
- When the user presses this button, some basic data is written to the build.xml of the corresponding build (for example, isReleaseBuild -> true). Even better. this could not just be a plain button on the build but rahter an Action on the sidebar which brings to a page (jelly view?) that has a form and the user can enter specific data about the deployment. Say, a general description (String), url etc.
- When a build is marked as release build, it keeps the build forever (as if the user pressed "keep this build forever" button.
- If a build is marked as release build there's a small badge next to the build (like in badge plugin)
- On Job level there's a section (Action) that lists all builds that are marked as release, with hyperlinks to the build itself.
- Optionally (nice to have) there's a button on the Dashboard level that lists all deployments grouped by Jobs.
- Nice to have: Pipeline (workflow) method that marks the build as release build right at build time.
Reference plugins, learn materials are also appreciated. I am also up for a pair programming session. I also published my plguin to github
here though it is quite empty now. Pull requests are appreciated if it is easier done than explained though don't get me wrong, it is not like I want someone to the work.
I'd really like to gain knowledge so that I can later on contribute to the ecosystem of JenkinsCI plugins.
Tamas