summaryrefslogtreecommitdiffstats
path: root/jjb/csit/csit-tox.yaml
blob: 725d2ff01dbaa3f8cfd2dc7bf1f72689e06ab872 (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
# Copyright (c) 2021 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

---
- project:
    name: csit-validate

    jobs:
      - 'csit-verify-tox-{stream}-{os}-{executor-arch}'

    project: 'csit'
    branch: 'master'
    os: 'ubuntu2004'
    executor-arch: 'x86_64'
    stream:
      - master:
          branch: 'master'
      - '2009':
          branch: 'rls2009'
      - '2009_lts':
          branch: 'rls2009_lts'
      - '2101':
          branch: 'rls2101'
      - '2106':
          branch: 'rls2106'

- job-template:
    name: 'csit-verify-tox-{stream}-{os}-{executor-arch}'

    project-type: freestyle
    node: 'builder-{os}-prod-{executor-arch}'
    concurrent: true
    archive-artifacts: '*.log'
    latest-only: false

    build-discarder:
      daysToKeep: '{build-days-to-keep}'
      numToKeep: '{build-num-to-keep}'
      artifactDaysToKeep: '{build-artifact-days-to-keep}'
      artifactNumToKeep: '{build-artifact-num-to-keep}'

    parameters:
      - project-parameter:
          project: '{project}'
      - gerrit-parameter:
          branch: '{branch}'
      - gerrit-refspec-parameter
      - string:
          name: ARCHIVE_ARTIFACTS
          default: '{archive-artifacts}'
          description: Artifacts to archive to the logs server.

    scm:
      - gerrit-trigger-scm:
          credentials-id: 'jenkins-gerrit-credentials'
          refspec: '$GERRIT_REFSPEC'
          choosing-strategy: 'gerrit'

    wrappers:
      - fdio-infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # Tox trigger is special.
      - gerrit:
          server-name: 'Primary'
          trigger-on:
            - patchset-created-event:
                exclude-drafts: 'true'
                exclude-trivial-rebase: 'false'
                exclude-no-code-change: 'false'
            # Not enabling on draft published event.
            # Frequently, people publish for public access, not fr verify.
            # Use recheck comment to trigger verify.
            - comment-added-contains-event:
                comment-contains-value: 'recheck'
            - comment-added-contains-event:
                comment-contains-value: 'reverify'
          projects:
            - project-compare-type: 'ANT'
              project-pattern: '{project}'
              branches:
                - branch-compare-type: 'ANT'
                  branch-pattern: '**/{branch}'
          override-votes: true
          gerrit-build-notbuilt-verified-value: 0
          gerrit-build-successful-verified-value: 1
          failed-message: 'Tox failed. No further verify jobs will be started.'
          successful-message: 'tox_success'
          skip-vote:
            successful: true
            failed: false
            unstable: false
            notbuilt: false

    builders:
      - shell:
          !include-raw-escape:
          - ../scripts/setup_executor_env.sh
      - shell:
          !include-raw-escape:
          - ../scripts/csit/tox.sh

    publishers:
      # TODO: Remove this when a voting pylint difference checker
      # with nice enough output is implemented.
      - violations:
          pylint:
            min: 10
            max: 250
            unstable: 250
            pattern: 'pylint.log'
      - fdio-infra-publish