Job Groups
==========
-{project-name}-ci-jobs
-----------------------
+.. include:: ../job-groups.rst
-Recommended jobs that should be deployed for CI using Gerrit.
+Below is a list of CI job groups:
-:Includes:
-
- - gerrit-jenkins-cfg-merge
- - gerrit-jenkins-sandbox-cleanup
- - gerrit-jjb-deploy-job
- - gerrit-jjb-merge
- - gerrit-jjb-verify
-
-{project-name}-github-ci-jobs
------------------------------
-
-Recommended jobs that should be deployed CI using GitHub.
-
-:Includes:
-
- - github-jenkins-cfg-merge
- - github-jenkins-sandbox-cleanup
- - github-jjb-deploy-job
- - github-jjb-merge
- - github-jjb-verify
-
-{project-name}-info-yaml-jobs
------------------------------
-
-Jobs to verify INFO.yaml file changes.
-
-:Includes:
-
- - gerrit-info-yaml-verify
-
-{project-name}-github-info-yaml-jobs
-------------------------------------
-
-Jobs to verify INFO.yaml file changes using Github.
-
-:Includes:
-
- - github-info-yaml-verify
-
-{project-name}-packer-jobs
---------------------------
-
-Jobs related to Packer builds for CI using Gerrit.
-
-:Includes:
-
- - gerrit-packer-merge
- - gerrit-packer-verify
-
-{project-name}-github-packer-jobs
----------------------------------
-
-Jobs related to Packer builds for CI using GitHub.
-
-:Includes:
+.. literalinclude:: ../../jjb/lf-ci-job-groups.yaml
+ :language: yaml
- - github-packer-merge
- - github-packer-verify
Macros
======
Job Groups
==========
-{project-name}-maven-jobs
--------------------------
+.. include:: ../job-groups.rst
-Jobs for Maven projects using Gerrit.
+Below is a list of Maven job groups:
-:Includes:
-
- - gerrit-maven-clm
- - gerrit-maven-stage
- - gerrit-maven-verify
- - gerrit-maven-verify-dependencies
-
-{project-name}-github-maven-jobs
---------------------------------
-
-Jobs for Maven projects using GitHub.
-
-:Includes:
-
- - github-maven-clm
- - github-maven-stage
- - github-maven-verify
-
-{project-name}-maven-javadoc-jobs
----------------------------------
-
-Jobs for Maven projects to generate javadoc using Gerrit.
-
-:Includes:
-
- - gerrit-maven-javadoc-publish
- - gerrit-maven-javadoc-verify
-
-{project-name}-github-maven-javadoc-jobs
-----------------------------------------
-
-Jobs for Maven projects to generate javadoc using GitHub.
-
-:Includes:
-
- - github-maven-javadoc-publish
- - github-maven-javadoc-verify
+.. literalinclude:: ../../jjb/lf-maven-job-groups.yaml
+ :language: yaml
Macros
Job Groups
==========
-{project-name}-node-jobs
-------------------------
+.. include:: ../job-groups.rst
-Jobs for NodeJS projects using Gerrit.
+Below is a list of Node job groups:
-:Includes:
+.. literalinclude:: ../../jjb/lf-node-job-groups.yaml
+ :language: yaml
- - gerrit-node-verify
-
-{project-name}-github-node-jobs
--------------------------------
-
-Jobs for NodeJS projects using GitHub.
-
-:Includes:
-
- - github-node-verify
Job Templates
=============
Job Groups
==========
-{project-name}-python-jobs
---------------------------
+.. include:: ../job-groups.rst
-Jobs for Python projects using Gerrit.
+Below is a list of Maven job groups:
-:Includes:
-
- - gerrit-tox-verify
-
-{project-name}-github-python-jobs
----------------------------------
-
-Jobs for Python projects using GitHub.
-
-:Includes:
-
- - github-tox-verify
+.. literalinclude:: ../../jjb/lf-python-job-groups.yaml
+ :language: yaml
Macros
Job Groups
==========
-{project-name}-rtd-jobs
------------------------
+.. include:: ../job-groups.rst
-Jobs to deploy for a project producing ReadTheDocs using Gerrit.
+Below is a list of Maven job groups:
-:Includes:
-
- - gerrit-rtd-merge
- - gerrit-rtd-verify
-
-{project-name}-github-rtd-jobs
-------------------------------
-
-Jobs to deploy for a project producing ReadTheDocs using GitHub.
-
-:Includes:
-
- - github-rtd-merge
- - github-rtd-verify
+.. literalinclude:: ../../jjb/lf-rtd-job-groups.yaml
+ :language: yaml
Macros
--- /dev/null
+Job groups are a great tool to configure categories of jobs together at the
+same time. Below the example are some starting point job-groups but we
+recommend creating your own to ensure that the jobs configured reflect the
+project's needs.
+
+An example project:
+
+.. code-block:: yaml
+
+ - job-group:
+ name: odl-maven-jobs
+
+ jobs:
+ - gerrit-maven-clm
+ - gerrit-maven-merge
+ - gerrit-maven-release
+ - gerrit-maven-verify
+ - gerrit-maven-verify-dependencies:
+ build-timeout: 180
+
+ mvn-version: mvn35
+
+ - project:
+ name: aaa
+ jobs:
+ - odl-maven-jobs
+
+In this example we are using the job-group to assign a list of common jobs to
+the aaa project. The job-group also hardcodes ``mvn-version`` to *mvn35* and
+``build-timeout`` to *180* for all projects using this job-group.
+
+A benefit of this method is for example disabling entire category of jobs by
+modifying the job-group, insert ``disable-jobs: true`` parameter
+against the jobs to disable.
undocumented_count=0
for file in "${jjb_files[@]}"; do
mapfile -t docs_interests < <(grep -e '\- builder:' \
- -e '\- job-group:' \
-e '\- job-template:' \
-e '\- parameter:' \
-e '\- property:' \
--- /dev/null
+---
+- job-group:
+ name: '{project-name}-ci-jobs'
+
+ jobs:
+ - gerrit-jenkins-cfg-merge
+ - gerrit-jenkins-sandbox-cleanup
+ - gerrit-jjb-deploy-job
+ - gerrit-jjb-merge
+ - gerrit-jjb-verify
+
+- job-group:
+ name: '{project-name}-github-ci-jobs'
+
+ jobs:
+ - github-jenkins-cfg-merge
+ - github-jenkins-sandbox-cleanup
+ - github-jjb-deploy-job
+ - github-jjb-merge
+ - github-jjb-verify
+
+- job-group:
+ name: '{project-name}-info-yaml-jobs'
+
+ jobs:
+ - gerrit-info-yaml-verify
+
+- job-group:
+ name: '{project-name}-github-info-yaml-jobs'
+
+ jobs:
+ - github-info-yaml-verify
+
+- job-group:
+ name: '{project-name}-packer-jobs'
+
+ jobs:
+ - gerrit-packer-merge
+ - gerrit-packer-verify
+
+- job-group:
+ name: '{project-name}-github-packer-jobs'
+
+ jobs:
+ - github-packer-merge
+ - github-packer-verify
---
-- job-group:
- name: '{project-name}-ci-jobs'
-
- jobs:
- - gerrit-jenkins-cfg-merge
- - gerrit-jenkins-sandbox-cleanup
- - gerrit-jjb-deploy-job
- - gerrit-jjb-merge
- - gerrit-jjb-verify
-
-- job-group:
- name: '{project-name}-github-ci-jobs'
-
- jobs:
- - github-jenkins-cfg-merge
- - github-jenkins-sandbox-cleanup
- - github-jjb-deploy-job
- - github-jjb-merge
- - github-jjb-verify
-
-- job-group:
- name: '{project-name}-info-yaml-jobs'
-
- jobs:
- - gerrit-info-yaml-verify
-
-- job-group:
- name: '{project-name}-github-info-yaml-jobs'
-
- jobs:
- - github-info-yaml-verify
-
-- job-group:
- name: '{project-name}-packer-jobs'
-
- jobs:
- - gerrit-packer-merge
- - gerrit-packer-verify
-
-- job-group:
- name: '{project-name}-github-packer-jobs'
-
- jobs:
- - github-packer-merge
- - github-packer-verify
####################
# COMMON FUNCTIONS #
--- /dev/null
+---
+- job-group:
+ name: '{project-name}-maven-jobs'
+
+ # This job group contains all the recommended jobs that should be deployed
+ # for any project ci.
+
+ jobs:
+ - gerrit-maven-clm
+ - gerrit-maven-merge
+ - gerrit-maven-stage
+ - gerrit-maven-verify
+ - gerrit-maven-verify-dependencies
+
+- job-group:
+ name: '{project-name}-github-maven-jobs'
+
+ # This job group contains all the recommended jobs that should be deployed
+ # for any project ci that is using github.
+
+ jobs:
+ - github-maven-clm
+ - github-maven-merge
+ - github-maven-stage
+ - github-maven-verify
+
+- job-group:
+ name: '{project-name}-maven-javadoc-jobs'
+
+ # This job group contains all the recommended jobs that should be deployed
+ # for any project ci.
+
+ jobs:
+ - gerrit-maven-javadoc-publish
+ - gerrit-maven-javadoc-verify
+
+- job-group:
+ name: '{project-name}-github-maven-javadoc-jobs'
+
+ # This job group contains all the recommended jobs that should be deployed
+ # for any project ci.
+
+ jobs:
+ - github-maven-javadoc-publish
+ - github-maven-javadoc-verify
---
# This file contains job templates for Maven projects.
-- job-group:
- name: '{project-name}-maven-jobs'
-
- # This job group contains all the recommended jobs that should be deployed
- # for any project ci.
-
- jobs:
- - gerrit-maven-clm
- - gerrit-maven-merge
- - gerrit-maven-stage
- - gerrit-maven-verify
- - gerrit-maven-verify-dependencies
-
-- job-group:
- name: '{project-name}-github-maven-jobs'
-
- # This job group contains all the recommended jobs that should be deployed
- # for any project ci that is using github.
-
- jobs:
- - github-maven-clm
- - github-maven-merge
- - github-maven-stage
- - github-maven-verify
-
-- job-group:
- name: '{project-name}-maven-javadoc-jobs'
-
- # This job group contains all the recommended jobs that should be deployed
- # for any project ci.
-
- jobs:
- - gerrit-maven-javadoc-publish
- - gerrit-maven-javadoc-verify
-
-- job-group:
- name: '{project-name}-github-maven-javadoc-jobs'
-
- # This job group contains all the recommended jobs that should be deployed
- # for any project ci.
-
- jobs:
- - github-maven-javadoc-publish
- - github-maven-javadoc-verify
-
##########
# Macros #
##########
--- /dev/null
+---
+- job-group:
+ name: '{project-name}-github-node-jobs'
+
+ # Job group containing recommended jobs to deploy for a Node Project.
+
+ node-version: 6.11.4
+
+ jobs:
+ - github-node-verify
+
+- job-group:
+ name: '{project-name}-node-jobs'
+
+ # Job group containing recommended jobs to deploy for a Node Project.
+
+ node-version: 6.11.4
+
+ jobs:
+ - gerrit-node-verify
---
-- job-group:
- name: '{project-name}-github-node-jobs'
-
- # Job group containing recommended jobs to deploy for a Node Project.
-
- node-version: 6.11.4
-
- jobs:
- - github-node-verify
-
-- job-group:
- name: '{project-name}-node-jobs'
-
- # Job group containing recommended jobs to deploy for a Node Project.
-
- node-version: 6.11.4
-
- jobs:
- - gerrit-node-verify
###############
# Node Verify #
--- /dev/null
+---
+- job-group:
+ name: '{project-name}-python-jobs'
+
+ # This job group contains all the recommended jobs that should be deployed
+ # for any project ci that is using Gerrit.
+
+ jobs:
+ - gerrit-python-xc-clm
+ - gerrit-tox-verify
+
+- job-group:
+ name: '{project-name}-github-python-jobs'
+
+ # This job group contains all the recommended jobs that should be deployed
+ # for any project ci that is using GitHub.
+
+ jobs:
+ - github-python-xc-clm
+ - github-tox-verify
---
-- job-group:
- name: '{project-name}-python-jobs'
-
- # This job group contains all the recommended jobs that should be deployed
- # for any project ci that is using Gerrit.
-
- jobs:
- - gerrit-python-xc-clm
- - gerrit-tox-verify
-
-- job-group:
- name: '{project-name}-github-python-jobs'
-
- # This job group contains all the recommended jobs that should be deployed
- # for any project ci that is using GitHub.
-
- jobs:
- - github-python-xc-clm
- - github-tox-verify
##########
# Macros #
--- /dev/null
+---
+- job-group:
+ name: '{project-name}-rtd-jobs'
+
+ jobs:
+ - gerrit-rtd-merge
+ - gerrit-rtd-verify
+
+- job-group:
+ name: '{project-name}-github-rtd-jobs'
+
+ jobs:
+ - github-rtd-merge
+ - github-rtd-verify
---
-- job-group:
- name: '{project-name}-rtd-jobs'
-
- jobs:
- - gerrit-rtd-merge
- - gerrit-rtd-verify
-
-- job-group:
- name: '{project-name}-github-rtd-jobs'
-
- jobs:
- - github-rtd-merge
- - github-rtd-verify
####################
# COMMON FUNCTIONS #