This repository has been archived by the owner on Jan 25, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 83
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 #75 from drnic/trigger
Added Trigger & TriggerDescriptor classes; plus `jpi generate trigger` generator
- Loading branch information
Showing
10 changed files
with
142 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
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,5 @@ | ||
module Jenkins::Triggers | ||
require 'jenkins/triggers/trigger_descriptor' | ||
require 'jenkins/triggers/trigger' | ||
require 'jenkins/triggers/trigger_proxy' | ||
end |
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,29 @@ | ||
require 'jenkins/model' | ||
|
||
module Jenkins | ||
module Triggers | ||
# Triggers a Build. | ||
# {http://javadoc.jenkins-ci.org/hudson/triggers/Trigger.html} | ||
class Trigger | ||
include Jenkins::Model | ||
include Jenkins::Model::Describable | ||
describe_as Java.hudson.triggers.Trigger, :with => Jenkins::Triggers::TriggerDescriptor | ||
|
||
# Executes the triggered task. | ||
# | ||
# This method is invoked when Trigger.new(String) is used | ||
# to create an instance, and the crontab matches the current time. | ||
def run | ||
end | ||
|
||
# Called before a Trigger is removed. | ||
# Under some circumstances, this may be invoked more than once for | ||
# a given Trigger, so be prepared for that. | ||
# | ||
# When the configuration is changed for a project, all triggers | ||
# are removed once and then added back. | ||
def stop | ||
end | ||
end | ||
end | ||
end |
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,14 @@ | ||
module Jenkins::Triggers | ||
# Descriptor for Trigger | ||
class TriggerDescriptor < Java.hudson.triggers.TriggerDescriptor | ||
include Jenkins::Model::Descriptor | ||
|
||
# Returns true if this trigger is applicable to the given Item | ||
# | ||
# @param [Boolean] true to allow user to configure a trigger for this item | ||
def isApplicable(targetType) | ||
# @impl refers to the Ruby class implementing this descriptor | ||
@impl.respond_to?(:applicable?) ? @impl.applicable?(targetType) : true | ||
end | ||
end | ||
end |
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,14 @@ | ||
module Jenkins::Triggers | ||
class TriggerProxy < Java.hudson.triggers.Trigger | ||
include Jenkins::Model::DescribableProxy | ||
proxy_for Jenkins::Triggers::Trigger | ||
|
||
def run | ||
@object.run | ||
end | ||
|
||
def stop | ||
@object.stop | ||
end | ||
end | ||
end |
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,24 @@ | ||
require 'spec_helper' | ||
|
||
describe Jenkins::Triggers::TriggerProxy do | ||
include ProxyHelper | ||
|
||
before do | ||
@object = mock(Jenkins::Triggers::Trigger) | ||
@builder = Jenkins::Triggers::TriggerProxy.new(@plugin, @object) | ||
end | ||
|
||
describe "run" do | ||
it "calls through to its implementation" do | ||
@object.should_receive(:run) | ||
@builder.run | ||
end | ||
end | ||
|
||
describe "stop" do | ||
it "calls through to its implementation" do | ||
@object.should_receive(:stop) | ||
@builder.stop | ||
end | ||
end | ||
end |
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 @@ | ||
require 'spec_helper' | ||
|
||
describe Jenkins::Triggers::Trigger do | ||
it "lives" do | ||
subject.should_not be_nil | ||
end | ||
end |
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
6 changes: 6 additions & 0 deletions
6
ruby-tools/jpi/lib/jenkins/plugin/cli/templates/project_config.erb.tt
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,6 @@ | ||
<%% | ||
f = taglib("/lib/form") | ||
f.entry(:title => 'Some field', :field => 'some_field', :description => "An excellent field for this project/job") do | ||
f.textbox | ||
end | ||
%> |
35 changes: 35 additions & 0 deletions
35
ruby-tools/jpi/lib/jenkins/plugin/cli/templates/trigger.tt
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,35 @@ | ||
java_import Java.java.util.logging.Logger | ||
|
||
# Triggers a Build. | ||
# {http://javadoc.jenkins-ci.org/hudson/triggers/Trigger.html} | ||
class <%= name.capitalize %>Trigger < Jenkins::Triggers::Trigger | ||
display_name "<%= name.capitalize %> trigger" | ||
|
||
def self.applicable?(type) | ||
type.is_a? Java::HudsonModel::Project | ||
end | ||
|
||
attr_accessor :some_field | ||
|
||
# Invoked with the form parameters when this extension point | ||
# is created from a configuration screen. | ||
def initialize(attrs = {}) | ||
@some_field = attrs['some_field'] | ||
end | ||
|
||
# Executes the triggered task. | ||
# | ||
# This method is invoked when Trigger.new(String) is used | ||
# to create an instance, and the crontab matches the current time. | ||
def run | ||
end | ||
|
||
# Called before a Trigger is removed. | ||
# Under some circumstances, this may be invoked more than once for | ||
# a given Trigger, so be prepared for that. | ||
# | ||
# When the configuration is changed for a project, all triggers | ||
# are removed once and then added back. | ||
def stop | ||
end | ||
end |