aboutsummaryrefslogtreecommitdiff
path: root/leg-openstack-tempest.yaml
blob: f052664e5254ca48d3926a42ff64b3d65b9cc08a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
- job:
    name: leg-openstack-tempest
    project-type: matrix
    defaults: global
    logrotate:
        daysToKeep: 30
        numToKeep: 30
    properties:
        - authorization:
            anonymous:
                - job-read
                - job-extended-read
                - job-workspace
            linaro:
                - job-read
                - job-extended-read
                - job-build
                - job-cancel
    parameters:
        - string:
            name: BUNDLE_STREAM_NAME
            default: '/public/team/openstack/tempest-ci/'
        - string:
            name: LAVA_SERVER
            default: 'openstack.validation.linaro.org/RPC2/'
        - string:
            name: LAVA_JOB_DEFINITION
            default: 'configs/leg-openstack-tempest/lava-job-definitions/${DEVICE_TYPE}/template-tempest.yaml'
    disabled: false
    node: build
    child-workspace: .
    display-name: 'LEG - Openstack Tempest'
    axes:
        - axis:
            type: user-defined
            name: DEVICE_TYPE
            values:
              - mustang
        - axis:
            type: user-defined
            name: OS_DISTRO
            values:
              - ubuntu
        - axis:
            type: user-defined
            name: OS_VERSION
            values:
              - wily
              - trusty
              - vivid
        - axis:
            type: user-defined
            name: DEVSTACK_BRANCH
            values:
              - master
              - stable/liberty
    execution-strategy:
        combination-filter: |
          !((OS_VERSION=="vivid" || OS_VERSION=="wily") && DEVSTACK_BRANCH=="stable/kilo")
        sequential: true
    triggers:
        - timed: '0 22 * * *'
    wrappers:
        - timestamps
        - matrix-tie-parent:
            node: build
    builders:
        - shell: |
            #!/bin/bash

            set -ex

            rm -rf configs lci-build-tools
            git clone --depth 1 http://git.linaro.org/ci/lci-build-tools.git
            git clone --depth 1 http://git.linaro.org/ci/job/configs.git

            # FIXME: regression introduced with commit 00a22059
            wget https://git.linaro.org/ci/lci-build-tools.git/blob_plain/3d23206c4afe0213d8f05b669a8213e7b26903cc:/yaml-to-json.py -O lci-build-tools/yaml-to-json.py

            # Update the template based on the specified os distro
            case "${OS_DISTRO}" in
              ubuntu)
                case "${OS_VERSION}" in
                  trusty)
                    echo "using older image"
                    LAVA_CLOUD_IMG_URL="http://cloud-images.ubuntu.com/releases/trusty/release-20150305/ubuntu-14.04-server-cloudimg-arm64-disk1.img"
                    ;;
                  vivid)
                    echo "using older image"
                    LAVA_CLOUD_IMG_URL="http://cloud-images.ubuntu.com/releases/vivid/release-20150707/ubuntu-15.04-server-cloudimg-arm64-disk1.img"
                    ;;
                  *)
                    LAVA_CLOUD_IMG_URL="http://cloud-images.ubuntu.com/${OS_VERSION}/current/${OS_VERSION}-server-cloudimg-arm64-disk1.img"
                    ;;
                esac
                echo "cloud image for ${OS_VERSION}: ${LAVA_CLOUD_IMG_URL}"
                # The template needs to be updated to specify the correct cloud image to
                # pull. This must be done BEFORE calling yaml-to-json.py!
                sed -i "s|\${LAVA_CLOUD_IMG_URL}|${LAVA_CLOUD_IMG_URL}|" ${LAVA_JOB_DEFINITION}
                ;;
            esac

            # Update the metadata fields in the template
            sed -e "s|\${DEVSTACK_BRANCH}|${DEVSTACK_BRANCH}|" \
                -e "s|\${OS_DISTRO}|${OS_DISTRO}|" \
                -e "s|\${OS_VERSION}|${OS_VERSION}|" \
                < ${LAVA_JOB_DEFINITION} \
                > ${LAVA_JOB_DEFINITION}.new

            ./lci-build-tools/yaml-to-json.py ${LAVA_JOB_DEFINITION}.new > custom_lava_job_definition.json

            cat << EOF > post_build_lava_parameters
            DEVICE_TYPE=${DEVICE_TYPE}
            BUNDLE_STREAM_NAME=${BUNDLE_STREAM_NAME}
            CUSTOM_JSON_URL=${JOB_URL}/ws/custom_lava_job_definition.json
            LAVA_SERVER=${LAVA_SERVER}
            EOF
        - trigger-builds:
            - project: 'post-build-lava'
              property-file: post_build_lava_parameters
              block: true