Merge "Fix literal code-block formatting"
[releng/global-jjb.git] / jjb / lf-ci-jobs.yaml
index 733def5..620783f 100644 (file)
           name: JJB_VERSION
           default: '{jjb-version}'
           description: Jenkins Job Builder version to download and install.
+      - string:
+          name: XDG_CACHE_HOME
+          default: '{jjb-cache}'
+          description: Jenkins Job Builder cache location.
 
 - parameter:
     name: lf-packer-parameters
     build-timeout: 10
     disable-job: false
     github-url: 'https://github.com'
+    jjb-cache: '$HOME/.cache/jenkins_jobs'
     jjb-version: 2.2.1
     stream: master
     submodule-recursive: true
           branch: '{branch}'
           lftools-version: '{lftools-version}'
       - lf-infra-jjb-parameters:
+          jjb-cache: '{jjb-cache}'
           jjb-version: '{jjb-version}'
 
     wrappers:
 
     parameters:
       - lf-infra-jjb-parameters:
+          jjb-cache: '{jjb-cache}'
           jjb-version: '{jjb-version}'
 
     triggers:
     branch: master
     build-days-to-keep: 7
     build-timeout: 10
-    cron: '@daily'
+    cron: '@hourly'
     disable-job: false
     git-url: '$GIT_URL/$PROJECT'
     github-url: 'https://github.com'
     openstack-cloud: vex
+    openstack-image-cleanup: true
+    openstack-image-cleanup-age: 30
+    openstack-image-protect: true
+    openstack-server-cleanup: true
+    openstack-stack-cleanup: true
+    openstack-volume-cleanup: true
     stream: master
     submodule-timeout: 10
 
           stream: '{stream}'
           branch: '{branch}'
           lftools-version: '{lftools-version}'
+      - string:
+          name: JENKINS_URLS
+          default: '{jenkins-urls}'
+          description: |
+              Space separated list of Jenkins URLs to check for active builds.
 
     wrappers:
       - lf-infra-wrappers:
       - lf-infra-pre-build
       - inject:
           properties-content: OS_CLOUD={openstack-cloud}
-      - shell: !include-raw-escape: ../shell/openstack-protect-in-use-images.sh
+      # Stacks
+      - conditional-step:
+          condition-kind: boolean-expression
+          condition-expression: '{openstack-stack-cleanup}'
+          steps:
+            - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-stacks.sh
+      # Servers
+      - conditional-step:
+          condition-kind: boolean-expression
+          condition-expression: '{openstack-server-cleanup}'
+          steps:
+            - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-servers.sh
+      # Volumes
+      - conditional-step:
+          condition-kind: boolean-expression
+          condition-expression: '{openstack-volume-cleanup}'
+          steps:
+            - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-volumes.sh
+      # Images
+      - conditional-step:
+          condition-kind: boolean-expression
+          condition-expression: '{openstack-image-protect}'
+          steps:
+            - shell: !include-raw-escape: ../shell/openstack-protect-in-use-images.sh
+      - conditional-step:
+          condition-kind: boolean-expression
+          condition-expression: '{openstack-image-cleanup}'
+          steps:
+            - inject:
+                properties-content: OS_IMAGE_CLEANUP_AGE={openstack-image-cleanup-age}
+            - shell: !include-raw-escape: ../shell/openstack-cleanup-old-images.sh
 
     publishers:
       - lf-infra-publish