aboutsummaryrefslogtreecommitdiff
path: root/art-tip-build-hosttest.yaml
blob: 60827bd9c8ebdc4636934962be3aaff4383fc047 (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
- job:
    name: art-tip-build-hosttest
    project-type: freestyle
    defaults: global
    properties:
        - authorization:
            anonymous:
                - job-discover
            linaro-android-builders:
                - job-read
                - job-extended-read
                - job-workspace
            linaro-art:
                - job-build
                - job-read
                - job-extended-read
                - job-workspace
        - build-discarder:
            days-to-keep: 60
            num-to-keep: 60
    parameters:
        - string:
            name: BUILD_CONFIG_REPO
            default: 'git://android.git.linaro.org/android-build-configs.git'
        - string:
            name: BUILD_CONFIG_BRANCH
            default: 'master'
        - string:
            name: BUILD_CONFIG_FILENAME
            default: 'linaro-art-tip-aosp_arm64'
        - string:
            name: CURRENT_FAILING_ART_TESTS
            default:
        - password:
            name: PRIVATE_KEY
            default: ${PRIVATE_KEY}
    disabled: false
    node: docker-utopic-art
    display-name: 'ART - Tip - Test Host'
    concurrent: true
    triggers:
        - gerrit:
            server-name: 'dev-private-review.linaro.org'
            trigger-on:
                - patchset-created-event
            projects:
                - project-compare-type: 'PLAIN'
                  project-pattern: 'linaro-art/platform/build'
                  branches:
                      - branch-pattern: 'master'
                - project-compare-type: 'PLAIN'
                  project-pattern: 'linaro-art/platform/art'
                  branches:
                      - branch-pattern: 'master'
                - project-compare-type: 'PLAIN'
                  project-pattern: 'linaro-art/platform/external/vixl'
                  branches:
                      - branch-pattern: 'master'
        - gerrit:
            server-name: 'dev-private-review.linaro.org'
            trigger-on:
                - change-merged-event
            projects:
                - project-compare-type: 'PLAIN'
                  project-pattern: 'linaro-art/platform/art'
                  branches:
                      - branch-pattern: 'master'
    wrappers:
        - timestamps
        - timeout:
            timeout: 500
    builders:
        - shell: |
            #!/bin/bash

            # Build scripts
            ANDROID_BUILD_DIR="${HOME}/srv/${JOB_NAME}/android"
            ART_BUILD_SCRIPTS_DIR="${WORKSPACE}/art-build-scripts"
            git clone https://android-git.linaro.org/git/linaro-art/art-build-scripts.git ${ART_BUILD_SCRIPTS_DIR}

            # Private key
            wget https://git.linaro.org/people/daniel.diaz/ci/misc-utils.git/blob_plain/HEAD:/add-private-key.sh
            source add-private-key.sh

            cd ${ART_BUILD_SCRIPTS_DIR}/jenkins
            ./setup_host.sh
            ./setup_android.sh

            cd ${ANDROID_BUILD_DIR}
            ${ART_BUILD_SCRIPTS_DIR}/test_art_host.sh

            echo "Build finished"
    publishers:
        - archive:
            artifacts: '*.txt, *.xml'
        - logparser:
            parse-rules: 'Android-ART Build'
            unstable-on-warning: false
            fail-on-error: false
        - groovy-postbuild:
            script: |
              import hudson.model.*
              def currentBuild = Thread.currentThread().executable
              def description = ""
              def matcher = manager.getLogMatcher(".*repo sync failed.*")
              if ( matcher?.matches()) {
                  manager.addShortText("repo sync failed")
              }
              matcher = manager.getLogMatcher(".*patch merge failed.*")
              if ( matcher?.matches()) {
                  manager.addShortText("merge failed")
              }

              matcher = manager.getLogMatcher(".* tests have failed")
               if (matcher?.matches()) {
                  def test =matcher.group(0).split(" ")
                  manager.listener.logger.println test.length
                  i=0
                  while( i<test.length-3) {
                       description+="${test[i]} failed<br>"
                       i++;
                  }
              currentBuild.setDescription(description)
              manager.addShortText("Tests failed")
              }
        - naginator:
            rerun-unstable-builds: true
            max-failed-builds: 1