Module: Cigale::Builder
- Defined in:
- lib/cigale/builder.rb,
lib/cigale/builder/ant.rb,
lib/cigale/builder/dsl.rb,
lib/cigale/builder/sbt.rb,
lib/cigale/builder/ssh.rb,
lib/cigale/builder/batch.rb,
lib/cigale/builder/cmake.rb,
lib/cigale/builder/shell.rb,
lib/cigale/builder/sonar.rb,
lib/cigale/builder/beaker.rb,
lib/cigale/builder/gradle.rb,
lib/cigale/builder/grails.rb,
lib/cigale/builder/groovy.rb,
lib/cigale/builder/inject.rb,
lib/cigale/builder/python.rb,
lib/cigale/builder/msbuild.rb,
lib/cigale/builder/multijob.rb,
lib/cigale/builder/exclusion.rb,
lib/cigale/builder/powershell.rb,
lib/cigale/builder/conditional.rb,
lib/cigale/builder/build_status.rb,
lib/cigale/builder/copyartifact.rb,
lib/cigale/builder/maven-target.rb,
lib/cigale/builder/sonatype-clm.rb,
lib/cigale/builder/builders-from.rb,
lib/cigale/builder/maven-builder.rb,
lib/cigale/builder/shining-panda.rb,
lib/cigale/builder/system-groovy.rb,
lib/cigale/builder/managed-script.rb,
lib/cigale/builder/trigger-builds.rb,
lib/cigale/builder/trigger-remote.rb,
lib/cigale/builder/github-notifier.rb,
lib/cigale/builder/artifact-resolver.rb,
lib/cigale/builder/config-file-provider.rb,
lib/cigale/builder/change-assembly-version.rb
Defined Under Namespace
Classes: CustomBuilder, CustomCondition
Instance Method Summary collapse
- #builder_classes ⇒ Object
- #condition_basedirs ⇒ Object
- #condition_classes ⇒ Object
- #condition_comparator_classes ⇒ Object
- #translate_ant_builder(xml, bdef) ⇒ Object
- #translate_artifact_resolver_builder(xml, bdef) ⇒ Object
- #translate_batch_builder(xml, bdef) ⇒ Object
- #translate_beaker_builder(xml, bdef) ⇒ Object
- #translate_build_status(xml, status, write_complete_build = true) ⇒ Object
- #translate_builders(xml, tag, builders) ⇒ Object
- #translate_builders_from_builder(xml, bdef) ⇒ Object
- #translate_change_assembly_version_builder(xml, bdef) ⇒ Object
- #translate_cmake_builder(xml, bdef) ⇒ Object
- #translate_condition(tag, xml, bdef) ⇒ Object
- #translate_condition_runner(xml, bdef) ⇒ Object
- #translate_conditional_multi_step_builder(xml, bdef) ⇒ Object
- #translate_conditional_single_step_builder(xml, bdef) ⇒ Object
- #translate_conditional_step_builder(xml, bdef) ⇒ Object
- #translate_config_file_provider_builder(xml, bdef) ⇒ Object
- #translate_copyartifact_builder(xml, bdef) ⇒ Object
- #translate_critical_block_end_builder(xml, bdef) ⇒ Object
- #translate_critical_block_start_builder(xml, bdef) ⇒ Object
- #translate_dsl_builder(xml, bdef) ⇒ Object
- #translate_github_notifier_builder(xml, bdef) ⇒ Object
- #translate_gradle_builder(xml, bdef) ⇒ Object
- #translate_grails_builder(xml, bdef) ⇒ Object
- #translate_groovy_builder(xml, bdef) ⇒ Object
- #translate_inject_builder(xml, bdef) ⇒ Object
- #translate_managed_script_builder(xml, bdef) ⇒ Object
- #translate_maven_builder_builder(xml, bdef) ⇒ Object
- #translate_maven_target_builder(xml, bdef) ⇒ Object
- #translate_msbuild_builder(xml, bdef) ⇒ Object
- #translate_multijob_builder(xml, bdef) ⇒ Object
- #translate_powershell_builder(xml, bdef) ⇒ Object
- #translate_python_builder(xml, bdef) ⇒ Object
- #translate_sbt_builder(xml, bdef) ⇒ Object
- #translate_shell_builder(xml, bdef) ⇒ Object
- #translate_shining_panda_builder(xml, bdef) ⇒ Object
- #translate_sonar_builder(xml, bdef) ⇒ Object
- #translate_sonatype_clm_builder(xml, bdef) ⇒ Object
-
#translate_ssh_builder_builder(xml, bdef) ⇒ Object
sigh…
- #translate_system_groovy_builder(xml, bdef) ⇒ Object
- #translate_trigger_builds_builder(xml, bdef) ⇒ Object
- #translate_trigger_remote_builder(xml, bdef) ⇒ Object
- #trigger_factories ⇒ Object
Instance Method Details
#builder_classes ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/cigale/builder.rb', line 41 def builder_classes @builder_classes ||= { "critical-block-start" => CustomBuilder.new, "critical-block-end" => CustomBuilder.new, "github-notifier" => CustomBuilder.new, "managed-script" => CustomBuilder.new, "conditional-step" => CustomBuilder.new, "shining-panda" => CustomBuilder.new, "copyartifact" => CustomBuilder.new, "config-file-provider" => CustomBuilder.new, "sonatype-clm" => CustomBuilder.new, "inject" => "EnvInjectBuilder", "shell" => "hudson.tasks.Shell", "batch" => "hudson.tasks.BatchFile", "gradle" => "hudson.plugins.gradle.Gradle", "trigger-builds" => "hudson.plugins.parameterizedtrigger.TriggerBuilder", "trigger-remote" => "org.jenkinsci.plugins.ParameterizedRemoteTrigger.RemoteBuildConfiguration", "ssh-builder" => "org.jvnet.hudson.plugins.SSHBuilder", "maven-target" => "hudson.tasks.Maven", "maven-builder" => "org.jfrog.hudson.maven3.Maven3Builder", "sonar" => "hudson.plugins.sonar.SonarRunnerBuilder", "powershell" => "hudson.plugins.powershell.PowerShell", "python" => "hudson.plugins.python.Python", "msbuild" => "hudson.plugins.msbuild.MsBuildBuilder", "builders-from" => "hudson.plugins.templateproject.ProxyBuilder", "grails" => "com.g2one.hudson.grails.GrailsBuilder", "system-groovy" => "hudson.plugins.groovy.SystemGroovy", "groovy" => "hudson.plugins.groovy.Groovy", "change-assembly-version" => "org.jenkinsci.plugins.changeassemblyversion.ChangeAssemblyVersion", "beaker" => "org.jenkinsci.plugins.beakerbuilder.BeakerBuilder", "multijob" => "com.tikal.jenkins.plugins.multijob.MultiJobBuilder", "cmake" => "hudson.plugins.cmake.CmakeBuilder", "ant" => "hudson.tasks.Ant", "sbt" => "org.jvnet.hudson.plugins.SbtPluginBuilder", "dsl" => "javaposse.jobdsl.plugin.ExecuteDslScripts", "artifact-resolver" => "org.jvnet.hudson.plugins.repositoryconnector.ArtifactResolver", } end |
#condition_basedirs ⇒ Object
165 166 167 168 169 170 |
# File 'lib/cigale/builder/conditional.rb', line 165 def condition_basedirs @condition_basedirs ||= { "jenkins-home" => "org.jenkins_ci.plugins.run_condition.common.BaseDirectory$JenkinsHome", "workspace" => "org.jenkins_ci.plugins.run_condition.common.BaseDirectory$Workspace", } end |
#condition_classes ⇒ Object
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 |
# File 'lib/cigale/builder/conditional.rb', line 172 def condition_classes @condition_classes ||= { "regex-match" => "org.jenkins_ci.plugins.run_condition.core.ExpressionCondition", "files-match" => "org.jenkins_ci.plugins.run_condition.core.FilesMatchCondition", "file-exists" => "org.jenkins_ci.plugins.run_condition.core.FileExistsCondition", "num-comp" => "org.jenkins_ci.plugins.run_condition.core.NumericalComparisonCondition", "execution-node" => "org.jenkins_ci.plugins.run_condition.core.NodeCondition", "current-status" => "org.jenkins_ci.plugins.run_condition.core.StatusCondition", "build-cause" => "org.jenkins_ci.plugins.run_condition.core.CauseCondition", "strings-match" => "org.jenkins_ci.plugins.run_condition.core.StringsMatchCondition", "time" => "org.jenkins_ci.plugins.run_condition.core.TimeCondition", "day-of-week" => "org.jenkins_ci.plugins.run_condition.core.DayCondition", "not" => "org.jenkins_ci.plugins.run_condition.logic.Not", "and" => "org.jenkins_ci.plugins.run_condition.logic.And", "or" => "org.jenkins_ci.plugins.run_condition.logic.Or", "shell" => "org.jenkins_ci.plugins.run_condition.contributed.ShellCondition", "always" => "org.jenkins_ci.plugins.run_condition.core.AlwaysRun", "never" => "org.jenkins_ci.plugins.run_condition.core.NeverRun", } end |
#condition_comparator_classes ⇒ Object
155 156 157 158 159 |
# File 'lib/cigale/builder/conditional.rb', line 155 def condition_comparator_classes @condition_comparator_classes ||= { "equal" => "org.jenkins_ci.plugins.run_condition.core.NumericalComparisonCondition$EqualTo", } end |
#translate_ant_builder(xml, bdef) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/cigale/builder/ant.rb', line 4 def translate_ant_builder (xml, bdef) case bdef when String bdef = {"targets" => bdef} end if buildfile = bdef["buildfile"] xml.buildFile buildfile end if javaopts = bdef["java-opts"] xml.antOpts javaopts.join(" ") end if properties = bdef["properties"] content = properties.each_pair.map do |pair| "#{pair[0]}=#{pair[1]}\n" end.join "" xml.properties content end xml.targets bdef["targets"] xml.antName bdef["ant-name"] || "default" end |
#translate_artifact_resolver_builder(xml, bdef) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/cigale/builder/artifact-resolver.rb', line 4 def translate_artifact_resolver_builder (xml, bdef) xml.targetDirectory bdef["target-directory"] xml.artifacts do for artifact in bdef["artifacts"] xml.tag! "org.jvnet.hudson.plugins.repositoryconnector.Artifact" do xml.groupId artifact["group-id"] xml.artifactId artifact["group-id"] xml.classifier artifact["classifier"] xml.version artifact["version"] xml.extension artifact["extension"] || "jar" xml.targetFileName artifact["target-file-name"] end end end xml.failOnError bdef["fail-on-error"] xml.enableRepoLogging bdef["repository-logging"] xml.snapshotUpdatePolicy "never" xml.releaseUpdatePolicy "never" xml.snapshotChecksumPolicy "warn" xml.releaseChecksumPolicy "warn" end |
#translate_batch_builder(xml, bdef) ⇒ Object
3 4 5 |
# File 'lib/cigale/builder/batch.rb', line 3 def translate_batch_builder (xml, bdef) xml.command bdef end |
#translate_beaker_builder(xml, bdef) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/cigale/builder/beaker.rb', line 4 def translate_beaker_builder (xml, bdef) if path = bdef["path"] xml.jobSource :class => "org.jenkinsci.plugins.beakerbuilder.FileJobSource" do xml.jobPath path end elsif content = bdef["content"] xml.jobSource :class => "org.jenkinsci.plugins.beakerbuilder.StringJobSource" do xml.jobContent content end end xml.downloadFiles !!bdef["download-logs"] end |
#translate_build_status(xml, status, write_complete_build = true) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/cigale/builder/build_status.rb', line 4 def translate_build_status (xml, status, write_complete_build=true) @build_statuses ||= { "SUCCESS" => { "ordinal" => 0, "color" => "BLUE", "completeBuild" => true, }, "UNSTABLE" => { "ordinal" => 1, "color" => "YELLOW", "completeBuild" => true, }, "FAILURE" => { "ordinal" => 2, "color" => "RED", "completeBuild" => true, }, "NOT_BUILD" => { "ordinal" => 3, "color" => "NOTBUILD", "completeBuild" => false, }, "ABORTED" => { "ordinal" => 4, "color" => "ABORTED", "completeBuild" => false, }, } spec = @build_statuses[status] or raise "Unknown build status: '#{status}'" xml.name status for k, v in spec next if (k == "completeBuild" && !write_complete_build) xml.tag! k, v end end |
#translate_builders(xml, tag, builders) ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/cigale/builder.rb', line 81 def translate_builders (xml, tag, builders) builders = toa builders if builders.empty? return xml.tag! tag end xml.tag! tag do for b in builders type, spec = asplode b translate("builder", xml, type, spec) end end end |
#translate_builders_from_builder(xml, bdef) ⇒ Object
3 4 5 |
# File 'lib/cigale/builder/builders-from.rb', line 3 def translate_builders_from_builder (xml, bdef) xml.projectName bdef end |
#translate_change_assembly_version_builder(xml, bdef) ⇒ Object
3 4 5 6 |
# File 'lib/cigale/builder/change-assembly-version.rb', line 3 def translate_change_assembly_version_builder (xml, bdef) xml.task bdef["version"] xml.assemblyFile bdef["assembly-file"] || "AssemblyInfo.cs" end |
#translate_cmake_builder(xml, bdef) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/cigale/builder/cmake.rb', line 4 def translate_cmake_builder (xml, bdef) xml.sourceDir bdef["source-dir"] xml.buildDir bdef["build-dir"] xml.installDir bdef["install-dir"] xml.buildType "Debug" btype = bdef["build-type"] if btype == "Debug" xml.otherBuildType else xml.otherBuildType btype end xml.generator bdef["generator"] || "Unix Makefiles" xml.makeCommand bdef["make-command"] || "make" xml.installCommand bdef["install-command"] || "make install" xml.preloadScript bdef["preload-script"] xml.cmakeArgs bdef["other-arguments"] xml.projectCmakePath bdef["custom-cmake-path"] xml.cleanBuild bdef["clean-build-dir"] xml.cleanInstallDir bdef["clean-install-dir"] xml.builderImpl end |
#translate_condition(tag, xml, bdef) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
# File 'lib/cigale/builder/conditional.rb', line 53 def translate_condition (tag, xml, bdef) ckind = bdef["condition-kind"] || raise("Missing condition-kind: #{bdef.inspect}") cclass = condition_classes[ckind] raise "Unknown condition kind: #{ckind}" unless cclass if %w(always never).include? ckind xml.tag! tag, :class => cclass else xml.tag! tag, :class => cclass do case ckind when "regex-match" xml.expression bdef["regex"] || raise("Missing regex: #{bdef.inspect}") xml.label bdef["label"] || raise("Missing label: #{bdef.inspect}") when "files-match" xml.includes bdef["include-pattern"].join(",") xml.excludes bdef["exclude-pattern"].join(",") bdir = bdef["condition-basedir"] bdirclass = condition_basedirs[bdir] or raise "Unknown base dir for files-match: '#{bdir}'" xml.baseDir :class => bdirclass when "file-exists" xml.file bdef["condition-filename"] bdir = bdef["condition-basedir"] bdirclass = condition_basedirs[bdir] or raise "Unknown base dir for file-exists: '#{bdir}'" xml.baseDir :class => bdirclass when "execution-node" xml.allowedNodes do for node in bdef["nodes"] xml.string node end end when "current-status" worst = bdef["condition-worst"] and xml.worstResult do translate_build_status xml, worst end best = bdef["condition-best"] and xml.bestResult do translate_build_status xml, best end when "num-comp" xml.lhs bdef["lhs"] xml.rhs bdef["rhs"] comp = bdef["comparator"] cclass = condition_comparator_classes[comp] or raise "Unknown num-comp comparator: #{comp}" xml.comparator :class => cclass when "build-cause" xml.buildCause bdef["cause"] xml.exclusiveCause bdef["exclusive-cause"] when "strings-match" xml.arg1 bdef["condition-string1"] xml.arg2 bdef["condition-string2"] xml.ignoreCase bdef["condition-case-insensitive"] when "time" xml.earliestHours bdef["earliest-hour"] xml.earliestMinutes bdef["earliest-min"] xml.latestHours bdef["latest-hour"] xml.latestMinutes bdef["latest-min"] xml.useBuildTime bdef["use-build-time"] || false when "day-of-week" @day_of_week_classes ||= { "weekday" => "org.jenkins_ci.plugins.run_condition.core.DayCondition$Weekday", "select-days" => "org.jenkins_ci.plugins.run_condition.core.DayCondition$SelectDays", } dsel = bdef["day-selector"] dclass = @day_of_week_classes[dsel] or raise "Unknown day-of-week selector: #{dsel}" case dsel when "select-days" xml.daySelector :class => dclass do xml.days do %w(SUN MON TUE WED THU FRI SAT).each_with_index do |item, index| xml.tag! "org.jenkins__ci.plugins.run__condition.core.DayCondition_-Day" do xml.day index + 1 xml.selected (true == bdef["days"][item]) || false end end end end else xml.daySelector :class => dclass end xml.useBuildTime bdef["use-build-time"] when "not" translate_condition "condition", xml, bdef["condition-operand"] when "or", "and" operands = bdef["condition-operands"] xml.conditions do for operand in operands xml.tag! "org.jenkins__ci.plugins.run__condition.logic.ConditionContainer" do translate_condition "condition", xml, operand end end end when "shell" xml.command bdef["condition-command"] end end # xml.tag! end # always/never or not end |
#translate_condition_runner(xml, bdef) ⇒ Object
161 162 163 |
# File 'lib/cigale/builder/conditional.rb', line 161 def translate_condition_runner (xml, bdef) xml.runner :class => "org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" end |
#translate_conditional_multi_step_builder(xml, bdef) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/cigale/builder/conditional.rb', line 35 def translate_conditional_multi_step_builder (xml, bdef) xml.conditionalbuilders do for step in bdef["steps"] stype, sdef = first_pair(step) clazz = builder_classes[stype] raise "Unknown builder type: #{stype}" unless clazz xml.tag! clazz do self.send "translate_#{underize(stype)}_builder", xml, sdef end end end translate_condition "runCondition", xml, bdef translate_condition_runner xml, bdef end |
#translate_conditional_single_step_builder(xml, bdef) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/cigale/builder/conditional.rb', line 21 def translate_conditional_single_step_builder (xml, bdef) translate_condition "condition", xml, bdef translate_condition_runner xml, bdef stype, sdef = first_pair(bdef["steps"].first) clazz = builder_classes[stype] raise "Unknown builder type: #{stype}" unless clazz xml.tag! "buildStep", :class => clazz do self.send "translate_#{underize(stype)}_builder", xml, sdef end end |
#translate_conditional_step_builder(xml, bdef) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/cigale/builder/conditional.rb', line 6 def translate_conditional_step_builder (xml, bdef) case toa(bdef["steps"]).size when 0 raise "Need 1 or more steps for conditional: #{bdef.inspect}" when 1 xml.tag! "org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder" do translate_conditional_single_step_builder xml, bdef end else xml.tag! "org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuilder" do translate_conditional_multi_step_builder xml, bdef end end end |
#translate_config_file_provider_builder(xml, bdef) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/cigale/builder/config-file-provider.rb', line 4 def translate_config_file_provider_builder (xml, bdef) xml.tag! "org.jenkinsci.plugins.configfiles.builder.ConfigFileBuildStep", :plugin => "config-file-provider" do xml.managedFiles do for file in toa bdef["files"] xml.tag! "org.jenkinsci.plugins.configfiles.buildwrapper.ManagedFile" do xml.fileId file["file-id"] xml.targetLocation file["target"] xml.variable file["variable"] end end end end end |
#translate_copyartifact_builder(xml, bdef) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/cigale/builder/copyartifact.rb', line 4 def translate_copyartifact_builder (xml, bdef) bclass = case when bdef["projects"] "hudson.plugins.copyartifact.CopyArtifactPermissionProperty" else "hudson.plugins.copyartifact.CopyArtifact" end xml.tag! bclass do if projects = bdef["projects"] xml.projectNameList do for project in bdef["projects"] xml.string project end end else xml.project bdef["project"] end val = bdef["filter"] and xml.filter val val = bdef["target"] and xml.target val val = bdef["flatten"] and xml.flatten val val = bdef["optional"] and xml.optional val val = bdef["parameter-filters"] and xml.parameters val begin whichbuild = bdef["which-build"] @which_build_options ||= { "last-completed" => "hudson.plugins.copyartifact.LastCompletedBuildSelector", "specific-build" => "hudson.plugins.copyartifact.SpecificBuildSelector", } wclass = @which_build_options[whichbuild] or raise "Unknown build selector in copyartifact: #{whichbuild}" case whichbuild when "specific-build" xml.selector :class => wclass do xml.buildNumber bdef["build-number"] end else xml.selector :class => wclass end end end end |
#translate_critical_block_end_builder(xml, bdef) ⇒ Object
7 8 9 |
# File 'lib/cigale/builder/exclusion.rb', line 7 def translate_critical_block_end_builder (xml, bdef) xml.tag! "org.jvnet.hudson.plugins.exclusion.CriticalBlockEnd", :plugin => "Exclusion" end |
#translate_critical_block_start_builder(xml, bdef) ⇒ Object
3 4 5 |
# File 'lib/cigale/builder/exclusion.rb', line 3 def translate_critical_block_start_builder (xml, bdef) xml.tag! "org.jvnet.hudson.plugins.exclusion.CriticalBlockStart", :plugin => "Exclusion" end |
#translate_dsl_builder(xml, bdef) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/cigale/builder/dsl.rb', line 4 def translate_dsl_builder (xml, bdef) if script = bdef["script-text"] xml.scriptText script xml.usingScriptText true elsif target = bdef["target"] xml.targets target xml.usingScriptText false end xml.ignoreExisting bdef["ignore-existing"] xml.removedJobAction bdef["removed-job-action"] xml.removedViewAction bdef["removed-view-action"] xml.lookupStrategy bdef["lookup-strategy"] xml.additionalClasspath bdef["additional-classpath"] end |
#translate_github_notifier_builder(xml, bdef) ⇒ Object
3 4 5 |
# File 'lib/cigale/builder/github-notifier.rb', line 3 def translate_github_notifier_builder (xml, bdef) xml.tag! "com.cloudbees.jenkins.GitHubSetCommitStatusBuilder" end |
#translate_gradle_builder(xml, bdef) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 |
# File 'lib/cigale/builder/gradle.rb', line 3 def translate_gradle_builder (xml, bdef) xml.description xml.tasks bdef["tasks"] xml.buildFile xml.rootBuildScriptDir bdef["root-build-script-dir"] xml.gradleName bdef["gradle-name"] xml.useWrapper bdef["wrapper"] xml.makeExecutable bdef["executable"] xml.switches bdef["switches"].join("\n") xml.fromRootBuildScriptDir (not bdef["root-build-script-dir"].nil?) end |
#translate_grails_builder(xml, bdef) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/cigale/builder/grails.rb', line 3 def translate_grails_builder (xml, bdef) xml.targets bdef["targets"] xml.name bdef["name"] xml.grailsWorkDir bdef["work-dir"] xml.projectWorkDir bdef["project-dir"] xml.projectBaseDir bdef["base-dir"] xml.serverPort bdef["server-port"] xml.properties bdef["properties"] xml.forceUpgrade bdef["force-upgrade"] xml.nonInteractive bdef["non-interactive"] xml.useWrapper bdef["use-wrapper"] xml.plainOutput bdef["plain-output"] xml.stackTrace bdef["stack-trace"] xml.verbose bdef["verbose"] xml.refreshDependencies bdef["refresh-dependencies"] end |
#translate_groovy_builder(xml, bdef) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/cigale/builder/groovy.rb', line 4 def translate_groovy_builder (xml, bdef) if cmd = bdef["command"] xml.scriptSource :class => "hudson.plugins.groovy.StringScriptSource" do xml.command cmd end elsif file = bdef["file"] xml.scriptSource :class => "hudson.plugins.groovy.FileScriptSource" do xml.scriptFile file end end xml.groovyName bdef["version"] || "(Default)" xml.parameters bdef["parameters"] xml.scriptParameters bdef["script-parameters"] xml.properties bdef["properties"] xml.javaOpts bdef["java-opts"] xml.classPath end |
#translate_inject_builder(xml, bdef) ⇒ Object
4 5 6 7 8 9 10 11 |
# File 'lib/cigale/builder/inject.rb', line 4 def translate_inject_builder (xml, bdef) xml.info do val = bdef["properties-file"] and xml.propertiesFilePath val val = bdef["properties-content"] and xml.propertiesContent val val = bdef["script-file"] and xml.scriptFilePath val val = bdef["script-content"] and xml.scriptContent val end end |
#translate_managed_script_builder(xml, bdef) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/cigale/builder/managed-script.rb', line 3 def translate_managed_script_builder (xml, bdef) sclass = case bdef["type"] when "script" "org.jenkinsci.plugins.managedscripts.ScriptBuildStep" when "batch" "org.jenkinsci.plugins.managedscripts.WinBatchBuildStep" else raise "Unknown managed script type: #{bdef["type"]}" end xml.tag! sclass do case bdef["type"] when "script" xml.buildStepId bdef["script-id"] when "batch" xml.command bdef["script-id"] end xml.buildStepArgs do for arg in bdef["args"] xml.string arg end end end end |
#translate_maven_builder_builder(xml, bdef) ⇒ Object
3 4 5 6 7 8 |
# File 'lib/cigale/builder/maven-builder.rb', line 3 def translate_maven_builder_builder (xml, bdef) xml.mavenName bdef["name"] xml.goals bdef["goals"] xml.rootPom bdef["pom"] xml.mavenOpts end |
#translate_maven_target_builder(xml, bdef) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/cigale/builder/maven-target.rb', line 3 def translate_maven_target_builder (xml, bdef) xml.targets bdef["goals"] if props = bdef["properties"] xml.properties props.join("\n") else xml.properties end xml.mavenName bdef["maven-version"] if pom = bdef["pom"] xml.pom pom end privrepo = bdef["private-repository"] xml.usePrivateRepository !!privrepo if javaopts = bdef["java-opts"] xml.jvmOptions javaopts.join(" ") end if settings = bdef["settings"] if settings.start_with? "org.jenkinsci.plugins.configfiles.maven" xml.settings :class => "org.jenkinsci.plugins.configfiles.maven.job.MvnSettingsProvider" do xml.settingsConfigId settings end else xml.settings :class => "jenkins.mvn.FilePathSettingsProvider" do xml.path settings end end else xml.settings :class => "jenkins.mvn.DefaultSettingsProvider" end if gsettings = bdef["global-settings"] if gsettings.start_with? "org.jenkinsci.plugins.configfiles.maven" xml.globalSettings :class => "org.jenkinsci.plugins.configfiles.maven.job.MvnGlobalSettingsProvider" do xml.settingsConfigId gsettings end else xml.globalSettings :class => "jenkins.mvn.FilePathGlobalSettingsProvider" do xml.path gsettings end end else xml.globalSettings :class => "jenkins.mvn.DefaultGlobalSettingsProvider" end end |
#translate_msbuild_builder(xml, bdef) ⇒ Object
3 4 5 6 7 8 9 |
# File 'lib/cigale/builder/msbuild.rb', line 3 def translate_msbuild_builder (xml, bdef) xml.msBuildName bdef["msbuild-version"] xml.msBuildFile bdef["solution-file"] xml.cmdLineArgs bdef["extra-parameters"] xml.buildVariablesAsProperties bdef["pass-build-variables"] xml.continueOnBuildFailure bdef["continue-on-build-failure"] end |
#translate_multijob_builder(xml, bdef) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/cigale/builder/multijob.rb', line 4 def translate_multijob_builder (xml, bdef) xml.phaseName bdef["name"] xml.continuationCondition bdef["condition"] xml.phaseJobs do for project in bdef["projects"] xml.tag! "com.tikal.jenkins.plugins.multijob.PhaseJobsConfig" do xml.jobName project["name"] xml.currParams project["current-parameters"] nodelabel = project["node-label"] has_gitrev = project.has_key?("git-revision") propfile = project["property-file"] preparams = project["predefined-parameters"] if nodelabel || has_gitrev || propfile || preparams xml.configs do if nodelabel xml.tag! "org.jvnet.jenkins.plugins.nodelabelparameter.parameterizedtrigger.NodeLabelBuildParameter" do xml.name project["node-label-name"] xml.nodeLabel nodelabel end end if has_gitrev gitrev = project["git-revision"] xml.tag! "hudson.plugins.git.GitRevisionBuildParameters" do xml.combineQueuedCommits !gitrev end end if propfile xml.tag! "hudson.plugins.parameterizedtrigger.FileBuildParameters" do xml.propertiesFile propfile xml.failTriggerOnMissing true end end if preparams xml.tag! "hudson.plugins.parameterizedtrigger.PredefinedBuildParameters" do xml.properties preparams end end end # configs else xml.configs end if encond = project["enable-condition"] xml.enableCondition true xml.condition encond end if killphase = project["kill-phase-on"] xml.killPhaseOnJobResultCondition killphase end end end end end |
#translate_powershell_builder(xml, bdef) ⇒ Object
3 4 5 |
# File 'lib/cigale/builder/powershell.rb', line 3 def translate_powershell_builder (xml, bdef) xml.command bdef end |
#translate_python_builder(xml, bdef) ⇒ Object
3 4 5 |
# File 'lib/cigale/builder/python.rb', line 3 def translate_python_builder (xml, bdef) xml.command bdef end |
#translate_sbt_builder(xml, bdef) ⇒ Object
4 5 6 7 8 9 10 |
# File 'lib/cigale/builder/sbt.rb', line 4 def translate_sbt_builder (xml, bdef) xml.name bdef["name"] xml.jvmFlags bdef["jvm-flags"] xml.sbtFlags "-Dsbt.log.noformat=true" xml.actions bdef["actions"] xml.subdirPath end |
#translate_shell_builder(xml, bdef) ⇒ Object
3 4 5 |
# File 'lib/cigale/builder/shell.rb', line 3 def translate_shell_builder (xml, bdef) xml.command bdef end |
#translate_shining_panda_builder(xml, bdef) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/cigale/builder/shining-panda.rb', line 3 def translate_shining_panda_builder (xml, bdef) env = bdef["build-environment"] bclass = case env when "python" "jenkins.plugins.shiningpanda.builders.PythonBuilder" when "custom" "jenkins.plugins.shiningpanda.builders.CustomPythonBuilder" when "virtualenv" "jenkins.plugins.shiningpanda.builders.VirtualenvBuilder" else raise "Unknown build environment for shining-panda: #{env}" end xml.tag! bclass do ver = bdef["python-version"] and xml.pythonName ver case env when "virtualenv" xml.home bdef["name"] xml.clear bdef["clear"] xml.useDistribute bdef["use-distribute"] xml.systemSitePackages bdef["system-site-packages"] when "custom" xml.home bdef["home"] end xml.nature bdef["nature"] xml.command bdef["command"] xml.ignoreExitCode bdef["ignore-exit-code"] end end |
#translate_sonar_builder(xml, bdef) ⇒ Object
3 4 5 6 7 8 9 |
# File 'lib/cigale/builder/sonar.rb', line 3 def translate_sonar_builder (xml, bdef) xml.installationName bdef["sonar-name"] xml.task bdef["task"] xml.project bdef["project"] xml.properties bdef["properties"] xml.javaOpts bdef["java-opts"] end |
#translate_sonatype_clm_builder(xml, bdef) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 |
# File 'lib/cigale/builder/sonatype-clm.rb', line 3 def translate_sonatype_clm_builder (xml, bdef) xml.tag! "com.sonatype.insight.ci.hudson.PreBuildScan", :plugin => "sonatype-clm-ci" do xml.billOfMaterialsToken bdef["application-name"] xml.failOnClmServerFailures bdef["fail-on-clm-server-failure"] xml.stageId bdef["stage"] xml.pathConfig do xml.scanTargets bdef["scan-targets"] xml.moduleExcludes bdef["module-excludes"] xml.scanProperties bdef["advanced-options"] end end end |
#translate_ssh_builder_builder(xml, bdef) ⇒ Object
sigh…
4 5 6 7 |
# File 'lib/cigale/builder/ssh.rb', line 4 def translate_ssh_builder_builder (xml, bdef) xml.siteName bdef["ssh-user-ip"] xml.command bdef["command"] end |
#translate_system_groovy_builder(xml, bdef) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/cigale/builder/system-groovy.rb', line 3 def translate_system_groovy_builder (xml, bdef) if cmd = bdef["command"] xml.scriptSource :class => "hudson.plugins.groovy.StringScriptSource" do xml.command cmd end elsif file = bdef["file"] xml.scriptSource :class => "hudson.plugins.groovy.FileScriptSource" do xml.scriptFile file end end xml.bindings bdef["bindings"] xml.classpath bdef["class-path"] end |
#translate_trigger_builds_builder(xml, bdef) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/cigale/builder/trigger-builds.rb', line 4 def translate_trigger_builds_builder (xml, bdef) xml.configs do for build in bdef xml.tag! "hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig" do propfile = build["property-file"] predefparams = build["predefined-parameters"] boolparams = build["bool-parameters"] same_node = build["same-node"] currpar = build["current-parameters"] gitrev = build["git-revision"] svnrev = build["svn-revision"] nodelabel = build["node-label"] if propfile || boolparams || predefparams || same_node || currpar || gitrev || svnrev || nodelabel xml.configs do propfile and xml.tag! "hudson.plugins.parameterizedtrigger.FileBuildParameters" do xml.propertiesFile propfile tom = if build.has_key?("property-file-fail-on-missing") build["property-file-fail-on-missing"] else true end xml.failTriggerOnMissing tom end same_node and xml.tag! "hudson.plugins.parameterizedtrigger.NodeParameters" currpar and xml.tag! "hudson.plugins.parameterizedtrigger.CurrentBuildParameters" gitrev and xml.tag! "hudson.plugins.git.GitRevisionBuildParameters" do xml.combineQueuedCommits false end svnrev and xml.tag! "hudson.plugins.parameterizedtrigger.SubversionRevisionBuildParameters" predefparams and xml.tag! "hudson.plugins.parameterizedtrigger.PredefinedBuildParameters" do xml.properties predefparams end nodelabel and xml.tag! "org.jvnet.jenkins.plugins.nodelabelparameter.parameterizedtrigger.NodeLabelBuildParameter" do xml.name build["node-label-name"] xml.nodeLabel nodelabel end boolparams and xml.tag! "hudson.plugins.parameterizedtrigger.BooleanParameters" do xml.configs do for bp in boolparams xml.tag! "hudson.plugins.parameterizedtrigger.BooleanParameterConfig" do xml.name bp["name"] xml.value !!bp["value"] end end end end end else xml.configs :class => "java.util.Collections$EmptyList" end if factories = build["parameter-factories"] xml.configFactories do for f in factories fname = f["factory"] fclass = trigger_factories[fname] or raise "Unknown trigger param factory type: #{fname}" xml.tag! fclass do case fname when "allnodesforlabel" xml.name f["name"] xml.nodeLabel f["node-label"] ign = if f.has_key?("ignore-offline-nodes") f["ignore-offline-nodes"] else true true end xml.ignoreOfflineNodes ign when "filebuild" xml.filePattern f["file-pattern"] xml.noFilesFoundAction f["no-files-found-action"] || "SKIP" when "binaryfile" xml.parameterName f["parameter-name"] xml.filePattern f["file-pattern"] xml.noFilesFoundAction f["no-files-found-action"] || "SKIP" when "counterbuild" xml.from f["from"] xml.to f["to"] xml.step f["step"] xml.paramExpr f["parameters"] xml.validationFail f["validation-fail"] || "FAIL" end end end end end projects = build["project"] if Array === projects xml.projects projects.join(",") else xml.projects projects || "build_started" end xml.condition "ALWAYS" xml.triggerWithNoParameters false xml.buildAllNodesWithLabel false if build["block"] thresholds = build["block-thresholds"] || {} xml.block do threshold = thresholds["build-step-failure-threshold"] if threshold != "never" xml.buildStepFailureThreshold do threshold = "FAILURE" if (threshold === true || threshold.nil?) translate_build_status(xml, threshold) end end threshold = thresholds["unstable-threshold"] if threshold != "never" xml.unstableThreshold do threshold = "UNSTABLE" if (threshold === true || threshold.nil?) translate_build_status(xml, threshold) end end threshold = thresholds["failure-threshold"] if threshold != "never" xml.failureThreshold do threshold = "FAILURE" if (threshold === true || threshold.nil?) translate_build_status(xml, threshold) end end end # block end end # BlockableBuildTriggerConfig end # for b in builds end # configs end |
#translate_trigger_remote_builder(xml, bdef) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/cigale/builder/trigger-remote.rb', line 4 def translate_trigger_remote_builder (xml, bdef) xml.remoteJenkinsName bdef["remote-jenkins-name"] xml.token bdef["token"] xml.job bdef["job"] dontFailBuild = if bdef.has_key?("should-fail-build") !bdef["should-fail-build"] else false end xml.shouldNotFailBuild dontFailBuild xml.pollInterval bdef["poll-interval"] || 10 xml.connectionRetryLimit bdef["connection-retry-limit"] || 5 xml.preventRemoteBuildQueue bdef["prevent-remote-build-queue"] || false xml.blockBuildUntilComplete bdef["block"] || true if preparams = bdef["predefined-parameters"] xml.parameters preparams xml.parameterList do for param in preparams.strip.split("\n") xml.string param end end end if propfile = bdef["property-file"] xml.loadParamsFromFile true xml.parameterFile propfile else xml.loadParamsFromFile false end xml.overrideAuth false end |
#trigger_factories ⇒ Object
141 142 143 144 145 146 147 148 |
# File 'lib/cigale/builder/trigger-builds.rb', line 141 def trigger_factories @trigger_factories ||= { "allnodesforlabel" => "org.jvnet.jenkins.plugins.nodelabelparameter.parameterizedtrigger.AllNodesForLabelBuildParameterFactory", "filebuild" => "hudson.plugins.parameterizedtrigger.FileBuildParameterFactory", "binaryfile" => "hudson.plugins.parameterizedtrigger.BinaryFileParameterFactory", "counterbuild" => "hudson.plugins.parameterizedtrigger.CounterBuildParameterFactory", } end |