Make a working publisher for Windows builds
[releng/global-jjb.git] / jjb / lf-macros.yaml
index 2e3a857..4f5951f 100644 (file)
 - builder:
     name: lf-infra-packer-build
     builders:
+      - conditional-step:
+          condition-kind: boolean-expression
+          condition-expression: '{openstack}'
+          steps:
+            - config-file-provider:
+                files:
+                  - file-id: clouds-yaml
+                    target: '$HOME/.config/openstack/clouds.yaml'
+            - inject:
+                properties-content: OS_CLOUD={openstack-cloud}
       - config-file-provider:
           files:
             - file-id: '{packer-cloud-settings}'
 - builder:
     name: lf-infra-packer-validate
     builders:
+      - conditional-step:
+          condition-kind: boolean-expression
+          condition-expression: '{openstack}'
+          steps:
+            - config-file-provider:
+                files:
+                  - file-id: clouds-yaml
+                    target: '$HOME/.config/openstack/clouds.yaml'
+            - inject:
+                properties-content: OS_CLOUD={openstack-cloud}
       - config-file-provider:
           files:
             - file-id: '{packer-cloud-settings}'
-              variable: 'CLOUDENV'
+              variable: CLOUDENV
       - inject:
           properties-content: |
               PACKER_VERSION={packer-version}
     builders:
       - inject:
           properties-content: DOC_DIR={doc-dir}
-      - shell: !include-raw-escape:
-          - ../shell/tox-install.sh
-          - ../shell/rtd-verify.sh
+      - shell: !include-raw-escape: ../shell/tox-install.sh
+      - shell: !include-raw-escape: ../shell/rtd-verify.sh
 
 - builder:
     name: lf-sigul-sign-dir
             - '**/*.jenkins-trigger'
           fail-build: false
 
+- publisher:
+    name: lf-infra-publish-windows
+    # lf-infra macro to finish up a build.
+    #
+    # Handles the following:
+    #   - Shipping logs to Nexus logs site repository
+    #   - Cleanup workspace
+    publishers:
+      # TODO: RELENG-1228 Develop log shipping script for Windows systems
+      # - postbuildscript:
+      #     builders:
+      #       - role: BOTH
+      #         build-on:
+      #           - ABORTED
+      #           - FAILURE
+      #           - NOT_BUILT
+      #           - SUCCESS
+      #           - UNSTABLE
+      #         build-steps:
+      #           - lf-infra-ship-logs-windows
+      #     mark-unstable-if-failed: true
+      - workspace-cleanup:
+          exclude:
+            # Do not clean up *.jenkins-trigger files for jobs that use a
+            # properties file as input for triggering another build.
+            - '**/*.jenkins-trigger'
+          fail-build: false
+
+- publisher:
+    name: lf-stack-delete
+    publishers:
+      - postbuildscript:
+          builders:
+            - role: BOTH
+              build-on:
+                - ABORTED
+                - FAILURE
+                - SUCCESS
+                - UNSTABLE
+              build-steps:
+                - shell: |
+                    #!/bin/bash -l
+                    echo "Deleting $STACK_NAME"
+                    lftools openstack stack delete "$STACK_NAME"
+          mark-unstable-if-failed: false
+
 #######
 # SCM #
 #######
 ############
 
 - wrapper:
-    name: lf-infra-wrappers
+    name: lf-infra-wrappers-common
     wrappers:
       - mask-passwords
       - timeout:
           timeout-var: 'BUILD_TIMEOUT'
           fail: true
       - timestamps
-      - ssh-agent-credentials:
-          users:
-            - '{jenkins-ssh-credential}'
       - openstack:
           single-use: true
+
+- wrapper:
+    name: lf-infra-wrappers
+    wrappers:
+      - lf-infra-wrappers-common:
+          build-timeout: '{build-timeout}'
       - config-file-provider:
           files:
             - file-id: npmrc
               target: '$HOME/.npmrc'
             - file-id: pipconf
               target: '$HOME/.config/pip/pip.conf'
+      - ssh-agent-credentials:
+          users:
+            - '{jenkins-ssh-credential}'
+
+- wrapper:
+    name: lf-infra-wrappers-windows
+    wrappers:
+      - lf-infra-wrappers-common:
+          build-timeout: '{build-timeout}'