.. _configuration: ############# Configuration ############# .. _defaults-yaml: defaults.yaml ============= This file lives in the ci-management repo typically under the path ``jjb/defaults.yaml``. The purpose of this file is to store default variable values used by global-jjb templates. **Required** :jenkins-ssh-credential: The name of the Jenkins Credential to use for ssh connections. (ex: jenkins-ssh) :lftools-version: Version of lftools to install. Can be a specific version like '0.6.1' or a `PEP-440 definition `_ For example `<1.0.0` or `>=1.0.0,<2.0.0`. :mvn-site-id: Maven Server ID from settings.xml containing the credentials to push to a Maven site repository. :mvn-staging-id: Maven Server ID from settings.xml containing the credentials to push to a Maven staging repository. **Gerrit required parameters**: :gerrit-server-name: The name of the Gerrit Server as defined in Gerrit Trigger global configuration. (ex: Primary) **GitHub required parameters**: :git-url: Set this to the base URL of your GitHub repo. In general this should be . If you are using GitHub Enterprise, or some other GitHub-style system, then it should be whatever your installation base URL is. :git-clone-url: This is the clone prefix used by GitHub jobs. Set this to either the same thing as **git-url** or the 'git@github.com:' including the trailing ':' :github-org: The name of the GitHub organization interpolated into the scm config. :github_pr_org: The name of the GitHub organization. All members of this organization will be able to trigger any job using the `lf-infra-github-pr` macro. :github_pr_whitelist: List of GitHub members you wish to be able to trigger any job that uses the `lf-infra-github-pr-trigger` macro. :github_pr_admin_list: List of GitHub members that will have admin privileges on any job using the `lf-infra-github-pr-trigger` macro. Example Gerrit Infra: .. code-block:: yaml - defaults: name: global # lf-infra defaults jenkins-ssh-credential: opendaylight-jenkins-ssh gerrit-server-name: OpenDaylight lftools-version: '<1.0.0' mvn-site-id: opendaylight-site mvn-staging-id: opendaylight-staging Example GitHub Infra: .. code-block:: yaml - defaults: name: global # lf-infra defaults jenkins-ssh-credential: jenkins-ssh github-org: lfit github_pr_whitelist: - jpwku - tykeal - zxiiro github_pr_admin_list: - tykeal lftools-version: '<1.0.0' mvn-site-id: opendaylight-site mvn-staging-id: opendaylight-staging .. _jenkins-files: Jenkins Files ============= global-jjb makes use of the Jenkins Config File Provider plugin to provide some default configurations for certain tools. This section details the files to define in Jenkins' **Manage Files** configuration. .. _npmrc: npmrc ----- This file contains default npmrc configuration and lives in $HOME/.npmrc. Documentation for npmrc is available via the `npm project `_. :Required: This file MUST exist. An empty file is acceptable if a proxy is not available for the project. :type: Custom file Create a "Custom file" with contents: .. code:: registry = https://nexus.opendaylight.org/content/repositories/npmjs/ .. _pipconf: pipconf ------- This file contains default configuration for the python-pip tool and lives in $HOME/.config/pip/pip.conf. Documentation for pip.conf is available via the `pip project `_. :Required: This file MUST exist. An empty file is acceptable if a proxy is not available for the project. :type: Custom file Create a "Custom file" with contents: .. code:: [global] timeout = 60 index-url = https://nexus3.opendaylight.org/repository/PyPi/simple .. _jenkins-ci-jobs: Jenkins CI Jobs =============== .. _jenkins-cfg-merge: jenkins-cfg-merge ----------------- This job manages Jenkins Global configuration. Refer to the :ref:`CI Documentation ` for job configuration details. .. _log-archiving: Log Archiving ============= The logs account requires a Maven Settings file created called **jenkins-log-archives-settings** with a server ID of **logs** containing the credentials for the logs user in Nexus.