summaryrefslogtreecommitdiffstats
path: root/doc
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge "Document template variable default values"Jenkins2016-04-261-0/+20
|\
| * Document template variable default valuesDarragh Bailey2016-02-201-0/+20
| | | | | | | | | | | | | | | | Document the ability to define default values for template variables within the template definition thus removing the need to always having to set such values in job definitions. Change-Id: If4d8bfd898066b8e6350ed22f0c97eb939ae4348
* | Change documentation to install from pypiTerry Howe2016-04-231-1/+8
| | | | | | | | Change-Id: I46fe46d0af14563b2e87492c2abe1b39ec246714
* | Merge "Take parameter order from yaml in trigger_parameterized_builds"Jenkins2016-04-221-0/+14
|\ \
| * | Take parameter order from yaml in trigger_parameterized_buildsDarragh Bailey2016-03-071-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support taking the order of the parameters to be passed through to a triggered parameterized build from the user defined yaml via config option. Use the existing order by default so as not to break current usage. The XML ordering of the parameters matters since when the same parameter is defined through multiple sources, Jenkins uses the ordering to determine which will be the one that that should win. ie if FOO=BAR is set as a build parameter of the current job and a properties file is generated during build that attempts to set FOO=BAZ; the XML ordering determines which value, BAZ or BAR, that the triggered job sees for the parameter FOO. Change-Id: Ia0dafad8ed3976e7b0b11feb6b3af844bbda9d4a
* | | Merge "Allow id's for different templates to follow same naming"Jenkins2016-04-211-0/+25
|\ \ \ | | |/ | |/|
| * | Allow id's for different templates to follow same namingDarragh Bailey2016-02-201-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is useful to allow templates that can have different settings for slightly different jobs while still following the same naming scheme. Additionally this allows for shorter and more descriptive names to be used without the confusion of the variable placeholders, and for the resulting job names from the templates to be altered without needing to update all references. Change-Id: Idc3517b44873210a33f988ebff449ea2ed567054
* | | Merge "Added possibility to exclude project combinations"Jenkins2016-04-211-0/+20
|\ \ \
| * | | Added possibility to exclude project combinationsDavid Caro2016-03-121-0/+20
| |/ / | | | | | | | | | | | | Change-Id: I40603f041d33a27d08bf6912b7d9d885a95278fd Signed-off-by: David Caro <dcaroest@redhat.com>
* | / cmd: Add a config file fallback to the user's home directorySebastian Schuberth2016-04-181-4/+4
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The system-global path of /etc/jenkins_jobs/jenkins_jobs.ini is not applicable on Windows. To solve that, and as Linux users would benefit from a per-user configuration file, too, introduce a fallback at ~/.config/jenkins_jobs/jenkins_jobs.ini following the XDG Base Directory Specification. Try to use that per-user file if no configuration file is given on the command line and none is present in the script directory for development purposes. Change-Id: I1a22454999ee8ac60d6f22545850c33aa03bb29b
* | Update docs to include installation via pypiAdam Harwell2016-03-031-1/+5
|/ | | | Change-Id: Iad36cba6cc27770c69499ec7c402ff48f1f0380e
* Merge "Add parallelization options"Jenkins2015-12-231-0/+7
|\
| * Add parallelization optionsDavid Caro2015-12-011-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Only update_jobs uses the parallel features right now * --workers N - If set to 0, it will use parallel execution and use the number of cores in the machine as thread count - Any other value enables the parallel extensions and sets the number of concurrent threads to that value - Will use 1 by default Add some tests to make sure the parallel execution helpers work as expected. Change-Id: Ib0abd34ea7525f75fff4ff480287a6e589deba90 Signed-off-by: David Caro <dcaroest@redhat.com>
* | Merge "Add MultiJob Project Documentation."Jenkins2015-12-032-5/+9
|\ \
| * | Add MultiJob Project Documentation.Wayne2015-08-192-5/+9
| | | | | | | | | | | | Change-Id: I5a2f86050a59d7ee1ef23f25c51ec4591908d0ff
* | | Document the new {template-name} variableJonathan Lebon2015-12-011-0/+5
| |/ |/| | | | | | | | | | | Doc change only to document the {template-name} variable added in commit 7ef05f7. Change-Id: I88cfd14e2fa642fd4d6b9ac8d002c17fb8ef7dd9
* | cmd.py: tweak plugin information querying logicJonathan Lebon2015-10-301-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't want to unconditionally disable plugin querying just because --conf is not given. That would mean that the query_plugins_info field in the default paths would always be ignored, even if set to True. This patch tweaks the logic so that we remember in options.conf the actual name of the config file that we read from, whether it be from --conf or from one of the default paths. This way, the `test` command will still work out of the box, as commit f68831b envisioned. But query_plugins_info is now checked if the user has a configuration file (whether it be a default one, or one specified through --conf). Change-Id: Id71ad207f0419f7cc52eca174dd859d4182d7250 Story: 2000387
* | quick-start: Fix the configuration file argument to read "--conf"Sebastian Schuberth2015-10-201-2/+2
| | | | | | | | Change-Id: Id9f9290cd8e7eabd3c3dbb5ee27cf3e3e1d52176
* | Allow JJB to set connection timeout to jenkins serverKhai Do2015-09-211-0/+4
| | | | | | | | | | | | | | | | | | | | | | Change If84778231b provided an option to set a connection timeout in the python-jenkins library. This change allows JJB to override that timeout value. Add tests to ensure that the timeout is only set when specified via the config options. Change-Id: I3dfe9139469dd0e8549eeedb1833c55ac79ea8b5
* | Stash publisher's credentials configurationNicolas Glayre2015-08-241-0/+14
| | | | | | | | | | | | | | | | | | | | As per now if you want to configure the stash publisher and give it a username and password, you need to set them in clear text within the yaml file. This pull request gives the possibility to set these credentials within the jenkins_jobs.ini file and therefore makes it possible to not expose them to everyone. Change-Id: I2e5d6caefb87ded2468c7b7e015e20464ffef99e
* | Enhance macro expansion documentationIan Wienand2015-08-141-3/+46
|/ | | | | | | This adds some notes on parameter expansion with macros and especially calls out some of the details around using "{" with shell-scripts. Change-Id: Ibef92a60b9f44f7dc70db65aff7d97b3a665a6bf
* Merge "Add a JJB quick start guide"Jenkins2015-08-124-258/+353
|\
| * Add a JJB quick start guideKhai Do2015-08-124-258/+353
| | | | | | | | | | | | | | | | | | | | | | | | This change does the following: 1. add a quick start guide 2. move the info about executing jjb from installation.rst to execution.rst and slightly update the verbage. The intention is to kick off this guide with a few simple use cases not to have a comprehensive set of use cases. Change-Id: I719c6dec5cc5f2731ef95094b76ec54c12b41b8e
* | Merge "Document that jjb supports json job definitions"Jenkins2015-08-121-2/+2
|\|
| * Document that jjb supports json job definitionsKhai Do2015-07-281-2/+2
| | | | | | | | | | | | | | | | Add documentation to let users know that they can also define jobs in JSON. Create a new test suite to verify that jjb can correctly generate jenkins xml from json definitions. Change-Id: Idb5216b0b56837d0f4dd2298986149be66bd217e
* | Merge "Support for externaljob project-type for monitoring external jobs"Jenkins2015-08-072-0/+8
|\ \ | |/ |/|
| * Support for externaljob project-type for monitoring external jobsSomay Jain2015-08-012-0/+8
| | | | | | | | Change-Id: I8904725f75d27180d44c55768605db7d67e79586
* | Fix two typos and Fix readabilityAtsushi SAKAI2015-07-271-4/+4
|/ | | | | | | | | apropriate => appropriate behaviour => behavior tha toption => that option Change-Id: I97b771752062861f55f372b03cd1f5449482b6ef
* Allow use of aliases defined previously inside included filesVictor Seva2015-05-141-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Anchors and aliases were expanded internally within JJB's yaml loading calls so they were limited to individual documents. Now, included files will have access to aliases of anchors already defined at previously processed files. Example: - default: name: default-timeout-wrapper timeout: &timeout fail: true elastic-percentage: 150 elastic-default-timeout: 90 type: elastic - wrapper: !include include002_1.yaml.inc Previously was not possible to use '*timeout' alias inside include002_1.yaml.inc file Closes-Story: 2000173 Change-Id: Ic031ddbb0310bd11748183fbde9502735c3b7169
* Merge "Revert "Added parallelization options""Jenkins2015-05-051-7/+0
|\
| * Revert "Added parallelization options"James E. Blair2015-05-051-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 7100a7f225e60936f23d24c757c1b14c9b136ec4. The referenced commit, in addition to what it advertises, also filters the result of update_jobs to include only changed jobs. If there are no change jobs, then, if the user specifies --delete-old, there are no jobs in the list of jobs to keep which comes from the result of update_jobs. In that case, all jobs are deleted. Or in other words, the logic in this change is that all jobs not updated are deleted. Proposing as a revert because this is currently causing serious problems for continuously deployed JJB instances, and the very common --delete-old code path should be properly tested with this change before it lands again. Change-Id: I98443f0c085e27ed8dfece6409434015ac24b306
* | Merge "Add support for 'raw' to inject direct xml to job configs."Jenkins2015-05-041-0/+34
|\ \ | |/ |/|
| * Add support for 'raw' to inject direct xml to job configs.Max Rydahl Andersen2015-05-021-0/+34
| | | | | | | | | | | | | | | | | | | | | | 'raw' allow users to have a fallback in case a plugin is not yet supported or the plugin is not generating the expected result. Only intended as a last fallback, but useful when waiting for review to complete. Change-Id: If0d22d7d43d35649e78aa7481e1c0f1ed21a6025
* | Added parallelization optionsDavid Caro2015-04-301-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Only update_jobs uses the parallel features right now * --workers N - if set to 0, it will use parallel execution and use the number of cores in the machine as thread count - Any other value enables the paralllel extensions and sets the number of concurrent threads to that value - Will use 1 by default Added some tests to make sure the parallel execution helpers work as expected Change-Id: Iee8426ff2dc4c5b4ebec4c15bdd21cae5b47eb83 Signed-off-by: David Caro <dcaroest@redhat.com>
* | Merge "Remove YamlParser from jenkins_jobs.builder"Jenkins2015-04-231-1/+1
|\ \
| * | Remove YamlParser from jenkins_jobs.builderWayne2015-04-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The goal of this patch is simply to move some classes out of jenkins_jobs.builder into more appropriately-named modules. This started with simply moving YamlParser into jenkins_jobs.parser but led to other moves in order to avoid cyclic imports since YamlParser uses other classes previously defined in jenkins_jobs.builder. That said, this patch doesn't intend to address all of the clutter in jenkins_jobs.builder, mostly just what is necessary to get started working on YamlParser independent of other classes in that module. Change-Id: Ie88bf683e495033eb0b670fe29c256a70282735f
* | | Merge "Only query jenkins plugins if config provided"Jenkins2015-04-231-0/+6
|\ \ \
| * | | Only query jenkins plugins if config providedDarragh Bailey2015-04-171-0/+6
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Limit querying for plugin information from Jenkins to where an explicit configuration file has been provided. Where no file is provided, should avoid any requests that could result in attempting connections. Add a config options to control this behaviour explicitly so that if a config file is provided, it may explicitly disable querying jenkins for additional information from plugins. The `test` command can use this behaviour to ensure that a basic run is possible without providing any configuration files, and can be explicitly configured to disable querying should a config file be used for testing. Ensure the default sample configuration skips attempting to query so that users may use it as a quick test for a working installation without any network or valid jenkins url dependencies. Change-Id: I641a3188013debf3765aaff109c4f5fa82a4cedb
* / / Add support for hipchat notifier 0.1.8Wayne2015-04-171-0/+19
|/ / | | | | | | | | Change-Id: I834dc05465ea5a24e3743f400837482a82e02e70 Closes-Bug: 1377567
* / Added possibility to use non-existent keysDavid Caro2015-03-242-0/+20
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added a new configuration option under the section "job_builder" named "allow_empty_variables" that if set to true, will replace non existing variables in strings with the empty string instead of raising an error. It's very useful if you have a shell script, that has optional values, for example: EXTRA_PACKAGES=({extra-packages}) for package in "${EXTRA_PACKAGES[@]}"; do install "$package" done Or modifying the script behavior with flags, with empty as default value: WITH_AUTOGEN={with-autogen} if [[ $WITH_AUTOGEN ]]; then ./autogen.sh fi Then if you have two different jobs that use that script in their builder, you just have to set the extra parameter or ignore it to change the behavior: - builder: name: mybuilder builders: - shell: !include shell-scripts/myscript.sh - job-template: name: 'mytpl-{name}' ... builders: - mybuilder - project: name: myproj1 with-autogen: true jobs: - 'mytpl-{name}' - project: name: myproj2 extra-packages: | extrapkg1 extrapkg2 Change-Id: Iad9f0e522725e6fd6681cd62d3e36f69baf09585 Signed-off-by: David Caro <dcaroest@redhat.com>
* Add tests for yaml anchor behaviourDarragh Bailey2015-03-101-8/+31
| | | | | | | | | | | | | | | | | | | | | | | | Adds two tests to ensure correct behaviour with referencing yaml anchors and a third test to verify the expansion internally of yaml anchors and aliases. * test that anchors are not carried across subsequent top level invocations of yaml.load(). This will be used subsequently to ensure that where anchors are allowed across included files they are correctly reset on each top level call. * test that where anchors are defined in a top level file and subsequently included files, duplicate anchors raise exceptions as though they were defined within the same file. * test that data returned from yaml loading contains the additional data specified by the alias. Uses json to force conversion so that the outputted yaml contains the results of the anchors and aliases instead of them. Update documentation to contain details of the use of anchors and aliases including a refernce to a simple generic example from the specification as well as a JJB specific example. Change-Id: I0f2b55e1e2f2bad09f65b1b981baa0159372ee10
* Merge "Use sphinx extlinks to shorten links to Jenkins wiki"Jenkins2015-03-051-1/+5
|\
| * Use sphinx extlinks to shorten links to Jenkins wikiDarragh Bailey2015-02-241-1/+5
| | | | | | | | | | | | | | | | Reduce the links to the Jenkins wiki for references to plugin pages by using the sphinx.ext.extlinks module to provide a custom alias for generating links using the same base url. Change-Id: Ifba460cd131b4630deb41356e2b32641efe3086a
* | Merge "Check external documentation links are valid"Jenkins2015-03-051-0/+6
|\|
| * Check external documentation links are validDarragh Bailey2015-02-241-0/+6
| | | | | | | | | | | | | | | | | | | | Use sphinx's linkcheck builder to validate any external links. Fix the broken links by converting the example link to a code segment and correcting the link referencing the cgit mirror for the git clone instructions. Change-Id: Ic6236e250b7af5c7c000af1e67fb69dd720ad6d8
* | Support excludes when recursively processing pathsDarragh Bailey2015-02-171-0/+61
|/ | | | | | | | | | | | Include an additional option to exclude some paths/patterns from being included in the search to allow a complex hierarchy of directories to be referenced under a single path. Provide support to allow the user to specify patterns, relative and/or absolute path references. Implements support for excluding based on absolute path, relative path and based on simple shell globing patterns. Change-Id: I236b364c268fd2bf5511a2c6d9a1c87914f3b086
* Merge "Interpolate params inside of params."Jenkins2015-02-051-0/+8
|\
| * Interpolate params inside of params.Wayne2015-01-311-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch enables parameters to be expanded inside of other parameters. For instance: - job-template: name: '{value-stream}_{pipeline_type}_foo' builders: - shell: 'echo "I am foo job!"' publishers: - trigger-parameterized-builds: - project: '{downstream}' current-parameters: False condition: ALWAYS git-revision: True - job-template: name: '{value-stream}_{pipeline_type}_bar' builders: - shell: 'echo "I am bar job!"' publishers: - trigger-parameterized-builds: - project: '{downstream}' current-parameters: False condition: ALWAYS git-revision: True - job-template: name: '{value-stream}_{pipeline_type}_baz' builders: - shell: 'echo "I am baz job!"' publishers: - trigger-parameterized-builds: - project: '{downstream}' current-parameters: False condition: ALWAYS git-revision: True - job-group: name: 'pipeline2' pipeline_type: 'p2' jobs: - '{value-stream}_{pipeline_type}_foo': downstream: '{value-stream}_{pipeline_type}_bar' - '{value-stream}_{pipeline_type}_bar': downstream: '{value-stream}_{pipeline_type}_baz' - '{value-stream}_{pipeline_type}_baz': - job-group: name: 'pipeline1' pipeline_type: 'p1' jobs: - '{value-stream}_{pipeline_type}_baz': downstream: '{value-stream}_{pipeline_type}_bar' - '{value-stream}_{pipeline_type}_bar': downstream: '{value-stream}_{pipeline_type}_foo' - '{value-stream}_{pipeline_type}_foo': - project: name: derp jobs: - 'pipeline1': value-stream: - experimental - staging - 'pipeline2': value-stream: - experimental - staging - production Prior to this commit, the setup above was not possible because the `downstream` defined as parameters to be passed to job templates in the job groups would not have the `value-stream` and `pipeline-type` parameters interpolated. The trigger-parameterized-jobs `project` value for each of the 15 jobs created with this setup would all look something like `{value-stream}_{pipeline_type}_foo` which does not actually point to any particular job. The only way I was previously able to specify a downstream job with parameters was to put the `{value-stream}_{pipeline_type}_foo` string directly in the job-template which meant that job templates were statically bound to each other--I had no reasonable way to re-order or easily select subsets of the jobs at the job-group or project level as can be seen here in the difference between `pipeline1` and `pipeline2`. Change-Id: I26dfb112cd4842c40c3d561f8de89f7654a07b8f
* | Fix invalid link to jenkins puppet moduleimran2015-02-021-1/+1
|/ | | | | | | | | | | The jenkins puppet link in docs is invalid as it links to non-existent project called 'config' . The correct link is updated in installation docs. Closes-Bug story 2000145 story link: https://storyboard.openstack.org/#!/story/2000145 Change-Id: I542280b99508e80a1cec4f87395e328cb567f134
* Update and clean up docsKhai Do2015-01-231-11/+3
| | | | | | | * Reference the readme.rst in index.rst to remove redundancy * General cleanup and updates Change-Id: I64e149087783e67d22fd0f2006accee2a1757ae0