Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1063 from MarkEWaite/blog-intro-to-plugin-develop…
…ment Intro to Plugin Development blog
- Loading branch information
Showing
2 changed files
with
92 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
name: "Mark Waite" | ||
twitter: MarkEWaite | ||
github: markewaite | ||
--- | ||
|
||
One of the maintainers of the git plugin, the git client plugin and a long-time Jenkins user. |
85 changes: 85 additions & 0 deletions
85
content/blog/2017/08/2017-08-07-intro-to-plugin-development.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
--- | ||
layout: post | ||
title: "Plugin Development Tutorials, Videos, and More" | ||
tags: | ||
- plugins | ||
author: markewaite | ||
--- | ||
|
||
[NOTE] | ||
==== | ||
This is a guest post by link:https://github.com/markewaite[Mark Waite], who maintains | ||
the link:https://plugins.jenkins.io/git[git plugin], | ||
the link:https://plugins.jenkins.io/git-client[git client plugin], | ||
and is a technical evangelist for link:http://cloudbees.com[CloudBees, Inc.] | ||
==== | ||
|
||
While developing the "link:https://www.cloudbees.com/intro-plugin-development-workshop[Intro to Plugin Development]" | ||
workshop for Jenkins World 2017, I was impressed by the many Jenkins plugin development videos, tutorials, and guides. | ||
Here are some of my favorite plugin development topics and links. | ||
|
||
== Plugin tutorial videos | ||
|
||
* Jenkins Online Meetup link:https://www.youtube.com/watch?v=azyv183Ua6U[Plugin Development Part 1 - Basics] - Steven Christou and Jesse Glick | ||
* Jenkins Online Meetup link:https://www.youtube.com/watch?v=iAJBKFe8mMo[Plugin Development Part 2 - Web UI] - Daniel Beck and Tom Fennelly | ||
* link:https://www.youtube.com/watch?v=bmm06tnZuyY[Writing your third plugin] - Justin Ryan | ||
* link:https://www.youtube.com/watch?v=PBUkCQ7LW4c[Jenkins Hackathon session at TNG Technology Consulting] - Kohsuke Kawaguchi | ||
|
||
== Plugin tutorial pages | ||
|
||
* Tutorial on link:https://jenkins.io/doc/developer/tutorial/[jenkins.io] | ||
** Install the latest link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[Java SE Development Kit 8] | ||
** Install the latest link:https://maven.apache.org/download.cgi[maven release] | ||
** Install your link:https://wiki.jenkins.io/display/JENKINS/Plugin+tutorial#Plugintutorial-SettingupaproductiveenvironmentwithyourIDE[IDE] (I like Netbeans, has the Jenkins/Stapler plugin to make plugin creation as easy as menu:File[New Project > Maven > Jenkins Plugin]) | ||
|
||
== More details | ||
|
||
Many of the Jenkins plugin development topics have dedicated pages of their own, including user interface, plugin testing, and javadoc. | ||
|
||
=== User interface | ||
|
||
* link:https://github.com/jenkinsci/ui-samples-plugin/[UI samples plugin] (bars, boxes, buttons, lists, notification, and syntax highlighting) | ||
* link:https://wiki.jenkins.io/display/JENKINS/Understanding+Jelly+Tags[Understanding Jelly Tags] from the Jenkins wiki | ||
* link:https://wiki.jenkins.io/display/JENKINS/Form+Validation[Form Validation] from the Jenkins wiki | ||
* link:https://wiki.jenkins.io/display/JENKINS/Jelly+form+controls[Jelly Form Controls] from the Jenkins wiki | ||
* link:http://reports.jenkins.io/reports/core-taglib/jelly-taglib-ref.html[Jelly Tag Library Reference] from jenkins.io | ||
* DataBoundConstructor in link:https://wiki.jenkins.io/display/JENKINS/Basic+guide+to+Jelly+usage+in+Jenkins[Basic Guide to Jelly usage] | ||
* DataBoundSetter in link:https://groups.google.com/d/msg/jenkinsci-dev/58-DEvuJZWI/5QrxBZRFJ6IJ[google groups] | ||
|
||
=== Testing a plugin | ||
|
||
* link:https://wiki.jenkins.io/display/JENKINS/Unit+Test[Unit test] from the Jenkins wiki | ||
* Jenkins test objects like link:http://javadoc.jenkins.io/archive/jenkins-1.642/org/jvnet/hudson/test/JenkinsRule.html[JenkinsRule] and the link:http://javadoc.jenkins.io/archive/jenkins-1.642/org/jvnet/hudson/test/WithoutJenkins.html[WithoutJenkins annotation] | ||
* DataBoundConstructor in link:https://wiki.jenkins.io/display/JENKINS/Basic+guide+to+Jelly+usage+in+Jenkins[Basic Guide to Jelly usage] | ||
* DataBoundSetter in link:https://groups.google.com/d/msg/jenkinsci-dev/58-DEvuJZWI/5QrxBZRFJ6IJ[google groups] | ||
* Java unit testing tools like link:https://code.google.com/archive/p/hamcrest/wikis/Tutorial.wiki[Hamcrest] and link:http://joel-costigliola.github.io/assertj/assertj-core-quick-start.html[AssertJ] (and link:http://javadoc.jenkins.io/archive/jenkins-1.642/org/jvnet/hudson/test/JenkinsMatchers.html[JenkinsMatchers]) | ||
* Java unit testing rules like link:http://junit.org/junit4/javadoc/4.12/org/junit/rules/TemporaryFolder.html[TemporaryFolder], link:http://junit.org/junit4/javadoc/4.12/org/junit/rules/Timeout.html[Timeout], and link:http://junit.org/junit4/javadoc/4.12/org/junit/rules/DisableOnDebug.html[DisableOnDebug] | ||
* Java unit testing classes like link:http://junit.org/junit4/javadoc/4.12/org/junit/Assume.html[Assume] and link:http://junit.org/junit4/javadoc/4.12/org/junit/runners/Parameterized.html[Parameterized] | ||
* Java unit testing mock frameworks like link:http://site.mockito.org/[mockito] and link:http://powermock.github.io/[powermock] | ||
|
||
=== Javadoc | ||
|
||
* link:http://javadoc.jenkins.io/[Jenkins core javadoc] | ||
* link:http://javadoc.jenkins.io/plugin/[Jenkins plugins javadoc] | ||
|
||
=== Extension Points | ||
|
||
* List of link:https://jenkins.io/doc/developer/extensions/jenkins-core/[Jenkins core extension points] and link:https://jenkins.io/doc/developer/extensions/[all Jenkins extension points] | ||
|
||
=== Custom build steps | ||
|
||
* Adding a link:https://wiki.jenkins.io/display/JENKINS/Create+a+new+Plugin+with+a+custom+build+Step[custom build step] | ||
|
||
=== Actions | ||
|
||
* Jenkins link:https://www.cloudbees.com/blog/jenkins-internal-action-and-its-subtypes[Action and its subtypes] | ||
|
||
[WARNING] | ||
-- | ||
Mark will be presenting | ||
link:https://www.cloudbees.com/intro-plugin-development-workshop[Intro to Plugin Development] | ||
at | ||
link:https://www.cloudbees.com/jenkinsworld/home[Jenkins World] in August. | ||
Register with the code `JWFOSS` for a 30% discount off your pass. | ||
-- | ||
|