summaryrefslogtreecommitdiffstats
path: root/jjb/dovetail/dovetail-ci-jobs.yaml
blob: 3e5c052f6200b7eb4df1e430509a50920fc62c7f (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
122
123
124
125
126
127
128
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#!/bin/bash
##############################################################################
# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################

# fit for arm64
DOCKER_ARCH="$(uname -m)"

UBUNTU_PORTS_URL="http://ports.ubuntu.com/ubuntu-ports/"
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
---
###################################
# job configuration for dovetail
###################################
- project:
    name: dovetail

    project: '{name}'

    # --------------------------------------
    # BRANCH ANCHORS
    # --------------------------------------
    # 1)the stream/branch here represents the SUT(System Under Test) stream/branch
    # 2)docker-tag is the docker tag of dovetail(only master by now, then all latest used)
    #   the dovetail stream is one-to-one mapping with dovetail docker-tag
    #   the dovetail is not sync with A/B/C release
    master: &master
      stream: master
      branch: '{stream}'
      dovetail-branch: '{stream}'
      gs-pathname: ''
      docker-tag: 'latest'
      disabled: true
    hunter: &hunter
      stream: hunter
      branch: 'stable/{stream}'
      dovetail-branch: 'master'
      gs-pathname: '/{stream}'
      docker-tag: 'latest'

    # ----------------------------------
    # POD, PLATFORM, AND BRANCH MAPPING
    # ----------------------------------
    #            CI PODs
    # This section should only contain the SUTs
    # that have been switched using labels for slaves
    # -----------------------------------------------
    # the pods, SUTs listed here are just examples to
    # let the dovetail tool run, there can be more ways beside CI to
    # run the dovetail tool.
    # pods, SUTs will be added/adjusted when needed
    pod:
      # fuel CI PODs
      - baremetal:
          slave-label: fuel-baremetal
          SUT: fuel
          auto-trigger-name: 'daily-trigger-disabled'
          <<: *master
      - virtual:
          slave-label: fuel-virtual
          SUT: fuel
          auto-trigger-name: 'daily-trigger-disabled'
          <<: *master
      - baremetal:
          slave-label: fuel-baremetal
          SUT: fuel
          auto-trigger-name: 'daily-trigger-disabled'
          <<: *hunter
      - virtual:
          slave-label: fuel-virtual
          SUT: fuel
          auto-trigger-name: 'daily-trigger-disabled'
          <<: *hunter
      # -------------------------------
      #    Installers not using labels
      #            CI PODs
      # This section should only contain the installers
      # that have not been switched using labels for slaves
      # -------------------------------
      # apex PODs
      - virtual:
          slave-label: apex-virtual-master
          SUT: apex
          auto-trigger-name: 'daily-trigger-disabled'
          <<: *master
      - baremetal:
          slave-label: apex-baremetal-master
          SUT: apex
          auto-trigger-name: 'daily-trigger-disabled'
          <<: *master
      - virtual:
          slave-label: apex-virtual-master
          SUT: apex
          auto-trigger-name: 'daily-trigger-disabled'
          <<: *hunter
      - baremetal:
          slave-label: apex-baremetal-master
          SUT: apex
          auto-trigger-name: 'daily-trigger-disabled'
          <<: *hunter
      # armband CI PODs
      - armband-baremetal:
          slave-label: armband-baremetal
          SUT: fuel
          auto-trigger-name: 'daily-trigger-disabled'
          <<: *master
      - armband-virtual:
          slave-label: armband-virtual
          SUT: fuel
          auto-trigger-name: 'daily-trigger-disabled'
          <<: *master
      # -------------------------------
      #        None-CI PODs
      # -------------------------------
      - zte-pod1:
          slave-label: zte-pod1
          SUT: fuel
          auto-trigger-name: 'daily-trigger-disabled'
          <<: *master
      - zte-pod2:
          slave-label: zte-pod2
          SUT: fuel
          auto-trigger-name: 'daily-trigger-disabled'
          <<: *master
      - zte-pod3:
          slave-label: zte-pod3
          SUT: fuel
          auto-trigger-name: 'daily-trigger-disabled'
          <<: *master

    # -------------------------------
    testsuite:
      - 'default'
      - 'proposed_tests'

    testarea:
      - 'mandatory'
      - 'optional'

    jobs:
      - 'dovetail-{SUT}-{pod}-{testsuite}-{stream}'
      - 'dovetail-{SUT}-{pod}-{testsuite}-{testarea}-{stream}'

################################
# job templates
################################
- job-template:
    name: 'dovetail-{SUT}-{pod}-{testsuite}-{stream}'

    disabled: false

    concurrent: true

    properties:
      - logrotate-default
      - throttle:
          enabled: true
          max-per-node: 1
          option: 'project'

    wrappers:
      - build-name:
          name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
      - timeout:
          timeout: 300
          abort: true
      - fix-workspace-permissions

    triggers:
      - '{auto-trigger-name}'

    parameters:
      - project-parameter:
          project: '{project}'
          branch: '{dovetail-branch}'
      - '{SUT}-defaults'
      - '{slave-label}-defaults'
      - string:
          name: DEPLOY_SCENARIO
          default: 'os-nosdn-nofeature-ha'
      - string:
          name: DOCKER_TAG
          default: '{docker-tag}'
          description: 'Tag to pull dovetail docker image'
      - string:
          name: CI_DEBUG
          default: 'true'
          description: "Show debug output information"
      - string:
          name: TESTSUITE
          default: '{testsuite}'
          description: "dovetail testsuite to run"
      - string:
          name: TESTAREA
          default: 'all'
          description: "dovetail testarea to run"
      - string:
          name: DOVETAIL_REPO_DIR
          default: "/home/opnfv/dovetail"
          description: "Directory where the dovetail repository is cloned"
      - string:
          name: SUT_BRANCH
          default: '{branch}'
          description: "SUT branch"

    scm:
      - git-scm

    builders:
      - description-setter:
          description: "POD: $NODE_NAME"
      - 'dovetail-cleanup'
      - 'dovetail-run'

    publishers:
      - archive:
          artifacts: 'results/**/*'
          allow-empty: true
          fingerprint: true
      - email-jenkins-admins-on-failure

- job-template:
    name: 'dovetail-{SUT}-{pod}-{testsuite}-{testarea}-{stream}'

    disabled: false

    concurrent: true

    properties:
      - logrotate-default
      - throttle:
          enabled: true
          max-per-node: 1
          option: 'project'

    wrappers:
      - build-name:
          name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
      - timeout:
          timeout: 300
          abort: true
      - fix-workspace-permissions

    triggers:
      - '{auto-trigger-name}'

    parameters:
      - project-parameter:
          project: '{project}'
          branch: '{dovetail-branch}'
      - '{SUT}-defaults'
      - '{slave-label}-defaults'
      - string:
          name: DEPLOY_SCENARIO
          default: 'os-nosdn-nofeature-ha'
      - string:
          name: DOCKER_TAG
          default: '{docker-tag}'
          description: 'Tag to pull dovetail docker image'
      - string:
          name: CI_DEBUG
          default: 'true'
          description: "Show debug output information"
      - string:
          name: TESTSUITE
          default: '{testsuite}'
          description: "dovetail testsuite to run"
      - string:
          name: TESTAREA
          default: '{testarea}'
          description: "dovetail testarea to run"
      - string:
          name: DOVETAIL_REPO_DIR
          default: "/home/opnfv/dovetail"
          description: "Directory where the dovetail repository is cloned"
      - string:
          name: SUT_BRANCH
          default: '{branch}'
          description: "SUT branch"

    scm:
      - git-scm

    builders:
      - description-setter:
          description: "POD: $NODE_NAME"
      - 'dovetail-cleanup'
      - 'dovetail-run'

    publishers:
      - archive:
          artifacts: 'results/**/*'
          allow-empty: true
          fingerprint: true
      - email-jenkins-admins-on-failure

# -------------------------
# builder macros
# -------------------------
- builder:
    name: dovetail-run
    builders:
      - shell:
          !include-raw: ./dovetail-run.sh

- builder:
    name: dovetail-cleanup
    builders:
      - shell:
          !include-raw: ./dovetail-cleanup.sh