├── .dockerignore
├── .gitattributes
├── .github
└── release-drafter.yml
├── .gitignore
├── CONTRIBUTING.md
├── Dockerfile
├── LICENSE.md
├── Makefile
├── README.md
├── jenkins.yaml
└── plugins.txt
/.dockerignore:
--------------------------------------------------------------------------------
1 | work
2 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Treat all text files without a CR (as we have Docker)
2 | * text eol=lf
3 |
--------------------------------------------------------------------------------
/.github/release-drafter.yml:
--------------------------------------------------------------------------------
1 | ####
2 | # MIT License
3 | #
4 | # Copyright (c) 2019 Jenkins contributors and CloudBees, Inc.
5 | #
6 | # Permission is hereby granted, free of charge, to any person obtaining a copy
7 | # of this software and associated documentation files (the "Software"), to deal
8 | # in the Software without restriction, including without limitation the rights
9 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | # copies of the Software, and to permit persons to whom the Software is
11 | # furnished to do so, subject to the following conditions:
12 | #
13 | # The above copyright notice and this permission notice shall be included in all
14 | # copies or substantial portions of the Software.
15 | #
16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | # SOFTWARE.
23 | ####
24 |
25 | # This file is based on https://github.com/jenkinsci/.github/blob/master/.github/release-drafter.yml used in the Jenkins project
26 |
27 | name-template: $NEXT_MINOR_VERSION
28 | tag-template: $NEXT_MINOR_VERSION
29 | version-template: $MAJOR.$MINOR
30 |
31 | # Emoji reference: https://gitmoji.carloscuesta.me/
32 | categories:
33 | - title: 🚨 Removed
34 | label: removed
35 | - title: ⚠️ Deprecated
36 | label: deprecated
37 | - title: 🚀 New features and improvements
38 | labels:
39 | - enhancement
40 | - feature
41 | - title: 🐛 Bug Fixes
42 | labels:
43 | - bug
44 | - fix
45 | - bugfix
46 | - regression
47 | - title: 📝 Documentation updates
48 | label: documentation
49 | # Default label used by Dependabot
50 | - title: 📦 Dependency updates
51 | label: dependencies
52 | - title: 👻 Maintenance
53 | label: chore
54 | # TODO: consider merging category or changing emojis
55 | - title: 🚦 Internal changes
56 | label: internal
57 | - title: 🚦 Tests
58 | labels:
59 | - test
60 | - tests
61 | exclude-labels:
62 | - reverted
63 | - no-changelog
64 | - skip-changelog
65 | - invalid
66 |
67 | template: |
68 |
69 | $CHANGES
70 | replacers:
71 | - search: 'CJD'
72 | replace: 'CloudBees Jenkins Distribution'
73 | - search: 'JCasC'
74 | replace: 'Jenkins Configuration-as-Code'
75 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | work
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | ## Proposing changes
4 |
5 | If you want to improve the image, please submit a pull request to the repository.
6 |
7 | ## Building the image
8 |
9 | * Ensure that Docker and Make are installed on your machine
10 | * Checkout the repository
11 | * Run `make build`
12 |
13 | It will produce a local `cloudbees/cjd-jcasc-demo:rolling` image.
14 |
15 | ## Testing the local image
16 |
17 | Use the `make run-devel` command.
18 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM jenkins/jenkins:2.190 as install_scripts_source
2 | FROM cloudbees/cloudbees-jenkins-distribution:2.176.2.3
3 | COPY --from=install_scripts_source /usr/local/bin/jenkins-support /usr/local/bin/jenkins-support
4 | COPY --from=install_scripts_source /usr/local/bin/install-plugins.sh /usr/local/bin/install-plugins.sh
5 |
6 | ENV JENKINS_UC http://jenkins-updates.cloudbees.com
7 | ENV JENKINS_INCREMENTALS_REPO_MIRROR https://repo.jenkins-ci.org/incrementals
8 |
9 | # Set the war
10 | ENV JENKINS_WAR /usr/share/cloudbees-jenkins-distribution/cloudbees-jenkins-distribution.war
11 |
12 | # Startup all plugins included into the CloudBees Jenkins Distribution bundle
13 | ENV JAVA_OPTS "-Dcom.cloudbees.jenkins.cjp.installmanager.CJPPluginManager.allRequired=true"
14 |
15 | # Install extra plugins
16 | ENV REF=/usr/share/cloudbees-jenkins-distribution/ref
17 | COPY plugins.txt $REF/plugins.txt
18 | RUN bash /usr/local/bin/install-plugins.sh < $REF/plugins.txt
19 |
20 | # Apply JCasC
21 | COPY jenkins.yaml /cfg/jenkins.yaml
22 | ENV CASC_JENKINS_CONFIG /cfg/jenkins.yaml
23 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | ## The MIT License
2 |
3 | Copyright (c) 2019 CloudBees, Inc. and other contributors
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | IMAGE_TAG=cloudbees/cjd-jcasc-demo
2 | DEVEL_SUFFIX=devel
3 | IMAGE_DEVEL_TAG=${IMAGE_TAG}:${DEVEL_SUFFIX}
4 | DOCKER_BUILD_FLAGS?=
5 |
6 | clean:
7 | @if docker images ${IMAGE_TAG} | awk '{ print $$2 }' | grep -q -F ${IMAGE_DEVEL_TAG}; then docker image rm --force ${IMAGE_DEVEL_TAG} ; false; fi
8 |
9 | build:
10 | docker build -t ${IMAGE_DEVEL_TAG} ${DOCKER_BUILD_FLAGS} .
11 |
12 | run:
13 | docker run --rm -p 8080:8080 ${IMAGE_TAG}
14 |
15 | run-devel:
16 | rm -rf work
17 | mkdir work
18 | docker run --rm -p 8080:8080 \
19 | -e VERBOSE=true \
20 | -v $(CURDIR)/work:/var/cloudbees-jenkins-distribution/ \
21 | ${IMAGE_DEVEL_TAG}
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # JCasC Demo on CloudBees Jenkins Distribution
2 |
3 | [](https://github.com/cloudbees-oss/cjd-jcasc-demo/releases/latest)
4 | [](https://hub.docker.com/r/cloudbees/cjd-jcasc-demo)
5 |
6 | | WARNING: This is a demo repository and image, it is not supported by CloudBees for production use |
7 | | --- |
8 |
9 | This demo demonstrates usage of the [Jenkins Configuration-as-Code Plugin](https://github.com/jenkinsci/configuration-as-code-plugin) plugin with
10 | [CloudBees Jenkins Distribution (CJD)](https://www.cloudbees.com/products/cloudbees-jenkins-distribution).
11 | The demo is based on the official Cloudbees Jenkins Distribution image available on Docker Hub
12 | ([here](https://hub.docker.com/r/cloudbees/cloudbees-jenkins-distribution)).
13 |
14 | By default, all bundled plugins from CJD are loaded.
15 | The configuration YAML file presets all of the configuration fields which are currently supported.
16 | Note, this is a demo only and it doesn't configure a full production instance of CJD which is able to run production CI/CD pipelines.
17 |
18 | ## Usage
19 |
20 | ### Running
21 |
22 | * Run the image using the `docker run --rm -p 8080:8080 cloudbees/cjd-jcasc-demo` command
23 | * You can also run a specific version using a release tag from [Docker Hub](https://hub.docker.com/r/cloudbees/cloudbees-jenkins-distribution)
24 | * Navigate to `http://localhost:8080`
25 | * Login with the _admin/admin_ username/password pair
26 | * **Register CloudBees Jenkins Distribution** screen.
27 | Select the _Activate online_ option and register your CJD instance.
28 | It is free, but you need to accept the license agreement
29 | * **Customize CloudBees Jenkins Distribution** screen.
30 | Use the the _Select plugins to install_ option,
31 | * Select _None_ in the top panel of the window to unselect all plugins. Then click _Install_
32 | * Plugins are already installed by CloudBees Assurance Program and Docker packaging,
33 | so selection of additional plugins is not needed here
34 | * This manual UI action is temporary step
35 | * Your CloudBees Jenkins Distribution is ready and configured via Jenkins Configuration as Code plugin!
36 | Just start using it
37 |
38 | ### Advanced run options
39 |
40 | * To disable booting of `fat` plugins, `-e INCLUDE_FAT_PLUGINS=false` can be passed to the Makefile
41 | * Use `-e VERBOSE=true` to enable verbose mode with more debug information
42 | * It is possible to munt a local workspace as a volume by `-v ${WORKSPACE_ABOLUTE_PATH}:/var/jenkins_home/`
43 | for troubleshooting purposes. Note that the workspace should be empty on startup.
44 |
45 | ## Changelog
46 |
47 | See [GitHub Releases](https://github.com/cloudbees-oss/cjd-jcasc-demo/releases/latest).
48 |
49 |
--------------------------------------------------------------------------------
/jenkins.yaml:
--------------------------------------------------------------------------------
1 | jenkins:
2 | agentProtocols:
3 | - "JNLP2-connect"
4 | - "JNLP4-connect"
5 | - "Ping"
6 | #TODO: Switch to Matrix Auth once 2.4 is in the envelope
7 | authorizationStrategy:
8 | loggedInUsersCanDoAnything:
9 | allowAnonymousRead: false
10 | crumbIssuer:
11 | standard:
12 | excludeClientIPFromCrumb: false
13 | disableRememberMe: false
14 | globalNodeProperties:
15 | - envVars:
16 | env:
17 | - key: "COMPANY_NAME"
18 | value: "CloudBeers"
19 | markupFormatter:
20 | rawHtml:
21 | disableSyntaxHighlighting: true
22 | mode: NORMAL
23 | myViewsTabBar: "standard"
24 | numExecutors: 2
25 | primaryView:
26 | all:
27 | name: "all"
28 | projectNamingStrategy:
29 | pattern:
30 | description: "My naming strategy"
31 | forceExistingJobs: false
32 | namePattern: ".*"
33 | quietPeriod: 5
34 | remotingSecurity:
35 | enabled: true
36 | scmCheckoutRetryCount: 5
37 | securityRealm:
38 | local:
39 | allowsSignup: false
40 | enableCaptcha: false
41 | users:
42 | - id: "admin"
43 | password: "admin"
44 | slaveAgentPort: 50000
45 | systemMessage: "
Technical preview"
46 | updateCenter:
47 | sites:
48 | - id: "cap-cloudbees-jenkins-distribution"
49 | url: "https://jenkins-updates.cloudbees.com/update-center/envelope-cloudbees-jenkins-distribution/update-center.json"
50 | - id: "cloudbees-jenkins-distribution-offline"
51 | url: "file:/var/jenkins_home/war/WEB-INF/plugins/update-center.json"
52 | views:
53 | - list:
54 | columns:
55 | - "status"
56 | - "weather"
57 | - "jobName"
58 | - "lastSuccess"
59 | - "deployNowColumn"
60 | - "favoriteColumn"
61 | - "lastBuildPromotionStatusColumn"
62 | includeRegex: ".*"
63 | name: "My View 2"
64 | - all:
65 | name: "all"
66 | viewsTabBar: "standard"
67 | nodes:
68 | - permanent:
69 | labelString: "jnlp"
70 | launcher:
71 | jnlp:
72 | workDirSettings:
73 | disabled: false
74 | failIfWorkDirIsMissing: false
75 | internalDir: "remoting"
76 | workDirPath: "C:\\J\\AW"
77 | name: "Inbound Agent (JNLP)"
78 | nodeDescription: "Agent that initiates its own connection to Jenkins"
79 | numExecutors: 3
80 | remoteFS: "C:\\J\\AA"
81 | retentionStrategy: "always"
82 | - permanent:
83 | launcher:
84 | sSHLauncher:
85 | credentialsId: "exampleuser-creds-id"
86 | host: "myunixagents.example.com"
87 | maxNumRetries: 5
88 | port: 22
89 | retryWaitTime: 30
90 | sshHostKeyVerificationStrategy: "knownHostsFileKeyVerificationStrategy"
91 | name: "SSH Build Agent - by SSH Slaves Plugin"
92 | numExecutors: 2
93 | retentionStrategy: "always"
94 | - permanent:
95 | labelString: "wmi"
96 | launcher:
97 | managedWindowsServiceLauncher:
98 | account:
99 | anotherUser:
100 | password: "{AQAAABAAAAAQrFzG4eivzoRgjLSQ4b2EO+B/N4fMTAPWba9WXwrvVIM=}"
101 | userName: "admin"
102 | host: "mywindowshost.example.com"
103 | password: "{AQAAABAAAAAQd9xCwocDRwcJ1cxFJjzXzoWM77CODd79aokmxCWR8rE=}"
104 | userName: "EXAMPLE/Admin"
105 | name: "WMI Windows Agent"
106 | numExecutors: 2
107 | retentionStrategy: "always"
108 | clouds:
109 | - amazonEC2:
110 | cloudName: "EC2-sample-config"
111 | credentialsId: "example-aws"
112 | privateKey: "Stub: EC2PrivateKey"
113 | instanceCapStr: "8"
114 | templates:
115 | - ami: "windows64x"
116 | amiType:
117 | windowsData:
118 | password: "{AQAAABAAAAAQtIAG0C6hQhDx3wnlr6dCxhrxfHkeVT2mQLWGnVh62Qo=}"
119 | useHTTPS: false
120 | associatePublicIp: false
121 | connectBySSHProcess: false
122 | deleteRootOnTermination: false
123 | description: "Windows Slave"
124 | ebsOptimized: false
125 | idleTerminationMinutes: "30"
126 | mode: NORMAL
127 | monitoring: false
128 | numExecutors: 1
129 | remoteFS: "/remote/root"
130 | stopOnTerminate: false
131 | t2Unlimited: false
132 | type: T3Nano
133 | useDedicatedTenancy: false
134 | useEphemeralDevices: false
135 | useInstanceProfileForCredentials: false
136 | - kubernetes:
137 | connectTimeout: 5
138 | containerCapStr: "10"
139 | credentialsId: "exampleuser-creds-id"
140 | jenkinsUrl: "http://localhost:8080"
141 | maxRequestsPerHostStr: "32"
142 | name: "kubernetes"
143 | namespace: "example"
144 | readTimeout: 15
145 | serverCertificate: "Stub: Kubernetes server certificate key"
146 | serverUrl: "https://k8s/example.com"
147 | templates:
148 | - containers:
149 | - args: "cat"
150 | command: "/bin/sh -c"
151 | image: "jenkins/jnlp-slave"
152 | livenessProbe:
153 | failureThreshold: 1
154 | initialDelaySeconds: 2
155 | periodSeconds: 3
156 | successThreshold: 4
157 | timeoutSeconds: 5
158 | name: "jnlp"
159 | ttyEnabled: true
160 | - args: "cat"
161 | command: "/bin/sh -c"
162 | image: "elasticsearch"
163 | livenessProbe:
164 | failureThreshold: 1
165 | initialDelaySeconds: 2
166 | periodSeconds: 3
167 | successThreshold: 4
168 | timeoutSeconds: 5
169 | name: "elasticsearch"
170 | ttyEnabled: true
171 | instanceCap: 5
172 | instanceCapStr: "5"
173 | label: "linux stub"
174 | name: "Test Pod"
175 | namespace: "example"
176 | workspaceVolume:
177 | emptyDirWorkspaceVolume:
178 | memory: false
179 | aws:
180 | awsCredentials:
181 | region: "us-east-1"
182 | s3:
183 | container: "s3.example.com"
184 | prefix: "myjenkins/"
185 | credentials:
186 | system:
187 | domainCredentials:
188 | - credentials:
189 | - usernamePassword:
190 | description: "Sample credentials of exampleuser"
191 | id: "exampleuser-creds-id"
192 | password: "{AQAAABAAAAAQ1/JHKggxIlBcuVqegoa2AdyVaNvjWIFk430/vI4jEBM=}"
193 | scope: GLOBAL
194 | username: "exampleuser"
195 | - string:
196 | description: "Secret Text Credentials"
197 | id: "exampleuser-secret-text"
198 | scope: GLOBAL
199 | secret: "{AQAAABAAAAAQxuhfaykd2s1lucCuLUTqoxvb4JkekOIM1Iq2gsCUBbE=}"
200 | - aws:
201 | accessKey: "example-access-id"
202 | description: "Example AWS credentials"
203 | id: "example-aws"
204 | scope: GLOBAL
205 | secretKey: "{AQAAABAAAAAg2VHmB3ITxGN6robkgkhC9hMk+dD/DYRhmDfsShtKgNDFAUjKf0eXl7taORsKKgVq}"
206 | security:
207 | apiToken:
208 | creationOfLegacyTokenEnabled: false
209 | tokenGenerationOnCreationEnabled: false
210 | usageStatisticsEnabled: true
211 | downloadSettings:
212 | useBrowser: false
213 | sSHD:
214 | port: 1234
215 | unclassified:
216 | bitbucketEndpointConfiguration:
217 | endpoints:
218 | - bitbucketCloudEndpoint:
219 | enableCache: true
220 | manageHooks: false
221 | repositoriesCacheDuration: 60
222 | teamCacheDuration: 120
223 | contentFilters:
224 | enabled: true
225 | experimentalPlugins:
226 | enabled: false
227 | extendedEmailPublisher:
228 | adminRequiredForTemplateTesting: true
229 | allowUnregisteredEnabled: false
230 | charset: "UTF-8"
231 | debugMode: false
232 | defaultBody: "$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:\r\n\r\nCheck\
233 | \ console output at $BUILD_URL to view the results."
234 | defaultContentType: "text/plain"
235 | defaultRecipients: "users@example.com"
236 | defaultSubject: "$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!"
237 | defaultSuffix: "@example.com"
238 | maxAttachmentSize: -1
239 | maxAttachmentSizeMb: 10
240 | precedenceBulk: false
241 | smtpServer: "smtp.example.com"
242 | useSsl: false
243 | watchingEnabled: false
244 | gitHubConfiguration:
245 | endpoints:
246 | - apiUri: "https://api.github.example.com"
247 | name: "Test GitHub Enterprise Server"
248 | gitHubPluginConfig:
249 | configs:
250 | - name: "GitHub origin"
251 | hookUrl: "http://localhost:8080/github-webhook/"
252 | gitSCM:
253 | createAccountBasedOnEmail: true
254 | globalConfigEmail: "username@example.com"
255 | globalConfigName: "username"
256 | globalDefaultFlowDurabilityLevel:
257 | durabilityHint: PERFORMANCE_OPTIMIZED
258 | globalLibraries:
259 | libraries:
260 | - defaultVersion: "1.2.3"
261 | name: "Test Git Lib"
262 | retriever:
263 | legacySCM:
264 | scm:
265 | git:
266 | branches:
267 | - name: "*/myprodbranch"
268 | browser:
269 | assemblaWeb:
270 | repoUrl: "assembla.example.com"
271 | buildChooser: "default"
272 | doGenerateSubmoduleConfigurations: false
273 | extensions:
274 | - "cleanCheckout"
275 | - "gitLFSPull"
276 | - checkoutOption:
277 | timeout: 60
278 | - userIdentity:
279 | email: "customuser@example.com"
280 | name: "custom user"
281 | - preBuildMerge:
282 | options:
283 | mergeRemote: "myrepo"
284 | mergeStrategy: RECURSIVE
285 | mergeTarget: "master"
286 | gitTool: "Default"
287 | submoduleCfg:
288 | - submoduleName: "submodule-1"
289 | branches:
290 | - "mybranch-1"
291 | - "mybranch-2"
292 | - submoduleName: "submodule-2"
293 | branches:
294 | - "mybranch-3"
295 | - "mybranch-4"
296 | userRemoteConfigs:
297 | - credentialsId: "exampleuser-creds-id"
298 | url: "https://git.example.com/testgitlib.git"
299 | # GitHub Source
300 | - defaultVersion: "master"
301 | name: "jenkins-pipeline-lib"
302 | retriever:
303 | modernSCM:
304 | scm:
305 | github:
306 | id: "e43d6600-ba0e-46c5-8eae-3989bf654055"
307 | repoOwner: "jenkins-infra"
308 | repository: "pipeline-library"
309 | traits:
310 | # BUG: https://issues.jenkins-ci.org/browse/JENKINS-57557
311 | # - branchDiscoveryTrait:
312 | # strategyId: 1
313 | # - originPullRequestDiscoveryTrait:
314 | # strategyId: 1
315 | # - forkPullRequestDiscoveryTrait:
316 | # strategyId: 1
317 | # trust: "trustPermission"
318 | jiraGlobalConfiguration:
319 | sites:
320 | - url: "https://issues.jenkins-ci.org"
321 | - url: "http://jira.codehaus.org/"
322 | location:
323 | adminAddress: "address not configured yet "
324 | url: "http://localhost:8080/"
325 | mailer:
326 | adminAddress: "address not configured yet "
327 | charset: "UTF-8"
328 | defaultSuffix: "@example.com"
329 | smtpHost: "smtp.example.com"
330 | useSsl: false
331 | metricsAccessKey:
332 | accessKeys:
333 | - canHealthCheck: true
334 | canMetrics: true
335 | canPing: true
336 | canThreadDump: false
337 | description: "Dummy Key 1"
338 | key: "oovyDNmeZZ1I7p_H_sXAws0KVP9eZ3fNwr7lOtjElKUId6wHAnlCR08wb6nAmLYa"
339 | origins: "*"
340 | - canHealthCheck: false
341 | canMetrics: false
342 | canPing: false
343 | canThreadDump: true
344 | description: "Dummy Key 2 for Thread dumps"
345 | key: "lI2OHTJDi-G9AhmRE7roaPjHD5zrtKAGSeyVUqYpzA5DC_lhFAh13AF67iZYcvFP"
346 | origins: "thread dumps"
347 | pipeline-model:
348 | dockerLabel: "docker"
349 | registry:
350 | url: "https://index.docker.io/v1/"
351 | pollSCM:
352 | pollingThreadCount: 10
353 | shell:
354 | shell: "bash"
355 | globalConfigFiles:
356 | configs:
357 | - globalMavenSettings:
358 | comment: "global settings"
359 | content: "\n\n\n \n \n \n\n"
364 | id: "2ec14627-7057-474e-b0af-d16ce92b0ea0"
365 | isReplaceAll: true
366 | name: "MyMavenSettingsFile"
367 | providerId: "org.jenkinsci.plugins.configfiles.maven.GlobalMavenSettingsConfig"
368 | - groovyTemplate:
369 | content: "echo \"Hello!\""
370 | id: "test-groovy-template"
371 | name: "Groovy Email Template"
372 | - custom:
373 | content: "Whatever test content"
374 | id: "test-custom-file"
375 | name: "MyCustom"
376 | providerId: "org.jenkinsci.plugins.configfiles.custom.CustomConfig"
377 | tool:
378 | dockerTool:
379 | installations:
380 | - name: "docker-latest"
381 | properties:
382 | - installSource:
383 | installers:
384 | - docker:
385 | version: "latest"
386 | - home: "/tools/docker"
387 | name: "docker-zip"
388 | properties:
389 | - installSource:
390 | installers:
391 | - zip:
392 | label: "linux"
393 | url: "https://storage.example.com/docker.zip"
394 | git:
395 | installations:
396 | - home: "git"
397 | name: "Default"
398 | # BUG - https://issues.jenkins-ci.org/browse/JENKINS-57326
399 | # - home: "jgit"
400 | # name: "jgit"
401 | # - home: "jgitapache"
402 | # name: "jgitapache"
403 | gradle:
404 | installations:
405 | - name: "Gradle-default"
406 | properties:
407 | - installSource:
408 | installers:
409 | - gradleInstaller:
410 | id: "5.4"
411 | - zip:
412 | label: "arm"
413 | subdir: "gradle-1.2.3/arm"
414 | url: "https://share.example.com/tools/gradle/1.2.3"
415 | - name: "Gradle-5.5.6"
416 | properties:
417 | - installSource:
418 | installers:
419 | - gradleInstaller:
420 | id: "5.4"
421 | - zip:
422 | subdir: "gradle-5.5.6"
423 | url: "https://share.example.com/tools/gradle/5.56"
424 | jdk:
425 | installations:
426 | - name: "loca-jdk"
427 | properties:
428 | - installSource:
429 | installers:
430 | - command:
431 | command: "echo \"Tool installation magic NOOP\""
432 | label: "linux || windows"
433 | toolHome: "/tools/jdk"
434 | maven:
435 | installations:
436 | - name: "mvn-3.6.1"
437 | properties:
438 | - installSource:
439 | installers:
440 | - maven:
441 | id: "3.6.1"
442 | ant:
443 | installations:
444 | - name: "Ant 1.10.5"
445 | # BUG: JENKINS-57561 - missing "home" export by default?
446 | home: "/tools/ant"
447 | properties:
448 | - installSource:
449 | installers:
450 | - antFromApache:
451 | id: "1.10.5"
452 | msTestInstallation:
453 | installations:
454 | - defaultArgs: "test param"
455 | home: "C:\\opt\\tools\\mstest"
456 | name: "MSTest Tool"
457 | omitNoIsolation: true
458 | msbuild:
459 | installations:
460 | - defaultArgs: "helloWorld"
461 | home: "C:\\opt\\tools\\msbuild"
462 | name: "MSBuild Test"
463 |
--------------------------------------------------------------------------------
/plugins.txt:
--------------------------------------------------------------------------------
1 | configuration-as-code:1.27
2 | # https://issues.jenkins-ci.org/browse/JENKINS-57559
3 | credentials:2.2.0
4 | # https://issues.jenkins-ci.org/browse/JENKINS-57603
5 | git:3.10.1
6 | # https://issues.jenkins-ci.org/browse/JENKINS-57562 and other compatibility issues
7 | ec2:1.44.1
8 | # https://issues.jenkins-ci.org/browse/JENKINS-52906
9 | jira:3.0.7
10 | # Transitive dependency
11 | script-security:1.58
12 |
--------------------------------------------------------------------------------