├── job-dsl-plugin ├── .mvn_exec_node ├── src │ ├── main │ │ ├── js │ │ │ ├── package.json │ │ │ ├── app.js │ │ │ ├── components │ │ │ │ └── Router.js │ │ │ └── views │ │ │ │ ├── ContextView.js │ │ │ │ ├── PluginDetailView.js │ │ │ │ └── RootView.js │ │ ├── json │ │ │ ├── static │ │ │ │ └── config.json │ │ │ └── embedded │ │ │ │ └── config.json │ │ ├── hbs │ │ │ ├── tree.hbs │ │ │ ├── plugins.hbs │ │ │ └── searchResults.hbs │ │ ├── resources │ │ │ ├── index.jelly │ │ │ └── javaposse │ │ │ │ └── jobdsl │ │ │ │ └── plugin │ │ │ │ ├── ExecuteDslScripts │ │ │ │ ├── help-scriptText.html │ │ │ │ ├── help-unstableOnDeprecation.html │ │ │ │ ├── help-ignoreMissingFiles.html │ │ │ │ ├── help-failOnMissingPlugin.html │ │ │ │ ├── help-ignoreExisting.html │ │ │ │ ├── help-additionalClasspath.html │ │ │ │ ├── help-sandbox.html │ │ │ │ ├── help-failOnSeedCollision.html │ │ │ │ ├── help-targets.html │ │ │ │ ├── help-removedViewAction.html │ │ │ │ └── help-removedConfigFilesAction.html │ │ │ │ ├── casc │ │ │ │ ├── FromFileScriptSource │ │ │ │ │ └── schema.jelly │ │ │ │ ├── FromUrlScriptSource │ │ │ │ │ └── schema.jelly │ │ │ │ ├── InlineGroovyScriptSource │ │ │ │ │ └── schema.jelly │ │ │ │ └── SeedJobConfigurator │ │ │ │ │ └── schema.jelly │ │ │ │ └── GlobalJobDslSecurityConfiguration │ │ │ │ └── config.groovy │ │ ├── html │ │ │ └── index.html │ │ ├── groovy │ │ │ └── javaposse │ │ │ │ └── jobdsl │ │ │ │ └── plugin │ │ │ │ ├── RemovedViewAction.groovy │ │ │ │ ├── RemovedJobAction.groovy │ │ │ │ ├── RemovedConfigFilesAction.groovy │ │ │ │ ├── actions │ │ │ │ ├── ApiViewerAction.groovy │ │ │ │ ├── GeneratedConfigFilesAction.groovy │ │ │ │ └── GeneratedUserContentsAction.groovy │ │ │ │ └── SeedReferenceDigestPredicate.groovy │ │ └── java │ │ │ └── javaposse │ │ │ └── jobdsl │ │ │ └── plugin │ │ │ └── casc │ │ │ └── ScriptSource.java │ └── test │ │ ├── resources │ │ ├── view-extension.xml │ │ ├── javaposse │ │ │ └── jobdsl │ │ │ │ └── plugin │ │ │ │ ├── deprecation.groovy │ │ │ │ ├── missingPlugin.groovy │ │ │ │ ├── gstring.groovy │ │ │ │ ├── testjob.groovy │ │ │ │ ├── security1342.groovy │ │ │ │ └── configFiles.groovy │ │ ├── folder.xml │ │ ├── extension.xml │ │ ├── minimal-job.xml │ │ ├── organizationfolder.xml │ │ └── minimal-view.xml │ │ └── java │ │ ├── ScriptHelper.java │ │ └── javaposse │ │ └── jobdsl │ │ └── plugin │ │ └── fixtures │ │ ├── TestContext.java │ │ ├── BrokenContext.java │ │ ├── NoPublicConstructorContext.java │ │ ├── InvalidContext.java │ │ ├── UnsupportedConstructorArgContext.java │ │ ├── InvalidTrigger.java │ │ ├── InvalidConstructorCountContext.java │ │ ├── SubTrigger.java │ │ ├── TestAbstractContext.java │ │ ├── ABean.java │ │ ├── ADuplicateBean.java │ │ └── other │ │ └── ADuplicateBean.java └── webpack.plugin.mjs ├── .github ├── CODEOWNERS ├── release-drafter.yml └── workflows │ └── release-drafter.yml ├── docs ├── Automatically-Generated-DSL.md ├── images │ ├── Build1.png │ ├── newjob.png │ ├── pipeline.png │ ├── result.png │ ├── EmptySeed.png │ ├── build-step.png │ ├── createjob.png │ ├── AddBuildStep.png │ ├── DslBuildStep.png │ ├── create-seed-job.png │ └── AddBuildStepSelected.png └── _Footer.md ├── job-dsl-core └── src │ ├── test │ ├── resources │ │ ├── foo │ │ │ └── test.dsl │ │ ├── java.dsl │ │ ├── simple2.dsl │ │ ├── deprecation.groovy │ │ ├── simple.dsl │ │ ├── test-script.dsl │ │ ├── file.dsl │ │ ├── javaposse │ │ │ └── jobdsl │ │ │ │ └── dsl │ │ │ │ ├── TestView-template.xml │ │ │ │ ├── TestJob-template.xml │ │ │ │ ├── TestProject-template.xml │ │ │ │ └── views │ │ │ │ └── SectionedViewSpec-defaults.xml │ │ ├── caller.dsl │ │ ├── deprecation-subject.groovy │ │ ├── userContent.dsl │ │ ├── configfiles.dsl │ │ ├── test-script-with-method.dsl │ │ ├── Callee.groovy │ │ └── JENKINS_32941.groovy │ └── groovy │ │ └── javaposse │ │ └── jobdsl │ │ └── dsl │ │ ├── helpers │ │ └── step │ │ │ └── ArbitraryCategory.groovy │ │ ├── TestView.groovy │ │ ├── TestProject.groovy │ │ ├── TestJob.groovy │ │ └── DeprecationWarningASTTransformationSpec.groovy │ └── main │ ├── docs │ └── examples │ │ └── javaposse │ │ └── jobdsl │ │ └── dsl │ │ ├── Job │ │ ├── disabled.groovy │ │ ├── quietPeriod.groovy │ │ ├── compressBuildLog.groovy │ │ ├── keepDependencies.groovy │ │ ├── using.groovy │ │ ├── description.groovy │ │ ├── displayName.groovy │ │ ├── previousNames.groovy │ │ ├── configure.groovy │ │ ├── parameters.groovy │ │ ├── logRotator.groovy │ │ ├── blockOn.groovy │ │ ├── deliveryPipelineConfiguration.groovy │ │ ├── properties.groovy │ │ ├── environmentVariables.groovy │ │ ├── notifications.groovy │ │ └── throttleConcurrentBuilds.groovy │ │ ├── Project │ │ ├── jdk.groovy │ │ ├── weight.groovy │ │ ├── label.groovy │ │ ├── concurrentBuild.groovy │ │ ├── checkoutRetryCount.groovy │ │ ├── authenticationToken.groovy │ │ ├── blockOnUpstreamProjects.groovy │ │ ├── blockOnDownstreamProjects.groovy │ │ ├── customWorkspace.groovy │ │ ├── triggers.groovy │ │ ├── scm.groovy │ │ ├── steps.groovy │ │ ├── wrappers.groovy │ │ ├── publishers.groovy │ │ └── batchTask.groovy │ │ ├── views │ │ ├── ListView │ │ │ ├── recurse.groovy │ │ │ ├── filterExecutors.groovy │ │ │ ├── filterBuildQueue.groovy │ │ │ ├── description.groovy │ │ │ ├── statusFilter.groovy │ │ │ ├── configure.groovy │ │ │ ├── jobs.groovy │ │ │ ├── columns.groovy │ │ │ └── jobFilters.groovy │ │ ├── BuildMonitorView │ │ │ ├── recurse.groovy │ │ │ ├── filterExecutors.groovy │ │ │ ├── filterBuildQueue.groovy │ │ │ ├── description.groovy │ │ │ ├── statusFilter.groovy │ │ │ ├── configure.groovy │ │ │ ├── jobs.groovy │ │ │ └── jobFilters.groovy │ │ ├── NestedView │ │ │ ├── filterBuildQueue.groovy │ │ │ ├── filterExecutors.groovy │ │ │ ├── description.groovy │ │ │ ├── columns.groovy │ │ │ ├── configure.groovy │ │ │ └── views.groovy │ │ ├── CategorizedJobsView │ │ │ ├── recurse.groovy │ │ │ ├── filterBuildQueue.groovy │ │ │ ├── filterExecutors.groovy │ │ │ ├── description.groovy │ │ │ ├── statusFilter.groovy │ │ │ ├── configure.groovy │ │ │ ├── categorizationCriteria.groovy │ │ │ ├── jobs.groovy │ │ │ ├── columns.groovy │ │ │ └── jobFilters.groovy │ │ ├── DeliveryPipelineView │ │ │ ├── columns.groovy │ │ │ ├── showAvatars.groovy │ │ │ ├── allowRebuild.groovy │ │ │ ├── showChangeLog.groovy │ │ │ ├── sorting.groovy │ │ │ ├── showDescription.groovy │ │ │ ├── showPromotions.groovy │ │ │ ├── updateInterval.groovy │ │ │ ├── allowPipelineStart.groovy │ │ │ ├── showTotalBuildTime.groovy │ │ │ ├── enableManualTriggers.groovy │ │ │ ├── showAggregatedPipeline.groovy │ │ │ ├── configure.groovy │ │ │ ├── pipelineInstances.groovy │ │ │ └── pipelines.groovy │ │ ├── SectionedView │ │ │ ├── filterExecutors.groovy │ │ │ ├── filterBuildQueue.groovy │ │ │ ├── description.groovy │ │ │ ├── configure.groovy │ │ │ └── sections.groovy │ │ ├── BuildPipelineView │ │ │ ├── displayedBuilds.groovy │ │ │ ├── filterBuildQueue.groovy │ │ │ ├── filterExecutors.groovy │ │ │ ├── title.groovy │ │ │ ├── refreshFrequency.groovy │ │ │ ├── selectedJob.groovy │ │ │ ├── startsWithParameters.groovy │ │ │ ├── triggerOnlyLatestJob.groovy │ │ │ ├── alwaysAllowManualTrigger.groovy │ │ │ ├── description.groovy │ │ │ ├── showPipelineParameters.groovy │ │ │ ├── customCssUrl.groovy │ │ │ ├── showPipelineDefinitionHeader.groovy │ │ │ ├── showPipelineParametersInHeaders.groovy │ │ │ ├── consoleOutputLinkStyle.groovy │ │ │ └── configure.groovy │ │ ├── JobFiltersContext │ │ │ ├── all.groovy │ │ │ ├── release.groovy │ │ │ ├── allRelease.groovy │ │ │ ├── unclassified.groovy │ │ │ ├── mostRecent.groovy │ │ │ ├── status.groovy │ │ │ ├── regex.groovy │ │ │ └── buildTrend.groovy │ │ ├── JobsContext │ │ │ ├── regex.groovy │ │ │ ├── names.groovy │ │ │ └── name.groovy │ │ ├── ColumnsContext │ │ │ ├── cronTrigger.groovy │ │ │ └── progressBar.groovy │ │ ├── PipelineAggregatorView │ │ │ ├── fontSize.groovy │ │ │ ├── onlyLastBuild.groovy │ │ │ ├── buildHistorySize.groovy │ │ │ ├── filterRegex.groovy │ │ │ ├── useCondensedTables.groovy │ │ │ ├── description.groovy │ │ │ ├── showBuildDuration.groovy │ │ │ └── useScrollingCommits.groovy │ │ ├── DeliveryPipelinesContext │ │ │ ├── regex.groovy │ │ │ └── component.groovy │ │ ├── CategorizationCriteriaContext │ │ │ └── regexGroupingRule.groovy │ │ ├── portlets │ │ │ └── DashboardPortletContext │ │ │ │ ├── testStatisticsChart.groovy │ │ │ │ └── testStatisticsGrid.groovy │ │ └── SectionsContext │ │ │ ├── text.groovy │ │ │ ├── jobGraphs.groovy │ │ │ ├── testResult.groovy │ │ │ ├── viewListing.groovy │ │ │ └── listView.groovy │ │ ├── Folder │ │ ├── displayName.groovy │ │ ├── description.groovy │ │ ├── icon.groovy │ │ └── configure.groovy │ │ ├── jobs │ │ ├── MavenJob │ │ │ ├── runHeadless.groovy │ │ │ ├── incrementalBuild.groovy │ │ │ ├── rootPOM.groovy │ │ │ ├── archivingDisabled.groovy │ │ │ ├── resolveDependencies.groovy │ │ │ ├── siteArchivingDisabled.groovy │ │ │ ├── fingerprintingDisabled.groovy │ │ │ ├── disableDownstreamTrigger.groovy │ │ │ ├── mavenInstallation.groovy │ │ │ ├── providedSettings.groovy │ │ │ ├── providedGlobalSettings.groovy │ │ │ ├── localRepository.groovy │ │ │ ├── preBuildSteps.groovy │ │ │ ├── goals.groovy │ │ │ ├── mavenOpts.groovy │ │ │ └── postBuildSteps.groovy │ │ ├── IvyJob │ │ │ ├── ivyBranch.groovy │ │ │ ├── ivySettingsFile.groovy │ │ │ ├── ivyFileExcludesPattern.groovy │ │ │ ├── ivySettingsPropertyFiles.groovy │ │ │ └── ivyBuilder.groovy │ │ ├── MatrixJob │ │ │ ├── runSequentially.groovy │ │ │ ├── touchStoneFilter.groovy │ │ │ ├── combinationFilter.groovy │ │ │ ├── childCustomWorkspace.groovy │ │ │ └── axes.groovy │ │ └── WorkflowJob │ │ │ └── definition.groovy │ │ ├── helpers │ │ ├── ScmContext │ │ │ ├── github.groovy │ │ │ ├── perforceP4.groovy │ │ │ ├── rtc.groovy │ │ │ └── hg.groovy │ │ ├── triggers │ │ │ ├── ItemTriggerContext │ │ │ │ ├── cron.groovy │ │ │ │ └── dos.groovy │ │ │ ├── TriggerContext │ │ │ │ ├── bitbucketPush.groovy │ │ │ │ ├── githubPush.groovy │ │ │ │ ├── upstream.groovy │ │ │ │ ├── scm.groovy │ │ │ │ ├── buildResult.groovy │ │ │ │ ├── gerrit.groovy │ │ │ │ └── gitlabPush.groovy │ │ │ └── MavenTriggerContext │ │ │ │ └── snapshotDependencies.groovy │ │ ├── wrapper │ │ │ └── WrapperContext │ │ │ │ ├── golang.groovy │ │ │ │ ├── rvm.groovy │ │ │ │ ├── timestamps.groovy │ │ │ │ ├── buildUserVars.groovy │ │ │ │ ├── maskPasswords.groovy │ │ │ │ ├── colorizeOutput.groovy │ │ │ │ ├── nodejs.groovy │ │ │ │ ├── sshAgent.groovy │ │ │ │ ├── toolenv.groovy │ │ │ │ ├── runOnSameNodeAs.groovy │ │ │ │ ├── xvfb.groovy │ │ │ │ ├── deliveryPipelineVersion.groovy │ │ │ │ ├── injectPasswords.groovy │ │ │ │ ├── xvnc.groovy │ │ │ │ ├── customTools.groovy │ │ │ │ ├── rbenv.groovy │ │ │ │ ├── buildName.groovy │ │ │ │ ├── keychains.groovy │ │ │ │ ├── phabricator.groovy │ │ │ │ ├── credentialsBinding.groovy │ │ │ │ ├── preScmSteps.groovy │ │ │ │ ├── exclusionResources.groovy │ │ │ │ ├── environmentVariables.groovy │ │ │ │ ├── generateJiraReleaseNotes.groovy │ │ │ │ ├── configFiles.groovy │ │ │ │ ├── sauceOnDemand.groovy │ │ │ │ ├── release.groovy │ │ │ │ ├── buildInDocker.groovy │ │ │ │ ├── logSizeChecker.groovy │ │ │ │ └── preBuildCleanup.groovy │ │ ├── properties │ │ │ └── PropertiesContext │ │ │ │ ├── priority.groovy │ │ │ │ ├── zenTimestamp.groovy │ │ │ │ ├── rebuild.groovy │ │ │ │ ├── wallDisplay.groovy │ │ │ │ ├── githubProjectUrl.groovy │ │ │ │ ├── customIcon.groovy │ │ │ │ ├── buildFailureAnalyzer.groovy │ │ │ │ ├── ownership.groovy │ │ │ │ └── sidebarLinks.groovy │ │ ├── publisher │ │ │ ├── PublisherContext │ │ │ │ ├── emotional.groovy │ │ │ │ ├── chucknorris.groovy │ │ │ │ ├── fingerprint.groovy │ │ │ │ ├── jiraIssueUpdater.groovy │ │ │ │ ├── associatedFiles.groovy │ │ │ │ ├── githubCommitNotifier.groovy │ │ │ │ ├── mailer.groovy │ │ │ │ ├── downstream.groovy │ │ │ │ ├── allowBrokenBuildClaiming.groovy │ │ │ │ ├── mavenDeploymentLinker.groovy │ │ │ │ ├── publishCloneWorkspace.groovy │ │ │ │ ├── flog.groovy │ │ │ │ ├── publishBuild.groovy │ │ │ │ ├── archiveJavadoc.groovy │ │ │ │ ├── mantis.groovy │ │ │ │ ├── postBuildTask.groovy │ │ │ │ ├── publishScp.groovy │ │ │ │ ├── seleniumHtmlReport.groovy │ │ │ │ ├── seleniumReport.groovy │ │ │ │ ├── debianPackage.groovy │ │ │ │ ├── railsNotes.groovy │ │ │ │ ├── railsStats.groovy │ │ │ │ ├── createJiraVersion.groovy │ │ │ │ ├── releaseJiraVersion.groovy │ │ │ │ ├── cucumberTestResults.groovy │ │ │ │ ├── textFinder.groovy │ │ │ │ ├── groovyPostBuild.groovy │ │ │ │ ├── retryBuild.groovy │ │ │ │ ├── rcov.groovy │ │ │ │ ├── crittercismDsymUpload.groovy │ │ │ │ ├── warnings.groovy │ │ │ │ ├── archiveGatling.groovy │ │ │ │ ├── publishRobotFrameworkReports.groovy │ │ │ │ ├── createJiraIssue.groovy │ │ │ │ ├── publishJabber.groovy │ │ │ │ ├── slocCount.groovy │ │ │ │ ├── moveJiraIssues.groovy │ │ │ │ ├── downstreamParameterized.groovy │ │ │ │ ├── phabricatorNotifier.groovy │ │ │ │ ├── sonar.groovy │ │ │ │ ├── archiveArtifacts.groovy │ │ │ │ ├── stashNotifier.groovy │ │ │ │ ├── analysisCollector.groovy │ │ │ │ ├── violations.groovy │ │ │ │ ├── emma.groovy │ │ │ │ ├── publishHtml.groovy │ │ │ │ ├── aggregateDownstreamTestResults.groovy │ │ │ │ ├── cobertura.groovy │ │ │ │ ├── irc.groovy │ │ │ │ ├── archiveJunit.groovy │ │ │ │ ├── buildDescription.groovy │ │ │ │ ├── buildPipelineTrigger.groovy │ │ │ │ └── cloverPHP.groovy │ │ │ └── MavenPublisherContext │ │ │ │ └── deployArtifacts.groovy │ │ ├── step │ │ │ ├── StepContext │ │ │ │ ├── setBuildResult.groovy │ │ │ │ ├── exportRuntimeParameters.groovy │ │ │ │ ├── prerequisite.groovy │ │ │ │ ├── vSpherePowerOff.groovy │ │ │ │ ├── vSpherePowerOn.groovy │ │ │ │ ├── extractJiraEnvironmentVariables.groovy │ │ │ │ ├── nodejsCommand.groovy │ │ │ │ ├── python.groovy │ │ │ │ ├── ruby.groovy │ │ │ │ ├── vSphereRevertToSnapshot.groovy │ │ │ │ ├── debianPackage.groovy │ │ │ │ ├── sbt.groovy │ │ │ │ ├── managedScript.groovy │ │ │ │ ├── batchFile.groovy │ │ │ │ ├── buildDescription.groovy │ │ │ │ ├── jython.groovy │ │ │ │ ├── powerShell.groovy │ │ │ │ ├── systemGroovyScriptFile.groovy │ │ │ │ ├── virtualenv.groovy │ │ │ │ ├── systemGroovyCommand.groovy │ │ │ │ ├── gradle.groovy │ │ │ │ ├── groovyScriptFile.groovy │ │ │ │ ├── criticalBlock.groovy │ │ │ │ ├── groovyCommand.groovy │ │ │ │ ├── environmentVariables.groovy │ │ │ │ ├── publishOverSsh.groovy │ │ │ │ ├── progressJiraIssues.groovy │ │ │ │ ├── shell.groovy │ │ │ │ ├── vSphereDeployFromTemplate.groovy │ │ │ │ ├── httpRequest.groovy │ │ │ │ ├── jsLint.groovy │ │ │ │ ├── phing.groovy │ │ │ │ ├── remoteShell.groovy │ │ │ │ ├── nant.groovy │ │ │ │ ├── msBuild.groovy │ │ │ │ ├── dockerBuildAndPublish.groovy │ │ │ │ ├── rake.groovy │ │ │ │ ├── copyArtifacts.groovy │ │ │ │ ├── ant.groovy │ │ │ │ └── clangScanBuild.groovy │ │ │ └── CopyArtifactSelectorContext │ │ │ │ └── multiJobBuild.groovy │ │ ├── JobAuthorizationContext │ │ │ ├── blocksInheritance.groovy │ │ │ └── permissionAll.groovy │ │ ├── AxisContext │ │ │ └── python.groovy │ │ ├── BuildParametersContext │ │ │ ├── fileParam.groovy │ │ │ ├── booleanParam.groovy │ │ │ ├── nonStoredPasswordParam.groovy │ │ │ ├── runParam.groovy │ │ │ ├── textParam.groovy │ │ │ ├── stringParam.groovy │ │ │ ├── choiceParam.groovy │ │ │ ├── globalVariableParam.groovy │ │ │ ├── matrixCombinationsParam.groovy │ │ │ ├── gitParam.groovy │ │ │ ├── credentialsParam.groovy │ │ │ ├── activeChoiceParam.groovy │ │ │ ├── labelParam.groovy │ │ │ └── listTagsParam.groovy │ │ ├── toplevel │ │ │ ├── EnvironmentVariableContext │ │ │ │ ├── envs.groovy │ │ │ │ ├── scriptFile.groovy │ │ │ │ ├── keepBuildVariables.groovy │ │ │ │ ├── keepSystemVariables.groovy │ │ │ │ ├── env.groovy │ │ │ │ ├── overrideBuildParameters.groovy │ │ │ │ ├── propertiesFile.groovy │ │ │ │ ├── contributors.groovy │ │ │ │ ├── groovy.groovy │ │ │ │ └── script.groovy │ │ │ └── EnvironmentVariableContributorsContext │ │ │ │ └── populateToolInstallations.groovy │ │ ├── workflow │ │ │ ├── CpsContext │ │ │ │ └── script.groovy │ │ │ ├── OrphanedItemStrategyContext │ │ │ │ └── discardOldItems.groovy │ │ │ ├── WorkflowDefinitionContext │ │ │ │ ├── cps.groovy │ │ │ │ └── cpsScm.groovy │ │ │ └── BranchSourcesContext │ │ │ │ ├── github.groovy │ │ │ │ ├── git.groovy │ │ │ │ └── gitlab.groovy │ │ └── IvyBuilderContext │ │ │ └── ant.groovy │ │ └── DslFactory │ │ ├── pipelineAggregatorView.groovy │ │ ├── userContent.groovy │ │ ├── buildMonitorView.groovy │ │ ├── pipelineJob.groovy │ │ ├── queue.groovy │ │ ├── folder.groovy │ │ ├── streamFileFromWorkspace.groovy │ │ ├── organizationFolder.groovy │ │ ├── mavenJob.groovy │ │ ├── buildPipelineView.groovy │ │ ├── ivyJob.groovy │ │ ├── categorizedJobsView.groovy │ │ ├── job.groovy │ │ ├── freeStyleJob.groovy │ │ ├── matrixJob.groovy │ │ ├── deliveryPipelineView.groovy │ │ ├── multibranchPipelineJob.groovy │ │ └── nestedView.groovy │ ├── groovy │ └── javaposse │ │ └── jobdsl │ │ └── dsl │ │ ├── views │ │ ├── jobfilter │ │ │ ├── Status.groovy │ │ │ ├── UnclassifiedJobsFilter.groovy │ │ │ ├── RegexMatchValue.groovy │ │ │ ├── AmountType.groovy │ │ │ ├── BuildCountType.groovy │ │ │ ├── JobStatusesFilter.groovy │ │ │ ├── MatchType.groovy │ │ │ └── AbstractJobFilter.groovy │ │ └── portlets │ │ │ ├── BuildStatisticsContext.groovy │ │ │ ├── JenkinsJobsListContext.groovy │ │ │ └── TestStatisticsChartContext.groovy │ │ ├── ExtensibleContext.groovy │ │ ├── NameNotProvidedException.groovy │ │ ├── ConfigurationMissingException.groovy │ │ ├── GeneratedItems.groovy │ │ ├── JobConfigurationNotFoundException.groovy │ │ ├── JobTemplateMissingException.groovy │ │ ├── UserContent.groovy │ │ ├── helpers │ │ ├── ConfigFilesContext.groovy │ │ ├── wrapper │ │ │ └── ExclusionContext.groovy │ │ ├── scm │ │ │ └── SvnDepth.groovy │ │ ├── triggers │ │ │ ├── MultibranchWorkflowTriggerContext.groovy │ │ │ └── ScmTriggerContext.groovy │ │ ├── publisher │ │ │ ├── FailureCountExtendedEmailTriggerContext.groovy │ │ │ ├── CloverPhpHtmlReportContext.groovy │ │ │ ├── DebianPackagePublisherContext.groovy │ │ │ ├── PlotPropertiesSeriesContext.groovy │ │ │ ├── ArchiveXUnitCustomToolContext.groovy │ │ │ ├── SonarTriggersContext.groovy │ │ │ ├── PlotSeriesContext.groovy │ │ │ └── SeleniumReportContext.groovy │ │ ├── step │ │ │ ├── SystemGroovyContext.groovy │ │ │ └── AbstractGroovyContext.groovy │ │ ├── LocalRepositoryLocation.groovy │ │ └── parameter │ │ │ └── ActiveChoiceReactiveContext.groovy │ │ ├── JobTypeMismatchException.groovy │ │ ├── jobs │ │ └── FreeStyleJob.groovy │ │ ├── Context.groovy │ │ ├── DslScriptLoader.groovy │ │ ├── AbstractContext.groovy │ │ ├── ContextType.groovy │ │ ├── DslContext.groovy │ │ ├── SnitchingClassLoader.java │ │ └── DslException.groovy │ └── resources │ └── javaposse │ └── jobdsl │ └── dsl │ ├── views │ ├── NestedView-template.xml │ ├── SectionedView-template.xml │ └── ListView-template.xml │ └── jobs │ └── WorkflowJob-template.xml ├── .mvn ├── maven.config └── extensions.xml ├── .git-blame-ignore-revs ├── Jenkinsfile ├── config └── codenarc │ ├── ignored-field-names.txt │ └── rules-examples.groovy ├── job-dsl-ast └── src │ └── main │ └── resources │ └── META-INF │ └── services │ └── org.codehaus.groovy.transform.ASTTransformation └── .gitignore /job-dsl-plugin/.mvn_exec_node: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @jenkinsci/job-dsl-plugin-developers 2 | -------------------------------------------------------------------------------- /docs/Automatically-Generated-DSL.md: -------------------------------------------------------------------------------- 1 | See [[Dynamic DSL]]. 2 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/resources/foo/test.dsl: -------------------------------------------------------------------------------- 1 | job('test') { 2 | } 3 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/resources/java.dsl: -------------------------------------------------------------------------------- 1 | job('test') { 2 | } 3 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/resources/simple2.dsl: -------------------------------------------------------------------------------- 1 | job('test2') { 2 | } 3 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/resources/deprecation.groovy: -------------------------------------------------------------------------------- 1 | jm.testMethod() 2 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/resources/simple.dsl: -------------------------------------------------------------------------------- 1 | 2 | job('test') { 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/resources/test-script.dsl: -------------------------------------------------------------------------------- 1 | job('test') { 2 | } 3 | -------------------------------------------------------------------------------- /.mvn/maven.config: -------------------------------------------------------------------------------- 1 | -Pconsume-incrementals 2 | -Pmight-produce-incrementals 3 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/resources/file.dsl: -------------------------------------------------------------------------------- 1 | println "Script: ${ __FILE__}" 2 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module" 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/json/static/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "embedded": false 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/resources/javaposse/jobdsl/dsl/TestView-template.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/json/embedded/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "embedded": true 3 | } 4 | -------------------------------------------------------------------------------- /docs/images/Build1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/job-dsl-plugin/HEAD/docs/images/Build1.png -------------------------------------------------------------------------------- /docs/images/newjob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/job-dsl-plugin/HEAD/docs/images/newjob.png -------------------------------------------------------------------------------- /docs/images/pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/job-dsl-plugin/HEAD/docs/images/pipeline.png -------------------------------------------------------------------------------- /docs/images/result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/job-dsl-plugin/HEAD/docs/images/result.png -------------------------------------------------------------------------------- /job-dsl-core/src/test/resources/caller.dsl: -------------------------------------------------------------------------------- 1 | job('test') { 2 | } 3 | 4 | Callee.makeJob(this, 'test2') 5 | -------------------------------------------------------------------------------- /docs/images/EmptySeed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/job-dsl-plugin/HEAD/docs/images/EmptySeed.png -------------------------------------------------------------------------------- /docs/images/build-step.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/job-dsl-plugin/HEAD/docs/images/build-step.png -------------------------------------------------------------------------------- /docs/images/createjob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/job-dsl-plugin/HEAD/docs/images/createjob.png -------------------------------------------------------------------------------- /docs/images/AddBuildStep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/job-dsl-plugin/HEAD/docs/images/AddBuildStep.png -------------------------------------------------------------------------------- /docs/images/DslBuildStep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/job-dsl-plugin/HEAD/docs/images/DslBuildStep.png -------------------------------------------------------------------------------- /docs/images/create-seed-job.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/job-dsl-plugin/HEAD/docs/images/create-seed-job.png -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Job/disabled.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | disabled() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Project/jdk.groovy: -------------------------------------------------------------------------------- 1 | job('jdk') { 2 | jdk('Java 8') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Project/weight.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | weight(2) 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/resources/deprecation-subject.groovy: -------------------------------------------------------------------------------- 1 | // test script 2 | 3 | jm.testMethodWithCustomSubject() 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/resources/userContent.dsl: -------------------------------------------------------------------------------- 1 | userContent('foo.txt', new ByteArrayInputStream('lorem ipsum'.bytes)) 2 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/hbs/tree.hbs: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/test/resources/view-extension.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/images/AddBuildStepSelected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/job-dsl-plugin/HEAD/docs/images/AddBuildStepSelected.png -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Job/quietPeriod.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | quietPeriod(120) 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Job/compressBuildLog.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | compressBuildLog() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Job/keepDependencies.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | keepDependencies() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Job/using.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | using('project-template') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Project/label.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | label('x86 && ubuntu') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/ListView/recurse.groovy: -------------------------------------------------------------------------------- 1 | listView('project-A') { 2 | recurse() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/test/resources/javaposse/jobdsl/plugin/deprecation.groovy: -------------------------------------------------------------------------------- 1 | jm.logPluginDeprecationWarning('matrix-auth', '999999.0') 2 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Job/description.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | description('My first job') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Project/concurrentBuild.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | concurrentBuild() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/resources/configfiles.dsl: -------------------------------------------------------------------------------- 1 | customConfigFile('foo') { 2 | comment('lorem ipsum') 3 | content('') 4 | } 5 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/resources/javaposse/jobdsl/dsl/TestJob-template.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/test/resources/folder.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.git-blame-ignore-revs: -------------------------------------------------------------------------------- 1 | # .git-blame-ignore-revs 2 | # Enable Spotless for code formatting (#1305) 3 | 724aa6928f872c6437c8f1d02fc9fe6ae3a45d99 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Folder/displayName.groovy: -------------------------------------------------------------------------------- 1 | folder('project-a') { 2 | displayName('Project A') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Project/checkoutRetryCount.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | checkoutRetryCount(10) 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MavenJob/runHeadless.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example') { 2 | runHeadless(true) 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/resources/javaposse/jobdsl/dsl/TestProject-template.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/resources/test-script-with-method.dsl: -------------------------------------------------------------------------------- 1 | def doSomething(def test) { 2 | println test 3 | } 4 | 5 | doSomething('foo') 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Job/displayName.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | displayName('Job DSL Example Project') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/IvyJob/ivyBranch.groovy: -------------------------------------------------------------------------------- 1 | ivyJob('example') { 2 | ivyBranch('myproduct/1.2') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MatrixJob/runSequentially.groovy: -------------------------------------------------------------------------------- 1 | matrixJob('example') { 2 | runSequentially() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MavenJob/incrementalBuild.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example') { 2 | incrementalBuild() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/ListView/filterExecutors.groovy: -------------------------------------------------------------------------------- 1 | listView('example') { 2 | filterExecutors() 3 | } 4 | -------------------------------------------------------------------------------- /Jenkinsfile: -------------------------------------------------------------------------------- 1 | buildPlugin(useContainerAgent: true, configurations: [ 2 | [platform: 'linux', jdk: 25], 3 | [platform: 'windows', jdk: 21], 4 | ]) 5 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Folder/description.groovy: -------------------------------------------------------------------------------- 1 | folder('project-a') { 2 | description('Folder for project A') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Project/authenticationToken.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | authenticationToken('secret') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Project/blockOnUpstreamProjects.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | blockOnUpstreamProjects() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MavenJob/rootPOM.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example-1') { 2 | rootPOM('sub-project/pom.xml') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildMonitorView/recurse.groovy: -------------------------------------------------------------------------------- 1 | buildMonitorView('project-A') { 2 | recurse() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/ListView/filterBuildQueue.groovy: -------------------------------------------------------------------------------- 1 | listView('example') { 2 | filterBuildQueue() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/NestedView/filterBuildQueue.groovy: -------------------------------------------------------------------------------- 1 | nestedView('example') { 2 | filterBuildQueue() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/NestedView/filterExecutors.groovy: -------------------------------------------------------------------------------- 1 | nestedView('example') { 2 | filterExecutors() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/js/app.js: -------------------------------------------------------------------------------- 1 | import App from './components/App.js'; 2 | 3 | $(function() { 4 | var app = new App(); 5 | app.start(); 6 | }); 7 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/resources/index.jelly: -------------------------------------------------------------------------------- 1 | 2 |
This plugin allows Jobs and Views to be defined via DSLs
3 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/test/java/ScriptHelper.java: -------------------------------------------------------------------------------- 1 | public class ScriptHelper { 2 | public static String foo() { 3 | return "foo"; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Project/blockOnDownstreamProjects.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | blockOnDownstreamProjects() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Project/customWorkspace.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | customWorkspace('/tmp/my-workspace') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Project/triggers.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | triggers { 3 | scm('@daily') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MavenJob/archivingDisabled.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example') { 2 | archivingDisabled(true) 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MavenJob/resolveDependencies.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example') { 2 | resolveDependencies() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MavenJob/siteArchivingDisabled.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example') { 2 | siteArchivingDisabled() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/CategorizedJobsView/recurse.groovy: -------------------------------------------------------------------------------- 1 | categorizedJobsView('project-A') { 2 | recurse() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/DeliveryPipelineView/columns.groovy: -------------------------------------------------------------------------------- 1 | deliveryPipelineView('example') { 2 | columns(2) 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/SectionedView/filterExecutors.groovy: -------------------------------------------------------------------------------- 1 | sectionedView('example') { 2 | filterExecutors() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MavenJob/fingerprintingDisabled.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example') { 2 | fingerprintingDisabled() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildMonitorView/filterExecutors.groovy: -------------------------------------------------------------------------------- 1 | buildMonitorView('example') { 2 | filterExecutors() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/DeliveryPipelineView/showAvatars.groovy: -------------------------------------------------------------------------------- 1 | deliveryPipelineView('example') { 2 | showAvatars() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/ListView/description.groovy: -------------------------------------------------------------------------------- 1 | listView('project-a') { 2 | description('View for project A') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/ListView/statusFilter.groovy: -------------------------------------------------------------------------------- 1 | listView('project-A') { 2 | statusFilter(StatusFilter.ENABLED) 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/SectionedView/filterBuildQueue.groovy: -------------------------------------------------------------------------------- 1 | sectionedView('example') { 2 | filterBuildQueue() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Project/scm.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | scm { 3 | github('jenkinsci/job-dsl-plugin') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MatrixJob/touchStoneFilter.groovy: -------------------------------------------------------------------------------- 1 | matrixJob('example') { 2 | touchStoneFilter('label=="linux"') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MavenJob/disableDownstreamTrigger.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example') { 2 | disableDownstreamTrigger() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MavenJob/mavenInstallation.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example-1') { 2 | mavenInstallation('Maven 3.2.5') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MavenJob/providedSettings.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example') { 2 | providedSettings('central-mirror') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildMonitorView/filterBuildQueue.groovy: -------------------------------------------------------------------------------- 1 | buildMonitorView('example') { 2 | filterBuildQueue() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildPipelineView/displayedBuilds.groovy: -------------------------------------------------------------------------------- 1 | buildPipelineView('example') { 2 | displayedBuilds(5) 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildPipelineView/filterBuildQueue.groovy: -------------------------------------------------------------------------------- 1 | buildPipelineView('example') { 2 | filterBuildQueue() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildPipelineView/filterExecutors.groovy: -------------------------------------------------------------------------------- 1 | buildPipelineView('example') { 2 | filterExecutors() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildPipelineView/title.groovy: -------------------------------------------------------------------------------- 1 | buildPipelineView('example') { 2 | title('Project A CI Pipeline') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/DeliveryPipelineView/allowRebuild.groovy: -------------------------------------------------------------------------------- 1 | deliveryPipelineView('example') { 2 | allowRebuild() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/DeliveryPipelineView/showChangeLog.groovy: -------------------------------------------------------------------------------- 1 | deliveryPipelineView('example') { 2 | showChangeLog() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/DeliveryPipelineView/sorting.groovy: -------------------------------------------------------------------------------- 1 | deliveryPipelineView('example') { 2 | sorting(Sorting.TITLE) 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/JobFiltersContext/all.groovy: -------------------------------------------------------------------------------- 1 | listView('example') { 2 | jobFilters { 3 | all() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/NestedView/description.groovy: -------------------------------------------------------------------------------- 1 | nestedView('project-a') { 2 | description('View for project A') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/test/resources/javaposse/jobdsl/plugin/missingPlugin.groovy: -------------------------------------------------------------------------------- 1 | job('a') { 2 | publishers { 3 | extendedEmail { 4 | } 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/IvyJob/ivySettingsFile.groovy: -------------------------------------------------------------------------------- 1 | ivyJob('example') { 2 | ivySettingsFile('build/ivy/ivysettings.xml') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildPipelineView/refreshFrequency.groovy: -------------------------------------------------------------------------------- 1 | buildPipelineView('example') { 2 | refreshFrequency(60) 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/CategorizedJobsView/filterBuildQueue.groovy: -------------------------------------------------------------------------------- 1 | categorizedJobsView('example') { 2 | filterBuildQueue() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/CategorizedJobsView/filterExecutors.groovy: -------------------------------------------------------------------------------- 1 | categorizedJobsView('example') { 2 | filterExecutors() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/DeliveryPipelineView/showDescription.groovy: -------------------------------------------------------------------------------- 1 | deliveryPipelineView('example') { 2 | showDescription() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/DeliveryPipelineView/showPromotions.groovy: -------------------------------------------------------------------------------- 1 | deliveryPipelineView('example') { 2 | showPromotions() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/DeliveryPipelineView/updateInterval.groovy: -------------------------------------------------------------------------------- 1 | deliveryPipelineView('example') { 2 | updateInterval(60) 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/JobsContext/regex.groovy: -------------------------------------------------------------------------------- 1 | listView('example') { 2 | jobs { 3 | regex('project-A-.+') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/SectionedView/description.groovy: -------------------------------------------------------------------------------- 1 | sectionedView('project-a') { 2 | description('View for project A') 3 | } 4 | -------------------------------------------------------------------------------- /.github/release-drafter.yml: -------------------------------------------------------------------------------- 1 | # https://github.com/jenkinsci/.github/blob/master/.github/release-drafter.adoc 2 | _extends: .github 3 | tag-template: job-dsl-$NEXT_MINOR_VERSION 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MavenJob/providedGlobalSettings.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example') { 2 | providedGlobalSettings('central-mirror') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildMonitorView/description.groovy: -------------------------------------------------------------------------------- 1 | buildMonitorView('project-a') { 2 | description('View for project A') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildPipelineView/selectedJob.groovy: -------------------------------------------------------------------------------- 1 | buildPipelineView('example') { 2 | selectedJob('project-a-compile') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildPipelineView/startsWithParameters.groovy: -------------------------------------------------------------------------------- 1 | buildPipelineView('example') { 2 | startsWithParameters() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildPipelineView/triggerOnlyLatestJob.groovy: -------------------------------------------------------------------------------- 1 | buildPipelineView('example') { 2 | triggerOnlyLatestJob() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/ColumnsContext/cronTrigger.groovy: -------------------------------------------------------------------------------- 1 | listView('example') { 2 | columns { 3 | cronTrigger() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/ColumnsContext/progressBar.groovy: -------------------------------------------------------------------------------- 1 | listView('example') { 2 | columns { 3 | progressBar() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/DeliveryPipelineView/allowPipelineStart.groovy: -------------------------------------------------------------------------------- 1 | deliveryPipelineView('example') { 2 | allowPipelineStart() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/DeliveryPipelineView/showTotalBuildTime.groovy: -------------------------------------------------------------------------------- 1 | deliveryPipelineView('example') { 2 | showTotalBuildTime() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/JobFiltersContext/release.groovy: -------------------------------------------------------------------------------- 1 | listView('example') { 2 | jobFilters { 3 | release() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/JobsContext/names.groovy: -------------------------------------------------------------------------------- 1 | listView('example') { 2 | jobs { 3 | names('build', 'test') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/ScmContext/github.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | scm { 3 | github('jenkinsci/job-dsl-plugin') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/triggers/ItemTriggerContext/cron.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | triggers { 3 | cron('@daily') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/golang.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | golang('Go 1.3.3') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/rvm.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | rvm('ruby-1.9.3') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/timestamps.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | timestamps() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/IvyJob/ivyFileExcludesPattern.groovy: -------------------------------------------------------------------------------- 1 | ivyJob('example') { 2 | ivyFileExcludesPattern('moduleX/**,moduleZ/**') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildMonitorView/statusFilter.groovy: -------------------------------------------------------------------------------- 1 | buildMonitorView('project-A') { 2 | statusFilter(StatusFilter.ENABLED) 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildPipelineView/alwaysAllowManualTrigger.groovy: -------------------------------------------------------------------------------- 1 | buildPipelineView('example') { 2 | alwaysAllowManualTrigger() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildPipelineView/description.groovy: -------------------------------------------------------------------------------- 1 | buildPipelineView('project-a') { 2 | description('View for project A') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildPipelineView/showPipelineParameters.groovy: -------------------------------------------------------------------------------- 1 | buildPipelineView('example') { 2 | showPipelineParameters() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/CategorizedJobsView/description.groovy: -------------------------------------------------------------------------------- 1 | categorizedJobsView('project-a') { 2 | description('View for project A') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/DeliveryPipelineView/enableManualTriggers.groovy: -------------------------------------------------------------------------------- 1 | deliveryPipelineView('example') { 2 | enableManualTriggers() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/JobFiltersContext/allRelease.groovy: -------------------------------------------------------------------------------- 1 | listView('example') { 2 | jobFilters { 3 | allRelease() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/PipelineAggregatorView/fontSize.groovy: -------------------------------------------------------------------------------- 1 | pipelineAggregatorView('pipeline-aggregator-view') { 2 | fontSize(10) 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Project/steps.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | shell('echo START') 4 | gradle('check') 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Project/wrappers.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | colorizeOutput() 4 | timestamps() 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/properties/PropertiesContext/priority.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | properties { 3 | priority(5) 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/emotional.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | emotional() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/triggers/TriggerContext/bitbucketPush.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | triggers { 3 | bitbucketPush() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/triggers/TriggerContext/githubPush.groovy: -------------------------------------------------------------------------------- 1 | job('example-1') { 2 | triggers { 3 | githubPush() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/buildUserVars.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | buildUserVars() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/maskPasswords.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | maskPasswords() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MatrixJob/combinationFilter.groovy: -------------------------------------------------------------------------------- 1 | matrixJob('example') { 2 | combinationFilter('jdk=="jdk-8" || label=="linux"') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MavenJob/localRepository.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example') { 2 | localRepository(LocalRepositoryLocation.LOCAL_TO_WORKSPACE) 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildPipelineView/customCssUrl.groovy: -------------------------------------------------------------------------------- 1 | buildPipelineView('example') { 2 | customCssUrl('url/to/custom/css/files') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/CategorizedJobsView/statusFilter.groovy: -------------------------------------------------------------------------------- 1 | categorizedJobsView('project-A') { 2 | statusFilter(StatusFilter.ENABLED) 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/DeliveryPipelineView/showAggregatedPipeline.groovy: -------------------------------------------------------------------------------- 1 | deliveryPipelineView('example') { 2 | showAggregatedPipeline() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/PipelineAggregatorView/onlyLastBuild.groovy: -------------------------------------------------------------------------------- 1 | pipelineAggregatorView('pipeline-aggregator-view') { 2 | onlyLastBuild() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/chucknorris.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | chucknorris() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/setBuildResult.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | setBuildResult('UNSTABLE') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/colorizeOutput.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | colorizeOutput() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/nodejs.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | nodejs('NodeJS 0.10.26') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/sshAgent.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | sshAgent('deployment-key') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildPipelineView/showPipelineDefinitionHeader.groovy: -------------------------------------------------------------------------------- 1 | buildPipelineView('example') { 2 | showPipelineDefinitionHeader() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/JobsContext/name.groovy: -------------------------------------------------------------------------------- 1 | listView('example') { 2 | jobs { 3 | name('build') 4 | name('test') 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/NestedView/columns.groovy: -------------------------------------------------------------------------------- 1 | nestedView('project-A') { 2 | columns { 3 | status() 4 | weather() 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/exportRuntimeParameters.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | exportRuntimeParameters() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/prerequisite.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | prerequisite('project-a, project-b') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/triggers/TriggerContext/upstream.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | triggers { 3 | upstream('other', 'UNSTABLE') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/IvyJob/ivySettingsPropertyFiles.groovy: -------------------------------------------------------------------------------- 1 | ivyJob('example') { 2 | ivySettingsPropertyFiles('branch.properties,deps.properties') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MavenJob/preBuildSteps.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example') { 2 | preBuildSteps { 3 | shell("echo 'run before Maven'") 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildPipelineView/showPipelineParametersInHeaders.groovy: -------------------------------------------------------------------------------- 1 | buildPipelineView('example') { 2 | showPipelineParametersInHeaders() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/PipelineAggregatorView/buildHistorySize.groovy: -------------------------------------------------------------------------------- 1 | pipelineAggregatorView('pipeline-aggregator-view') { 2 | buildHistorySize(10) 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/PipelineAggregatorView/filterRegex.groovy: -------------------------------------------------------------------------------- 1 | pipelineAggregatorView('pipeline-aggregator-view') { 2 | filterRegex('.*Pipeline') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/PipelineAggregatorView/useCondensedTables.groovy: -------------------------------------------------------------------------------- 1 | pipelineAggregatorView('pipeline-aggregator-view') { 2 | useCondensedTables() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Folder/icon.groovy: -------------------------------------------------------------------------------- 1 | // use the stock icon 2 | // see https://github.com/jenkinsci/custom-folder-icon-plugin for custom icons 3 | folder('stock') 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/JobAuthorizationContext/blocksInheritance.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | authorization { 3 | blocksInheritance() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/fingerprint.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | fingerprint('**/*.jar') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/jiraIssueUpdater.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | jiraIssueUpdater() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/toolenv.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | toolenv('Ant 1.8.2', 'Maven 3.1') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildPipelineView/consoleOutputLinkStyle.groovy: -------------------------------------------------------------------------------- 1 | buildPipelineView('example') { 2 | consoleOutputLinkStyle(OutputStyle.Lightbox) 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/DeliveryPipelinesContext/regex.groovy: -------------------------------------------------------------------------------- 1 | deliveryPipelineView('example') { 2 | pipelines { 3 | regex(/compile-(.*)/) 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/PipelineAggregatorView/description.groovy: -------------------------------------------------------------------------------- 1 | pipelineAggregatorView('pipeline-aggregator-view') { 2 | description('View description') 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/PipelineAggregatorView/showBuildDuration.groovy: -------------------------------------------------------------------------------- 1 | pipelineAggregatorView('pipeline-aggregator-view') { 2 | showBuildDuration(false) 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/PipelineAggregatorView/useScrollingCommits.groovy: -------------------------------------------------------------------------------- 1 | pipelineAggregatorView('pipeline-aggregator-view') { 2 | useScrollingCommits() 3 | } 4 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Folder/configure.groovy: -------------------------------------------------------------------------------- 1 | folder('example-2') { 2 | configure { folder -> 3 | folder / icon(class: 'org.example.MyFolderIcon') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/AxisContext/python.groovy: -------------------------------------------------------------------------------- 1 | matrixJob('example') { 2 | axes { 3 | python('System-CPython-2.7', 'System-CPython-3.3') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/associatedFiles.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | associatedFiles('/tmp/logs') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/githubCommitNotifier.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | githubCommitNotifier() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/mailer.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | mailer('me@example.com', true, true) 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/vSpherePowerOff.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | vSpherePowerOff('vsphere.acme.org', 'foo') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/vSpherePowerOn.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | vSpherePowerOn('vsphere.acme.org', 'foo') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/runOnSameNodeAs.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | runOnSameNodeAs('project-a', true) 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/properties/PropertiesContext/zenTimestamp.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | properties { 3 | zenTimestamp('yyyy-MM-dd-HH-mm') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/downstream.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | downstream('project-a', 'UNSTABLE') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/ListView/configure.groovy: -------------------------------------------------------------------------------- 1 | listView('example') { 2 | configure { view -> 3 | view / icon(class: 'org.example.MyViewIcon') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Job/previousNames.groovy: -------------------------------------------------------------------------------- 1 | // keep the build history when re-numbering jobs 2 | job('04-project-a-deploy') { 3 | previousNames(/\d+-project-a-deploy/) 4 | } 5 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/BuildParametersContext/fileParam.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | parameters { 3 | fileParam('test/upload.zip', 'my description') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/allowBrokenBuildClaiming.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | allowBrokenBuildClaiming() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/extractJiraEnvironmentVariables.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | extractJiraEnvironmentVariables() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/toplevel/EnvironmentVariableContext/envs.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | environmentVariables { 3 | envs(FOO: 'bar', TEST: '123') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/toplevel/EnvironmentVariableContext/scriptFile.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | environmentVariables { 3 | scriptFile('env.sh') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/triggers/MavenTriggerContext/snapshotDependencies.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example') { 2 | triggers { 3 | snapshotDependencies(true) 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/NestedView/configure.groovy: -------------------------------------------------------------------------------- 1 | nestedView('example') { 2 | configure { view -> 3 | view / icon(class: 'org.example.MyViewIcon') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/mavenDeploymentLinker.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | mavenDeploymentLinker('.*.tar.gz') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/nodejsCommand.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | nodejsCommand('console.log("Hello World!")', 'Node 0.12.0') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/python.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | python { 4 | command('python setup.py') 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/SectionedView/configure.groovy: -------------------------------------------------------------------------------- 1 | sectionedView('example') { 2 | configure { view -> 3 | view / icon(class: 'org.example.MyViewIcon') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/test/java/javaposse/jobdsl/plugin/fixtures/TestContext.java: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.plugin.fixtures; 2 | 3 | import javaposse.jobdsl.dsl.Context; 4 | 5 | public class TestContext implements Context {} 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/properties/PropertiesContext/rebuild.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | properties { 3 | rebuild { 4 | autoRebuild() 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/publishCloneWorkspace.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | publishCloneWorkspace('build/libs/**') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/ruby.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | ruby("puts 'Hello'") 4 | ruby(readFileFromWorkspace('build.rb')) 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/toplevel/EnvironmentVariableContext/keepBuildVariables.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | environmentVariables { 3 | keepBuildVariables(true) 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/toplevel/EnvironmentVariableContext/keepSystemVariables.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | environmentVariables { 3 | keepSystemVariables(true) 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildMonitorView/configure.groovy: -------------------------------------------------------------------------------- 1 | buildMonitorView('example') { 2 | configure { view -> 3 | view / icon(class: 'org.example.MyViewIcon') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildPipelineView/configure.groovy: -------------------------------------------------------------------------------- 1 | buildPipelineView('example') { 2 | configure { view -> 3 | view / icon(class: 'org.example.MyViewIcon') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/BuildParametersContext/booleanParam.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | parameters { 3 | booleanParam('RUN_TESTS', true, 'uncheck to disable tests') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/vSphereRevertToSnapshot.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | vSphereRevertToSnapshot('vsphere.acme.org', 'foo', 'clean') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/toplevel/EnvironmentVariableContext/env.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | environmentVariables { 3 | env('ONE', '1') 4 | env('TWO', '2') 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/toplevel/EnvironmentVariableContext/overrideBuildParameters.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | environmentVariables { 3 | overrideBuildParameters() 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/toplevel/EnvironmentVariableContext/propertiesFile.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | environmentVariables { 3 | propertiesFile('build.properties') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/xvfb.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | xvfb('default') { 4 | screen('1920x1080x24') 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/CategorizedJobsView/configure.groovy: -------------------------------------------------------------------------------- 1 | categorizedJobsView('example') { 2 | configure { view -> 3 | view / icon(class: 'org.example.MyViewIcon') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/debianPackage.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | debianPackage('module') { 4 | generateChangelog() 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/sbt.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | sbt('SBT 0.12.3', 'test', '-Dsbt.log.noformat=true', '-Xmx2G -Xms512M', 'subproject') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/deliveryPipelineVersion.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | deliveryPipelineVersion('1.0.${BUILD_NUMBER}', true) 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/DeliveryPipelineView/configure.groovy: -------------------------------------------------------------------------------- 1 | deliveryPipelineView('example') { 2 | configure { view -> 3 | view / icon(class: 'org.example.MyViewIcon') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/groovy/javaposse/jobdsl/dsl/helpers/step/ArbitraryCategory.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl.helpers.step 2 | 3 | class ArbitraryCategory { 4 | def sayHello(String who) { 5 | "Hi $who !" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/html/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | <%= htmlWebpackPlugin.options.title %> 4 | 5 | 6 |
7 | 8 | 9 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/test/resources/javaposse/jobdsl/plugin/gstring.groovy: -------------------------------------------------------------------------------- 1 | def TRIGGER = '@midnight' 2 | 3 | job('a') { 4 | triggers { 5 | timerTrigger { 6 | spec("${TRIGGER}") 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/DslFactory/pipelineAggregatorView.groovy: -------------------------------------------------------------------------------- 1 | pipelineAggregatorView('pipeline-aggregator-view') { 2 | filterRegex('.*Pipeline') 3 | onlyLastBuild() 4 | useCondensedTables() 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/BuildParametersContext/nonStoredPasswordParam.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | parameters { 3 | nonStoredPasswordParam('myParameterName', 'my description') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/BuildParametersContext/runParam.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | parameters { 3 | runParam('myParameterName', 'myJobName', 'my description', 'SUCCESSFUL') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/properties/PropertiesContext/wallDisplay.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | properties { 3 | wallDisplay { 4 | name('job example') 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/flog.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | flog { 4 | rubyDirectories('folderA', 'folderB') 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/managedScript.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | managedScript('my-script') { 4 | arguments('World') 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/DeliveryPipelineView/pipelineInstances.groovy: -------------------------------------------------------------------------------- 1 | deliveryPipelineView('example') { 2 | configure { view -> 3 | view / icon(class: 'org.example.MyViewIcon') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/DslFactory/userContent.groovy: -------------------------------------------------------------------------------- 1 | // save the file images/logo.png from the seed job's workspace as user content 2 | userContent('company-logo.png', streamFileFromWorkspace('images/logo.png')) 3 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Job/configure.groovy: -------------------------------------------------------------------------------- 1 | job('example-1') { 2 | configure { project -> 3 | project / 'properties' / 'com.example.Test' { 4 | 'switch'('on') 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/BuildParametersContext/textParam.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | parameters { 3 | textParam('myParameterName', 'my default textParam value', 'my description') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/properties/PropertiesContext/githubProjectUrl.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | properties { 3 | githubProjectUrl('https://github.com/jenkinsci/job-dsl-plugin') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/publishBuild.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | publishBuild { 4 | discardOldBuilds(7, 10) 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/batchFile.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | batchFile('echo Hello World!') 4 | batchFile(readFileFromWorkspace('build.bat')) 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/buildDescription.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | buildDescription(/.*\[INFO\] Uploading project information for [^\s]* ([^\s]*)/) 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/jython.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | jython('print "Hello" + "Goodbye"') 4 | jython(readFileFromWorkspace('build.py')) 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/injectPasswords.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | injectPasswords { 4 | injectGlobalPasswords() 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/views/jobfilter/Status.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl.views.jobfilter 2 | 3 | enum Status { 4 | UNSTABLE, 5 | FAILED, 6 | ABORTED, 7 | DISABLED, 8 | STABLE 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/groovy/javaposse/jobdsl/dsl/TestView.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl 2 | 3 | class TestView extends View { 4 | TestView(JobManagement jobManagement, String name) { 5 | super(jobManagement, name) 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Job/parameters.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | parameters { 3 | booleanParam('FLAG', true) 4 | choiceParam('OPTION', ['option 1 (default)', 'option 2', 'option 3']) 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/BuildParametersContext/stringParam.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | parameters { 3 | stringParam('myParameterName', 'my default stringParam value', 'my description') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/xvnc.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | xvnc { 4 | takeScreenshot() 5 | useXauthority(false) 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MatrixJob/childCustomWorkspace.groovy: -------------------------------------------------------------------------------- 1 | // Reuse the same custom workspace for every axis. 2 | matrixJob('example') { 3 | customWorkspace('example') 4 | childCustomWorkspace('.') 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/CategorizedJobsView/categorizationCriteria.groovy: -------------------------------------------------------------------------------- 1 | categorizedJobsView('example') { 2 | categorizationCriteria { 3 | regexGroupingRule(/^configuration_([^_]+).*$/) 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/groovy/javaposse/jobdsl/dsl/TestProject.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl 2 | 3 | class TestProject extends Project { 4 | TestProject(JobManagement jobManagement) { 5 | super(jobManagement, 'test') 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Project/publishers.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | archiveArtifacts('build/test-output/**/*.html') 4 | archiveJunit('**/target/surefire-reports/*.xml') 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/archiveJavadoc.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | archiveJavadoc { 4 | javadocDir('target/javadoc') 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/CategorizationCriteriaContext/regexGroupingRule.groovy: -------------------------------------------------------------------------------- 1 | categorizedJobsView('example') { 2 | categorizationCriteria { 3 | regexGroupingRule(/^configuration_([^_]+).*$/) 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/JobFiltersContext/unclassified.groovy: -------------------------------------------------------------------------------- 1 | listView('example') { 2 | jobFilters { 3 | unclassified { 4 | matchType(MatchType.INCLUDE_UNMATCHED) 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/resources/javaposse/jobdsl/plugin/ExecuteDslScripts/help-scriptText.html: -------------------------------------------------------------------------------- 1 |
2 | DSL Script, which is groovy code. Look at documentation for details on the syntax. 3 |
-------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/powerShell.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | powerShell('Write-Output "Hello World!"') 4 | powerShell(readFileFromWorkspace('build.ps1')) 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/customTools.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | customTools(['NodeJS', 'figlet']) { 4 | skipMasterInstallation() 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/JobFiltersContext/mostRecent.groovy: -------------------------------------------------------------------------------- 1 | listView('example') { 2 | jobFilters { 3 | mostRecent { 4 | maxToInclude(5) 5 | checkStartTime() 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/ListView/jobs.groovy: -------------------------------------------------------------------------------- 1 | listView('example') { 2 | jobs { 3 | name('build') 4 | name('test') 5 | names('compile', 'deploy') 6 | regex('project-A-.+') 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/BuildParametersContext/choiceParam.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | parameters { 3 | choiceParam('myParameterName', ['option 1 (default)', 'option 2', 'option 3'], 'my description') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/mantis.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | mantis { 4 | keepNotePrivate() 5 | recordChangelogToNote() 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/postBuildTask.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | postBuildTask { 4 | task('BUILD SUCCESSFUL', 'git clean -fdx') 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/toplevel/EnvironmentVariableContext/contributors.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | environmentVariables { 3 | contributors { 4 | populateToolInstallations() 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/workflow/CpsContext/script.groovy: -------------------------------------------------------------------------------- 1 | pipelineJob('example') { 2 | definition { 3 | cps { 4 | script(readFileFromWorkspace('project-a-workflow.groovy')) 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/hbs/plugins.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/DslFactory/buildMonitorView.groovy: -------------------------------------------------------------------------------- 1 | buildMonitorView('project-A') { 2 | description('All jobs for project A') 3 | jobs { 4 | name('release-projectA') 5 | regex(/project-A-.+/) 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Job/logRotator.groovy: -------------------------------------------------------------------------------- 1 | job('example-1') { 2 | logRotator(30, -1, 1, -1) 3 | } 4 | 5 | job('example-2') { 6 | logRotator { 7 | numToKeep(5) 8 | artifactNumToKeep(1) 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Project/batchTask.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | batchTask('upload', 'curl --upload-file build/dist.zip http://www.example.com/upload') 3 | batchTask('release', readFileFromWorkspace('scripts/release.sh')) 4 | } 5 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/BuildParametersContext/globalVariableParam.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | parameters { 3 | globalVariableParam('myParameterName', '${MY_DEFAULT_GLOBAL_VARIABLE}', 'my description') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/rbenv.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | rbenv('2.1.2') { 4 | ignoreLocalVersion() 5 | gems('bundler', 'rake') 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/publishScp.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | publishScp('docs.acme.org') { 4 | entry('build/docs/**', 'project-a', true) 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/seleniumHtmlReport.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | seleniumHtmlReport('target/test-output') { 4 | failOnExceptions() 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/BuildMonitorView/jobs.groovy: -------------------------------------------------------------------------------- 1 | buildMonitorView('example') { 2 | jobs { 3 | name('build') 4 | name('test') 5 | names('compile', 'deploy') 6 | regex('project-A-.+') 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/DeliveryPipelinesContext/component.groovy: -------------------------------------------------------------------------------- 1 | deliveryPipelineView('example') { 2 | pipelines { 3 | component('Sub System A', 'compile-a') 4 | component('Sub System B', 'compile-b') 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/JobFiltersContext/status.groovy: -------------------------------------------------------------------------------- 1 | listView('example') { 2 | jobFilters { 3 | status { 4 | matchType(MatchType.INCLUDE_MATCHED) 5 | status(Status.FAILED) 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/views/jobfilter/UnclassifiedJobsFilter.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl.views.jobfilter 2 | 3 | /** 4 | * Filter job not classified in others views. 5 | */ 6 | class UnclassifiedJobsFilter extends AbstractJobFilter { 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/resources/javaposse/jobdsl/plugin/ExecuteDslScripts/help-unstableOnDeprecation.html: -------------------------------------------------------------------------------- 1 |
2 | If checked, marks the build as unstable when using deprecated features. If not checked, a warning will be 3 | printed to the build log only. 4 |
5 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/DslFactory/pipelineJob.groovy: -------------------------------------------------------------------------------- 1 | pipelineJob('example') { 2 | definition { 3 | cps { 4 | script(readFileFromWorkspace('project-a-workflow.groovy')) 5 | sandbox() 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/properties/PropertiesContext/customIcon.groovy: -------------------------------------------------------------------------------- 1 | userContent('customIcon/job.png', streamFileFromWorkspace('icons/job.png')) 2 | 3 | job('example') { 4 | properties { 5 | customIcon('job.png') 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/seleniumReport.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | seleniumReport('myproject/target/test-reports/*.html') { 4 | useTestCommands() 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/toplevel/EnvironmentVariableContext/groovy.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | environmentVariables { 3 | groovy(''' 4 | def a = 1 5 | return [TWO: 2 * a] 6 | ''') 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/triggers/ItemTriggerContext/dos.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | triggers { 3 | dos('@daily') { 4 | triggerScript('set CAUSE=Build successfully triggered by dostrigger.') 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/workflow/OrphanedItemStrategyContext/discardOldItems.groovy: -------------------------------------------------------------------------------- 1 | multibranchPipelineJob('example') { 2 | orphanedItemStrategy { 3 | discardOldItems { 4 | numToKeep(20) 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MavenJob/goals.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example-1') { 2 | goals('clean install -DskipTests') 3 | } 4 | 5 | mavenJob('example-2') { 6 | goals('clean') 7 | goals('install') 8 | goals('-DskipTests') 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/CategorizedJobsView/jobs.groovy: -------------------------------------------------------------------------------- 1 | categorizedJobsView('example') { 2 | jobs { 3 | name('build') 4 | name('test') 5 | names('compile', 'deploy') 6 | regex('project-A-.+') 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/ExtensibleContext.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl 2 | 3 | /** 4 | * Marker interface to indicate that this is a {@link Context} which can be extended at runtime. 5 | */ 6 | interface ExtensibleContext extends Context { 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/resources/javaposse/jobdsl/plugin/ExecuteDslScripts/help-ignoreMissingFiles.html: -------------------------------------------------------------------------------- 1 |
2 | Ignore missing DSL scripts. If not checked, the build step will fail if a configured script is missing or if 3 | a wildcard does not match any files. 4 |
5 | -------------------------------------------------------------------------------- /config/codenarc/ignored-field-names.txt: -------------------------------------------------------------------------------- 1 | Custom 2 | MavenSettings 3 | GlobalMavenSettings 4 | ManagedScript 5 | change 6 | json 7 | text 8 | xml 9 | NewWindow 10 | ThisWindow 11 | Lightbox 12 | status 13 | etag 14 | lastModified 15 | DoNothing 16 | MarkUnstable 17 | MarkFailed 18 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/BuildParametersContext/matrixCombinationsParam.groovy: -------------------------------------------------------------------------------- 1 | matrixJob('example') { 2 | parameters { 3 | matrixCombinationsParam('COMBINATIONS', "axis1 != 'value3'", 'choose which combinations to run') 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/debianPackage.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | debianPackage('precise-default') { 4 | commitMessage('automatic commit by Jenkins') 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/railsNotes.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | railsNotes { 4 | rakeVersion('v10.2.2') 5 | rakeWorkingDirectory('src') 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/railsStats.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | railsStats { 4 | rakeVersion('v10.2.2') 5 | rakeWorkingDirectory('src') 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/toplevel/EnvironmentVariableContext/script.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | environmentVariables { 3 | script(''' 4 | mkdir -p tests 5 | rm -rf /tmp/tests.tmp 6 | ''') 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/WorkflowJob/definition.groovy: -------------------------------------------------------------------------------- 1 | pipelineJob('example') { 2 | definition { 3 | cps { 4 | script(readFileFromWorkspace('project-a-workflow.groovy')) 5 | sandbox() 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/portlets/DashboardPortletContext/testStatisticsChart.groovy: -------------------------------------------------------------------------------- 1 | dashboardView('example') { 2 | topPortlets { 3 | testStatisticsChart { 4 | displayName('Project A Test Stats') 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/DslFactory/queue.groovy: -------------------------------------------------------------------------------- 1 | def example1 = job('example-1') { 2 | displayName('first example') 3 | } 4 | 5 | queue(example1) 6 | 7 | job('example-2') { 8 | displayName('second example') 9 | } 10 | 11 | queue('example-2') 12 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/createJiraVersion.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | createJiraVersion { 4 | projectKey('PROJECT') 5 | version('VersionA') 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/releaseJiraVersion.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | releaseJiraVersion { 4 | projectKey('PROJECT') 5 | release('$JiraBuild') 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/systemGroovyScriptFile.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | systemGroovyScriptFile('disconnect-slave.groovy') { 4 | binding('computerName', 'ubuntu-04') 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/virtualenv.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | virtualenv { 4 | name('venv') 5 | command('pip install tox') 6 | clear() 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/toplevel/EnvironmentVariableContributorsContext/populateToolInstallations.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | environmentVariables { 3 | contributors { 4 | populateToolInstallations() 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/NameNotProvidedException.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl 2 | 3 | class NameNotProvidedException extends RuntimeException { 4 | NameNotProvidedException() { 5 | super('No name was provided for the Job or View.') 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/views/jobfilter/RegexMatchValue.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl.views.jobfilter 2 | 3 | enum RegexMatchValue { 4 | NAME, 5 | DESCRIPTION, 6 | SCM, 7 | EMAIL, 8 | MAVEN, 9 | SCHEDULE, 10 | NODE 11 | } 12 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/DslFactory/folder.groovy: -------------------------------------------------------------------------------- 1 | folder('project-a') { 2 | displayName('Project A') 3 | description('Folder for project A') 4 | } 5 | 6 | folder('project-a/testing') { 7 | description('Folder containing all QA jobs for project A') 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/DslFactory/streamFileFromWorkspace.groovy: -------------------------------------------------------------------------------- 1 | // read the file images/logo.png from the seed job's workspace 2 | // and save the as user content 3 | def image = streamFileFromWorkspace('images/logo.png') 4 | userContent('company-logo.png', image) 5 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Job/blockOn.groovy: -------------------------------------------------------------------------------- 1 | job('example-1') { 2 | blockOn('project-a') 3 | } 4 | 5 | job('example-2') { 6 | blockOn(['project-a', 'project-b']) { 7 | blockLevel('GLOBAL') 8 | scanQueueFor('ALL') 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/cucumberTestResults.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | cucumberTestResults { 4 | jsonReportFiles('files.json') 5 | ignoreBadSteps() 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/resources/javaposse/jobdsl/plugin/casc/FromFileScriptSource/schema.jelly: -------------------------------------------------------------------------------- 1 | 2 | 3 | "io.jenkins.plugins.casc.support.jobdsl.FromFileScriptSource": { "type": "string" } 4 | 5 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/resources/javaposse/jobdsl/plugin/casc/FromUrlScriptSource/schema.jelly: -------------------------------------------------------------------------------- 1 | 2 | 3 | "io.jenkins.plugins.casc.support.jobdsl.FromUrlScriptSource": { "type": "string" } 4 | 5 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/test/java/javaposse/jobdsl/plugin/fixtures/BrokenContext.java: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.plugin.fixtures; 2 | 3 | import javaposse.jobdsl.dsl.Context; 4 | import javaposse.jobdsl.dsl.ContextType; 5 | 6 | @ContextType("a.Foo") 7 | public class BrokenContext implements Context {} 8 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/test/resources/extension.xml: -------------------------------------------------------------------------------- 1 | 2 | foo 3 | 42 4 | true 5 | 6 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/buildName.groovy: -------------------------------------------------------------------------------- 1 | // define the build name based on the build number and an environment variable 2 | job('example') { 3 | wrappers { 4 | buildName('#${BUILD_NUMBER} on ${ENV,var="BRANCH"}') 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/keychains.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | keychains { 4 | keychain('test1', 'test2') 5 | delete() 6 | overwrite() 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/textFinder.groovy: -------------------------------------------------------------------------------- 1 | // marks a build as unstable if "[ERROR]" has been in found in any log file 2 | job('example') { 3 | publishers { 4 | textFinder(/[ERROR]/, '**/*.log', false, false, true) 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/systemGroovyCommand.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | systemGroovyCommand(readFileFromWorkspace('disconnect-slave.groovy')) { 4 | binding('computerName', 'ubuntu-04') 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/workflow/WorkflowDefinitionContext/cps.groovy: -------------------------------------------------------------------------------- 1 | pipelineJob('example') { 2 | definition { 3 | cps { 4 | script(readFileFromWorkspace('project-a-workflow.groovy')) 5 | sandbox() 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/DeliveryPipelineView/pipelines.groovy: -------------------------------------------------------------------------------- 1 | deliveryPipelineView('example') { 2 | pipelines { 3 | component('Sub System A', 'compile-a') 4 | component('Sub System B', 'compile-b') 5 | regex(/compile-(.*)/) 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/resources/javaposse/jobdsl/plugin/casc/InlineGroovyScriptSource/schema.jelly: -------------------------------------------------------------------------------- 1 | 2 | 3 | "io.jenkins.plugins.casc.support.jobdsl.InlineGroovyScriptSource": { "type": "string" } 4 | 5 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/test/java/javaposse/jobdsl/plugin/fixtures/NoPublicConstructorContext.java: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.plugin.fixtures; 2 | 3 | import javaposse.jobdsl.dsl.Context; 4 | 5 | public class NoPublicConstructorContext implements Context { 6 | private NoPublicConstructorContext() {} 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/DslFactory/organizationFolder.groovy: -------------------------------------------------------------------------------- 1 | organizationFolder('example') { 2 | description('This contains branch source jobs for Bitbucket and GitHub') 3 | displayName('Organization Folder') 4 | triggers { 5 | cron('@midnight') 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/phabricator.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | phabricator { 4 | createCommit() 5 | applyToMaster() 6 | showBuildStartedMessage() 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/test/java/javaposse/jobdsl/plugin/fixtures/InvalidContext.java: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.plugin.fixtures; 2 | 3 | import javaposse.jobdsl.dsl.Context; 4 | import javaposse.jobdsl.dsl.ContextType; 5 | 6 | @ContextType("java.util.TimeZone") 7 | public class InvalidContext implements Context {} 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/groovyPostBuild.groovy: -------------------------------------------------------------------------------- 1 | // run a groovy script and if that fails will mark the build as failed 2 | job('example') { 3 | publishers { 4 | groovyPostBuild('println "hello, world"', Behavior.MarkFailed) 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/retryBuild.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | retryBuild { 4 | rerunIfUnstable() 5 | retryLimit(3) 6 | progressiveDelay(60, 600) 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/CopyArtifactSelectorContext/multiJobBuild.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | copyArtifacts('upstream') { 4 | buildSelector { 5 | multiJobBuild() 6 | } 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/gradle.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | gradle('check') 4 | gradle { 5 | tasks('clean') 6 | tasks('check') 7 | switches('--info') 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MatrixJob/axes.groovy: -------------------------------------------------------------------------------- 1 | matrixJob('example') { 2 | axes { 3 | label('label', 'linux', 'windows') 4 | jdk('jdk8', 'jdk11') 5 | configure { axes -> 6 | axes << 'org.acme.FooAxis'() 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/test/resources/javaposse/jobdsl/plugin/testjob.groovy: -------------------------------------------------------------------------------- 1 | job('testJob2') { 2 | scm { 3 | git('git://github.com/quidryan/aws-sdk-test.git') 4 | } 5 | triggers { 6 | scm('H/15 * * * *') 7 | } 8 | steps { 9 | maven('-e clean test') 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/rcov.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | rcov { 4 | reportDirectory('folder') 5 | totalCoverage(80, 50, 0) 6 | codeCoverage(80, 50, 0) 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/groovyScriptFile.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | groovyScriptFile('generateReports.groovy') { 4 | groovyInstallation('groovy-2.4.2') 5 | scriptParam('target/reports') 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/ListView/columns.groovy: -------------------------------------------------------------------------------- 1 | listView('project-A') { 2 | columns { 3 | status() 4 | weather() 5 | name() 6 | lastSuccess() 7 | lastFailure() 8 | lastDuration() 9 | buildButton() 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/js/components/Router.js: -------------------------------------------------------------------------------- 1 | import Backbone from 'backbone'; 2 | 3 | export default Backbone.Router.extend({ 4 | routes: { 5 | 'path/:path': 'path', 6 | 'method/:path': 'path', 7 | 'plugin/:name': 'plugin', 8 | '*path': 'home' 9 | } 10 | }); 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/BuildParametersContext/gitParam.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | parameters { 3 | gitParam('sha') { 4 | description('Revision commit SHA') 5 | type('REVISION') 6 | branch('master') 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/properties/PropertiesContext/buildFailureAnalyzer.groovy: -------------------------------------------------------------------------------- 1 | job('example-1') { 2 | properties { 3 | buildFailureAnalyzer() 4 | } 5 | } 6 | 7 | job('example-2') { 8 | properties { 9 | buildFailureAnalyzer(false) 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/criticalBlock.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | exclusionResources('first', 'second') 4 | } 5 | steps { 6 | criticalBlock { 7 | shell('echo Hello World!') 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/credentialsBinding.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | credentialsBinding { 4 | file('KEYSTORE', 'keystore.jks') 5 | usernamePassword('PASSWORD', 'keystore password') 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/preScmSteps.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | preScmSteps { 4 | steps { 5 | shell('echo Hello World') 6 | } 7 | failOnError() 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/ConfigurationMissingException.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl 2 | 3 | class ConfigurationMissingException extends RuntimeException { 4 | ConfigurationMissingException() { 5 | super('The provided job or view configuration was lacking somewhat.') 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/resources/Callee.groovy: -------------------------------------------------------------------------------- 1 | import javaposse.jobdsl.dsl.JobParent 2 | 3 | /** 4 | * External class referenced by a Caller 5 | */ 6 | class Callee { 7 | static def makeJob(JobParent jobParent, String nameOfJob) { 8 | jobParent.freeStyleJob(nameOfJob) { 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/DslFactory/mavenJob.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example') { 2 | logRotator(-1, 10) 3 | jdk('Java 8') 4 | scm { 5 | github('jenkinsci/jenkins', 'master') 6 | } 7 | triggers { 8 | githubPush() 9 | } 10 | goals('clean verify') 11 | } 12 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/test/java/javaposse/jobdsl/plugin/fixtures/UnsupportedConstructorArgContext.java: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.plugin.fixtures; 2 | 3 | import javaposse.jobdsl.dsl.Context; 4 | 5 | public class UnsupportedConstructorArgContext implements Context { 6 | public UnsupportedConstructorArgContext(String arg) {} 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/test/resources/minimal-job.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | false 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Job/deliveryPipelineConfiguration.groovy: -------------------------------------------------------------------------------- 1 | // use job name as task name 2 | job('example-1') { 3 | deliveryPipelineConfiguration('qa') 4 | } 5 | 6 | // use custom task name 7 | job('example-2') { 8 | deliveryPipelineConfiguration('qa', 'integration-tests') 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/groovyCommand.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | groovyCommand(readFileFromWorkspace('generateReports.groovy')) { 4 | groovyInstallation('groovy-2.4.2') 5 | scriptParam('target/reports') 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/workflow/WorkflowDefinitionContext/cpsScm.groovy: -------------------------------------------------------------------------------- 1 | pipelineJob('example') { 2 | definition { 3 | cpsScm { 4 | scm { 5 | git('https://github.com/jenkinsci/job-dsl-plugin.git') 6 | } 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/exclusionResources.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | exclusionResources('FIRST', 'SECOND') 4 | } 5 | steps { 6 | criticalBlock { 7 | shell('echo Hello World!') 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/GeneratedItems.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl 2 | 3 | class GeneratedItems { 4 | final Set jobs = [] 5 | final Set views = [] 6 | final Set configFiles = [] 7 | final Set userContents = [] 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/JobConfigurationNotFoundException.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl 2 | 3 | class JobConfigurationNotFoundException extends RuntimeException { 4 | JobConfigurationNotFoundException(String jobName) { 5 | super("The job with name $jobName could not be found.") 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/JobTemplateMissingException.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl 2 | 3 | class JobTemplateMissingException extends RuntimeException { 4 | JobTemplateMissingException(String templateName) { 5 | super("The template job with name ${templateName} does not exist.") 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/UserContent.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl 2 | 3 | class UserContent { 4 | final String path 5 | final InputStream content 6 | 7 | UserContent(String path, InputStream content) { 8 | this.path = path 9 | this.content = content 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/resources/javaposse/jobdsl/plugin/ExecuteDslScripts/help-failOnMissingPlugin.html: -------------------------------------------------------------------------------- 1 |
2 | If checked, the build will be marked as failed if a plugin must be installed or updated to support all features used 3 | in the DSL scripts. If not checked, the build will be marked as unstable instead. 4 |
5 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/resources/javaposse/jobdsl/plugin/ExecuteDslScripts/help-ignoreExisting.html: -------------------------------------------------------------------------------- 1 |
Ignore previously generated jobs and views. By default, this plugin will always regenerate all jobs and views, thus updating previously generated jobs and views. Check this box if you wish to leave previous jobs and views as is.
-------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/environmentVariables.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | environmentVariables { 4 | env('ONE', '1') 5 | envs(FOO: 'bar', TEST: '123') 6 | propertiesFile('env.properties') 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/triggers/TriggerContext/scm.groovy: -------------------------------------------------------------------------------- 1 | job('example-1') { 2 | triggers { 3 | scm('@daily') 4 | } 5 | } 6 | 7 | job('example-2') { 8 | triggers { 9 | scm('@midnight') { 10 | ignorePostCommitHooks() 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/JobFiltersContext/regex.groovy: -------------------------------------------------------------------------------- 1 | listView('example') { 2 | jobFilters { 3 | regex { 4 | matchType(MatchType.EXCLUDE_MATCHED) 5 | matchValue(RegexMatchValue.DESCRIPTION) 6 | regex('.*project-a.*') 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/views/jobfilter/AmountType.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl.views.jobfilter 2 | 3 | enum AmountType { 4 | HOURS('Hours'), DAYS('Days'), BUILDS('Builds') 5 | 6 | final String value 7 | 8 | AmountType(String value) { 9 | this.value = value 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/groovy/javaposse/jobdsl/dsl/TestJob.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl 2 | 3 | class TestJob extends Job { 4 | TestJob(JobManagement jobManagement) { 5 | super(jobManagement, 'test') 6 | } 7 | 8 | @SuppressWarnings('EmptyMethod') 9 | @Deprecated 10 | void foo() { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/test/resources/organizationfolder.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | false 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /job-dsl-ast/src/main/resources/META-INF/services/org.codehaus.groovy.transform.ASTTransformation: -------------------------------------------------------------------------------- 1 | javaposse.jobdsl.dsl.transform.ContextASTTransformation 2 | javaposse.jobdsl.dsl.transform.PluginASTTransformation 3 | javaposse.jobdsl.dsl.transform.CoreVersionASTTransformation 4 | javaposse.jobdsl.dsl.transform.DeprecationWarningASTTransformation 5 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/crittercismDsymUpload.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | crittercismDsymUpload { 4 | apiKey('secret') 5 | appID('c001abb') 6 | filePath('build/myapp.dSYM.zip') 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/warnings.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | warnings(['Java Compiler (javac)'], ['Java Compiler (javac)': '**/*.log']) { 4 | excludePattern('**/test**') 5 | resolveRelativePaths() 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/CategorizedJobsView/columns.groovy: -------------------------------------------------------------------------------- 1 | categorizedJobsView('project-A') { 2 | columns { 3 | status() 4 | weather() 5 | name() 6 | lastSuccess() 7 | lastFailure() 8 | lastDuration() 9 | buildButton() 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | 3 | # mvn hpi:run 4 | work 5 | 6 | # IntelliJ IDEA project files 7 | *.iml 8 | *.iws 9 | *.ipr 10 | .idea 11 | 12 | # Eclipse project files 13 | .settings 14 | .classpath 15 | .project 16 | 17 | # Web application 18 | job-dsl-plugin/node 19 | job-dsl-plugin/node_modules 20 | job-dsl-plugin/src/main/webapp/api-viewer 21 | -------------------------------------------------------------------------------- /config/codenarc/rules-examples.groovy: -------------------------------------------------------------------------------- 1 | ruleset { 2 | ruleset('file:config/codenarc/rules.groovy') { 3 | // that's OK for examples 4 | exclude 'NoDef' 5 | // causes false positives 6 | exclude 'UnnecessarySetter' 7 | // that's OK for examples 8 | exclude 'VariableTypeRequired' 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/archiveGatling.groovy: -------------------------------------------------------------------------------- 1 | job('example-1') { 2 | publishers { 3 | archiveGatling() 4 | } 5 | } 6 | 7 | job('example-2') { 8 | publishers { 9 | archiveGatling { 10 | enabled(false) 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/environmentVariables.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | environmentVariables { 4 | env('ONE', '1') 5 | envs(FOO: 'bar', TEST: '123') 6 | propertiesFile('env.properties') 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Job/properties.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | properties { 3 | customIcon('job.png') 4 | sidebarLinks { 5 | link('https://jira.acme.org/', 'JIRA', 'notepad.png') 6 | } 7 | rebuild { 8 | autoRebuild() 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/publishRobotFrameworkReports.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | publishRobotFrameworkReports { 4 | passThreshold(80.0) 5 | unstableThreshold(20.0) 6 | onlyCritical() 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/helpers/ConfigFilesContext.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl.helpers 2 | 3 | import javaposse.jobdsl.dsl.ContextType 4 | import javaposse.jobdsl.dsl.ExtensibleContext 5 | 6 | @ContextType('org.jenkinsci.lib.configprovider.model.Config') 7 | class ConfigFilesContext implements ExtensibleContext { 8 | } 9 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/groovy/javaposse/jobdsl/plugin/RemovedViewAction.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.plugin 2 | 3 | enum RemovedViewAction { 4 | IGNORE('Ignore'), 5 | DELETE('Delete') 6 | 7 | final String displayName 8 | 9 | RemovedViewAction(String displayName) { 10 | this.displayName = displayName 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/resources/javaposse/jobdsl/plugin/ExecuteDslScripts/help-additionalClasspath.html: -------------------------------------------------------------------------------- 1 |
2 | Newline separated list of additional classpath entries for the Job DSL scripts. All entries must be relative to the 3 | workspace root, e.g. build/classes/main. Supports Ant-style patterns like lib/*.jar. 4 |
5 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Job/environmentVariables.groovy: -------------------------------------------------------------------------------- 1 | job('example-1') { 2 | environmentVariables(FOO: 'bar', TEST: '123') 3 | } 4 | 5 | job('example-2') { 6 | environmentVariables { 7 | env('ONE', '1') 8 | propertiesFile('env.properties') 9 | keepBuildVariables(true) 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/JobAuthorizationContext/permissionAll.groovy: -------------------------------------------------------------------------------- 1 | // add all permissions 2 | job('example-1') { 3 | authorization { 4 | permissionAll('joe') 5 | // requires matrix-auth > 3.0 6 | userPermissionAll('user1') 7 | groupPermissionAll('group1') 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/SectionsContext/text.groovy: -------------------------------------------------------------------------------- 1 | sectionedView('example') { 2 | sections { 3 | text { 4 | name('project-A') 5 | width('HALF') 6 | alignment('LEFT') 7 | style('TIP') 8 | text('Helpful tip') 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/views/jobfilter/BuildCountType.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl.views.jobfilter 2 | 3 | enum BuildCountType { 4 | LATEST('Latest'), AT_LEAST_ONE('AtLeastOne'), ALL('All') 5 | 6 | final String value 7 | 8 | BuildCountType(String value) { 9 | this.value = value 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Job/notifications.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | notifications { 3 | endpoint('http://example.com:8080/monitor') 4 | endpoint('10.100.2.3:3434', 'TCP', 'XML') { 5 | event('started') 6 | timeout(60000) 7 | logLines(100) 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/publishOverSsh.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | publishOverSsh { 4 | server('server-name') { 5 | transferSet { 6 | sourceFiles('file') 7 | } 8 | } 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/helpers/wrapper/ExclusionContext.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl.helpers.wrapper 2 | 3 | import javaposse.jobdsl.dsl.Context 4 | 5 | class ExclusionContext implements Context { 6 | List names = [] 7 | 8 | void resource(String name) { 9 | this.names << name 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/properties/PropertiesContext/ownership.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | properties { 3 | ownership { 4 | primaryOwnerId('User_ID') 5 | coOwnerIds('User1', 'User2') 6 | coOwnerIds('User3') 7 | coOwnerIds('User4') 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/MavenPublisherContext/deployArtifacts.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example-1') { 2 | publishers { 3 | deployArtifacts() 4 | } 5 | } 6 | 7 | mavenJob('example-2') { 8 | publishers { 9 | deployArtifacts { 10 | evenIfUnstable() 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/createJiraIssue.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | createJiraIssue { 4 | projectKey('PROJECT') 5 | testDescription('bla') 6 | assignee('Bob') 7 | component('ComponentA') 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/progressJiraIssues.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | progressJiraIssues { 4 | jqlSearch('project = PROJECT and fixVersion = "$JiraBuild"') 5 | workflowActionName('Closed') 6 | comment('Comment') 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/shell.groovy: -------------------------------------------------------------------------------- 1 | // execute echo command 2 | job('example-1') { 3 | steps { 4 | shell('echo Hello World!') 5 | } 6 | } 7 | 8 | // read file from workspace 9 | job('example-2') { 10 | steps { 11 | shell(readFileFromWorkspace('build.sh')) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/vSphereDeployFromTemplate.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | vSphereDeployFromTemplate { 4 | server('vsphere.acme.org') 5 | template('template') 6 | clone('clone') 7 | cluster('cluster') 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MavenJob/mavenOpts.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example-1') { 2 | mavenOpts('-Xmx1536m -XX:MaxPermSize=384m -XX:ReservedCodeCacheSize=64m') 3 | } 4 | 5 | mavenJob('example-2') { 6 | mavenOpts('-Xmx1536m') 7 | mavenOpts('-XX:MaxPermSize=384m') 8 | mavenOpts('-XX:ReservedCodeCacheSize=64m') 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/JobTypeMismatchException.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl 2 | 3 | class JobTypeMismatchException extends RuntimeException { 4 | JobTypeMismatchException(String jobName, String templateName) { 5 | super("The type of job '${jobName}' does not match the type of its template '${templateName}'.") 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/jobs/FreeStyleJob.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl.jobs 2 | 3 | import javaposse.jobdsl.dsl.JobManagement 4 | import javaposse.jobdsl.dsl.Project 5 | 6 | class FreeStyleJob extends Project { 7 | FreeStyleJob(JobManagement jobManagement, String name) { 8 | super(jobManagement, name) 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/publishJabber.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | publishJabber('*room@example.org') { 4 | strategyName('STATECHANGE_ONLY') 5 | notifySuspects() 6 | channelNotificationName('BuildParameters') 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/httpRequest.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | httpRequest('http://www.example.com') { 4 | httpMode('POST') 5 | authentication('Credentials') 6 | returnCodeBuildRelevant() 7 | logResponseBody() 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/jsLint.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | jsLint { 4 | includePattern('**/*.js') 5 | excludePattern('**/*Tests.js') 6 | logFile('target/jslint.xml') 7 | arguments('-Dadsafe=true, -Dcontinue=true') 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/resources/javaposse/jobdsl/dsl/views/NestedView-template.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | false 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/SectionsContext/jobGraphs.groovy: -------------------------------------------------------------------------------- 1 | sectionedView('example') { 2 | sections { 3 | jobGraphs { 4 | name('project-A') 5 | width('HALF') 6 | alignment('LEFT') 7 | jobs { 8 | regex('project-A-.*') 9 | } 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/groovy/javaposse/jobdsl/plugin/RemovedJobAction.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.plugin 2 | 3 | enum RemovedJobAction { 4 | IGNORE('Ignore'), 5 | DISABLE('Disable'), 6 | DELETE('Delete') 7 | 8 | final String displayName 9 | 10 | RemovedJobAction(String displayName) { 11 | this.displayName = displayName 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/test/java/javaposse/jobdsl/plugin/fixtures/InvalidTrigger.java: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.plugin.fixtures; 2 | 3 | import hudson.model.Job; 4 | import hudson.triggers.Trigger; 5 | import org.kohsuke.stapler.DataBoundConstructor; 6 | 7 | public class InvalidTrigger extends Trigger { 8 | @DataBoundConstructor 9 | public InvalidTrigger() {} 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/slocCount.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | slocCount { 4 | pattern('build/result.xml') 5 | encoding('UTF-8') 6 | commentIsCode() 7 | buildsInGraph(2) 8 | ignoreBuildFailure() 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/SectionsContext/testResult.groovy: -------------------------------------------------------------------------------- 1 | sectionedView('example') { 2 | sections { 3 | testResult { 4 | name('project-A') 5 | width('HALF') 6 | alignment('LEFT') 7 | jobs { 8 | regex('project-A-.*') 9 | } 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/hbs/searchResults.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/DslFactory/buildPipelineView.groovy: -------------------------------------------------------------------------------- 1 | buildPipelineView('project-A') { 2 | filterBuildQueue() 3 | filterExecutors() 4 | title('Project A CI Pipeline') 5 | displayedBuilds(5) 6 | selectedJob('project-A-compile') 7 | alwaysAllowManualTrigger() 8 | showPipelineParameters() 9 | refreshFrequency(60) 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/moveJiraIssues.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | moveJiraIssues { 4 | projectKey('PROJECT') 5 | release('$JiraBuild') 6 | replaceVersion('PROJECT-01') 7 | query('status in (Resolved, Closed)') 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/SectionsContext/viewListing.groovy: -------------------------------------------------------------------------------- 1 | sectionedView('example') { 2 | sections { 3 | viewListing { 4 | name('project-A') 5 | width('HALF') 6 | alignment('LEFT') 7 | columns(2) 8 | view('view-a') 9 | view('view-b') 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/Context.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl 2 | 3 | /** 4 | * Marker interface to indicate that implementations are used as DSL contexts. 5 | * 6 | * Use {@link ContextHelper#executeInContext(groovy.lang.Closure, javaposse.jobdsl.dsl.Context)} to call a 7 | * {@link Closure} in a DSL context. 8 | */ 9 | interface Context { 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/resources/javaposse/jobdsl/dsl/views/SectionedView-template.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | false 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/MavenJob/postBuildSteps.groovy: -------------------------------------------------------------------------------- 1 | mavenJob('example-1') { 2 | postBuildSteps { 3 | shell("echo 'run after Maven'") 4 | } 5 | } 6 | 7 | // run post build steps only when the build succeeds 8 | mavenJob('example-2') { 9 | postBuildSteps('SUCCESS') { 10 | shell("echo 'run after Maven'") 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /job-dsl-core/src/test/resources/javaposse/jobdsl/dsl/views/SectionedViewSpec-defaults.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | false 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/DslFactory/ivyJob.groovy: -------------------------------------------------------------------------------- 1 | ivyJob('example') { 2 | ivyBuilder { 3 | ant { 4 | target('clean') 5 | targets(['test', 'publish']) 6 | buildFile('build.xml') 7 | antInstallation('Ant 1.9') 8 | prop('key', 'value') 9 | javaOpt('-Xmx=1G') 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/Job/throttleConcurrentBuilds.groovy: -------------------------------------------------------------------------------- 1 | // throttle one job on its own 2 | job('example-1') { 3 | throttleConcurrentBuilds { 4 | maxPerNode(1) 5 | maxTotal(2) 6 | } 7 | } 8 | 9 | // throttle as part of a category 10 | job('example-2') { 11 | throttleConcurrentBuilds { 12 | categories(['cat-1']) 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/js/views/ContextView.js: -------------------------------------------------------------------------------- 1 | import { View } from 'backbone.marionette'; 2 | 3 | import Context from '../../hbs/context.hbs'; 4 | 5 | export default View.extend({ 6 | className: 'context-view', 7 | 8 | template: Context, 9 | 10 | serializeData: function() { 11 | return { 12 | signatures: this.options.signatures 13 | }; 14 | } 15 | }); 16 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/DslFactory/categorizedJobsView.groovy: -------------------------------------------------------------------------------- 1 | categorizedJobsView('example') { 2 | jobs { 3 | regex(/configuration_.*/) 4 | } 5 | categorizationCriteria { 6 | regexGroupingRule(/^configuration_([^_]+).*$/) 7 | } 8 | columns { 9 | status() 10 | categorizedJob() 11 | buildButton() 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/jobs/IvyJob/ivyBuilder.groovy: -------------------------------------------------------------------------------- 1 | ivyJob('example') { 2 | ivyBuilder { 3 | ant { 4 | target('clean') 5 | targets(['test', 'publish']) 6 | buildFile('build.xml') 7 | antInstallation('Ant 1.9') 8 | prop('key', 'value') 9 | javaOpt('-Xmx=1G') 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/portlets/DashboardPortletContext/testStatisticsGrid.groovy: -------------------------------------------------------------------------------- 1 | dashboardView('example') { 2 | rightPortlets { 3 | testStatisticsGrid { 4 | displayName('Project A Test Stats') 5 | skippedColor('7F7F7F') 6 | failureColor('FF0000') 7 | successColor('00FF00') 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/groovy/javaposse/jobdsl/plugin/RemovedConfigFilesAction.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.plugin 2 | 3 | /** 4 | * @since 1.62 5 | */ 6 | enum RemovedConfigFilesAction { 7 | IGNORE('Ignore'), 8 | DELETE('Delete') 9 | 10 | final String displayName 11 | 12 | RemovedConfigFilesAction(String displayName) { 13 | this.displayName = displayName 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/test/resources/javaposse/jobdsl/plugin/security1342.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.plugin 2 | 3 | import hudson.model.FreeStyleProject 4 | import jenkins.model.Jenkins 5 | 6 | class Foo extends JenkinsJobParent { 7 | Foo() { Jenkins.get().createProject(FreeStyleProject, 'should-not-exist') } 8 | 9 | @Override 10 | Object run() { 11 | return null 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/generateJiraReleaseNotes.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | generateJiraReleaseNotes { 4 | environmentVariable('JiraReleaseNotes') 5 | projectKey('PROJECT') 6 | release('$JiraBuild') 7 | filter('status in (Resolved, Closed)') 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/DslScriptLoader.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl 2 | 3 | /** 4 | * Runs provided DSL scripts via an external {@link JobManagement}. 5 | */ 6 | class DslScriptLoader extends AbstractDslScriptLoader { 7 | DslScriptLoader(JobManagement jobManagement) { 8 | super(jobManagement, JobParent, GeneratedItems) 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/resources/javaposse/jobdsl/plugin/ExecuteDslScripts/help-sandbox.html: -------------------------------------------------------------------------------- 1 |
2 | If checked, runs the DSL scripts in a sandbox with limited abilities. 3 | You will also need to configure this job to run with the identity of a particular user. 4 | If unchecked, and you are not a Jenkins administrator, 5 | you will need to wait for an administrator to approve the scripts. 6 |
7 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/resources/javaposse/jobdsl/plugin/casc/SeedJobConfigurator/schema.jelly: -------------------------------------------------------------------------------- 1 | 2 | 3 | "[javaposse.jobdsl.dsl.GeneratedItems;": { 4 | "type": "array", 5 | "items": { 6 | "type": "#/definitions/io.jenkins.plugins.casc.support.jobdsl.ScriptSource" 7 | } 8 | } 9 | 10 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/IvyBuilderContext/ant.groovy: -------------------------------------------------------------------------------- 1 | ivyJob('example') { 2 | ivyBuilder { 3 | ant { 4 | target('clean') 5 | targets(['test', 'publish']) 6 | buildFile('build.xml') 7 | antInstallation('Ant 1.9') 8 | prop('key', 'value') 9 | javaOpt('-Xmx=1G') 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/phing.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | phing { 4 | properties('KEY', 'VALUE') 5 | targets('test') 6 | options('--debug') 7 | buildFile('dir1/build.xml') 8 | phingInstallation('Phing 1.8') 9 | useModuleRoot(false) 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/helpers/scm/SvnDepth.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl.helpers.scm 2 | 3 | enum SvnDepth { 4 | INFINITY('infinity'), 5 | IMMEDIATES('immediates'), 6 | EMPTY('empty'), 7 | FILES('files'), 8 | AS_IT_IS('unknown') 9 | 10 | final String xmlValue 11 | 12 | SvnDepth(String xmlValue) { 13 | this.xmlValue = xmlValue 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/groovy/javaposse/jobdsl/plugin/actions/ApiViewerAction.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.plugin.actions 2 | 3 | import hudson.model.Action 4 | 5 | class ApiViewerAction implements Action { 6 | final String iconFileName = 'symbol-directory plugin-job-dsl' 7 | final String displayName = 'Job DSL API Reference' 8 | final String urlName = '/plugin/job-dsl/api-viewer/index.html' 9 | } 10 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/js/views/PluginDetailView.js: -------------------------------------------------------------------------------- 1 | import { View } from 'backbone.marionette'; 2 | 3 | import PluginDetail from '../../hbs/pluginDetail.hbs'; 4 | 5 | export default View.extend({ 6 | template: PluginDetail, 7 | 8 | serializeData: function() { 9 | return { 10 | plugin: this.options.plugin, 11 | usages: this.options.usages 12 | }; 13 | } 14 | }); 15 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/java/javaposse/jobdsl/plugin/casc/ScriptSource.java: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.plugin.casc; 2 | 3 | import hudson.ExtensionPoint; 4 | import hudson.model.AbstractDescribableImpl; 5 | import java.io.IOException; 6 | 7 | public abstract class ScriptSource extends AbstractDescribableImpl implements ExtensionPoint { 8 | 9 | public abstract String getScript() throws IOException; 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/remoteShell.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | remoteShell('root@example.com:22') { 4 | command('echo Hello', 'echo World!') 5 | command('echo How are you?') 6 | command(["echo I'm fine!", 'echo And you?']) 7 | command(readFileFromWorkspace('script.sh')) 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/workflow/BranchSourcesContext/github.groovy: -------------------------------------------------------------------------------- 1 | multibranchPipelineJob('example') { 2 | branchSources { 3 | github { 4 | id('23232323') // IMPORTANT: use a constant and unique identifier 5 | scanCredentialsId('github-ci') 6 | repoOwner('OwnerName') 7 | repository('job-dsl-plugin') 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/configFiles.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | configFiles { 4 | file('myCustomConfigFile') { 5 | variable('CONFIG_FILE') 6 | } 7 | mavenSettings('myJenkinsSettingsFile') { 8 | targetLocation('settings.xml') 9 | } 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/wrapper/WrapperContext/sauceOnDemand.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | wrappers { 3 | sauceOnDemand { 4 | webDriverBrowsers('Linuxchrome43', 'Linuxchrome44') 5 | appiumBrowsers('Amazon_Kindle_Fire_Emulatorlandscapeandroid2_3_7_') 6 | useLatestVersion() 7 | launchSauceConnectOnSlave() 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/js/views/RootView.js: -------------------------------------------------------------------------------- 1 | import { View } from 'backbone.marionette'; 2 | 3 | import Root from '../../hbs/root.hbs'; 4 | 5 | export default View.extend({ 6 | template: Root, 7 | 8 | regions: { 9 | contextRegion: ".context-methods-section", 10 | detailRegion: ".detail-wrapper", 11 | pluginRegion: ".plugins-body", 12 | treeRegion: ".tree-wrapper", 13 | }, 14 | }); 15 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/views/jobfilter/JobStatusesFilter.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl.views.jobfilter 2 | 3 | class JobStatusesFilter extends AbstractJobFilter { 4 | Set status = [] 5 | 6 | /** 7 | * Selects the status of the jobs to be included or excluded. 8 | */ 9 | void status(Status... status) { 10 | this.status.addAll(status as Collection) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/downstreamParameterized.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | downstreamParameterized { 4 | trigger('Project1, Project2') { 5 | condition('UNSTABLE_OR_BETTER') 6 | parameters { 7 | currentBuild() 8 | } 9 | } 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /.mvn/extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | io.jenkins.tools.incrementals 4 | git-changelist-maven-extension 5 | 1.13 6 | 7 | 8 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/ScmContext/perforceP4.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | scm { 3 | perforceP4('p4_credentials') { 4 | workspace { 5 | manual('ws_name', '//depot/Tools/build/... //ws_name/build/...') 6 | } 7 | configure { node -> 8 | node / workspace / spec / clobber('true') 9 | } 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/JobFiltersContext/buildTrend.groovy: -------------------------------------------------------------------------------- 1 | listView('example') { 2 | jobFilters { 3 | buildTrend { 4 | matchType(MatchType.INCLUDE_UNMATCHED) 5 | buildCountType(BuildCountType.AT_LEAST_ONE) 6 | amountType(AmountType.DAYS) 7 | amount(2.5) 8 | status(BuildStatusType.TRIGGERED_BY_REMOTE) 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/test/java/javaposse/jobdsl/plugin/fixtures/InvalidConstructorCountContext.java: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.plugin.fixtures; 2 | 3 | import javaposse.jobdsl.dsl.Context; 4 | import javaposse.jobdsl.dsl.JobManagement; 5 | 6 | public class InvalidConstructorCountContext implements Context { 7 | public InvalidConstructorCountContext() {} 8 | 9 | public InvalidConstructorCountContext(JobManagement jobManagement) {} 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/DslFactory/job.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | logRotator(-1, 10) 3 | jdk('Java 8') 4 | scm { 5 | github('jenkinsci/job-dsl-plugin', 'master') 6 | } 7 | triggers { 8 | githubPush() 9 | } 10 | steps { 11 | gradle('clean build') 12 | } 13 | publishers { 14 | archiveArtifacts('job-dsl-plugin/build/libs/job-dsl.hpi') 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/nant.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | nant { 4 | target('test') 5 | targets(['publish', 'deploy']) 6 | prop('logging', 'info') 7 | props('test.threads': 10, 'input.status': 'release') 8 | buildFile('dir1/build.xml') 9 | nantInstallation('NAnt 1.8') 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/workflow/BranchSourcesContext/git.groovy: -------------------------------------------------------------------------------- 1 | multibranchPipelineJob('example') { 2 | branchSources { 3 | git { 4 | id('12121212') // IMPORTANT: use a constant and unique identifier 5 | remote('https://github.com/jenkinsci/job-dsl-plugin.git') 6 | credentialsId('github-ci') 7 | includes('JENKINS-*') 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/step/StepContext/msBuild.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | steps { 3 | msBuild { 4 | msBuildInstallation('MSBuild 1.8') 5 | buildFile('dir1/build.proj') 6 | args('check') 7 | args('another') 8 | passBuildVariables() 9 | continueOnBuildFailure() 10 | unstableIfWarnings() 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/helpers/triggers/MultibranchWorkflowTriggerContext.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl.helpers.triggers 2 | 3 | import javaposse.jobdsl.dsl.Item 4 | import javaposse.jobdsl.dsl.JobManagement 5 | 6 | class MultibranchWorkflowTriggerContext extends ItemTriggerContext { 7 | MultibranchWorkflowTriggerContext(JobManagement jobManagement, Item item) { 8 | super(jobManagement, item) 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/views/jobfilter/MatchType.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl.views.jobfilter 2 | 3 | enum MatchType { 4 | INCLUDE_MATCHED('includeMatched'), 5 | INCLUDE_UNMATCHED('includeUnmatched'), 6 | EXCLUDE_MATCHED('excludeMatched'), 7 | EXCLUDE_UNMATCHED('excludeUnmatched') 8 | 9 | final String value 10 | 11 | MatchType(String value) { 12 | this.value = value 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /job-dsl-plugin/src/main/resources/javaposse/jobdsl/plugin/ExecuteDslScripts/help-failOnSeedCollision.html: -------------------------------------------------------------------------------- 1 |
Fail build if generated item(s) have the same name as existing items already managed by another seed job. By default, this plugin will always regenerate all jobs and views, thus updating previously generated jobs and views even if managed by another seed job. Check this box if you wish to fail the job if a generated item name collision is detected.
2 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/ScmContext/rtc.groovy: -------------------------------------------------------------------------------- 1 | job('example-1') { 2 | scm { 3 | rtc { 4 | buildDefinition('buildDefinitionInRTC') 5 | } 6 | } 7 | } 8 | 9 | job('example-2') { 10 | scm { 11 | rtc { 12 | buildWorkspace('some-workspace') 13 | connection('my-build-tool', 'build-user', 'https://localhost:9444/ccm', 60) 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/phabricatorNotifier.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | publishers { 3 | phabricatorNotifier { 4 | commentOnSuccess() 5 | enableUberalls() 6 | commentFile('.contributor-guide') 7 | preserveFormatting() 8 | commentSize(2000) 9 | commentWithConsoleLinkOnFailure() 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/publisher/PublisherContext/sonar.groovy: -------------------------------------------------------------------------------- 1 | // run Sonar analysis for feature-xy branch, 2 | // but skip if SKIP_SONAR environment variable is set to true 3 | job('example') { 4 | publishers { 5 | sonar { 6 | branch('feature-xy') 7 | overrideTriggers { 8 | skipIfEnvironmentVariable('SKIP_SONAR') 9 | } 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/views/ListView/jobFilters.groovy: -------------------------------------------------------------------------------- 1 | listView('example') { 2 | jobFilters { 3 | regex { 4 | matchType(MatchType.EXCLUDE_MATCHED) 5 | matchValue(RegexMatchValue.DESCRIPTION) 6 | regex('.*project-a.*') 7 | } 8 | status { 9 | matchType(MatchType.INCLUDE_MATCHED) 10 | status(Status.FAILED) 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/helpers/publisher/FailureCountExtendedEmailTriggerContext.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl.helpers.publisher 2 | 3 | class FailureCountExtendedEmailTriggerContext extends ExtendedEmailTriggerContext { 4 | int failureCount = 3 5 | 6 | /** 7 | * Specifies the failure count. 8 | */ 9 | void failureCount(int failureCount) { 10 | this.failureCount = failureCount 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/helpers/BuildParametersContext/credentialsParam.groovy: -------------------------------------------------------------------------------- 1 | job('example') { 2 | parameters { 3 | credentialsParam('DEPLOY_KEY') { 4 | type('com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey') 5 | required() 6 | defaultValue('ssh-key-staging') 7 | description('SSH Key for deploying build artifacts') 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/AbstractContext.groovy: -------------------------------------------------------------------------------- 1 | package javaposse.jobdsl.dsl 2 | 3 | /** 4 | * Abstract base class for {@link Context} implementations which provides access to {@link JobManagement}. 5 | */ 6 | class AbstractContext implements Context { 7 | protected final JobManagement jobManagement 8 | 9 | protected AbstractContext(JobManagement jobManagement) { 10 | this.jobManagement = jobManagement 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /job-dsl-core/src/main/resources/javaposse/jobdsl/dsl/jobs/WorkflowJob-template.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | false 6 | 7 | 8 |