aboutsummaryrefslogtreecommitdiff
path: root/jtreg-build.yaml
blob: 3507723e10764fbc2a6534e63d139072cde79906 (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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
- scm:
   name: jtreg
   scm:
    - hg:
        url: http://hg.openjdk.java.net/code-tools/jtreg/
        clean: true
        browser: hgweb
        browser-url: http://hg.openjdk.java.net/code-tools/jtreg/
        subdir: jtreg
- scm:
   name: asmtools
   scm:
    - hg:
        url: http://hg.openjdk.java.net/code-tools/asmtools/
        clean: true
        browser: hgweb
        browser-url: http://hg.openjdk.java.net/code-tools/asmtools/
        subdir: asmtools
- job:
    name: jtreg-build
    project-type: freestyle
    defaults: global
    description: |
        * Build JDK Regression Test Harness (jtreg).
    properties:
        - authorization:
            anonymous:
                - job-read
                - job-extended-read
            openjdk-members:
                - job-build
                - job-cancel
                - job-workspace
        - build-discarder:
            days-to-keep: 30
            num-to-keep:  10
            artifact-num-to-keep: 5
    disabled: false
    node: aarch64-06
    display-name: 'OpenJDK - Build JDK Regression Test Harness (jtreg)'
    scm:
        - asmtools
        - jtreg
    triggers:
        - pollscm:
            cron: 'H/5 * * * *'
    wrappers:
        - timestamps
    builders:
        - shell: |
            #!/bin/bash

            set -eu

            # Build asmtools for jtreg.
            cd asmtools

            ant -f build/build.xml

            cd ../jtreg

            unzip -o ../asmtools-6.0-build/dist/asmtools-6.0.zip

            if [ ! -d jtharness ]; then
              wget https://adopt-openjdk.ci.cloudbees.com/job/jtharness/lastSuccessfulBuild/artifact/jtharness-5.0.tar.gz
              tar xzf jtharness-5.0.tar.gz jtharness/lib
            fi

            if [ ! -d junit ]; then
              mkdir junit
              wget http://repo1.maven.org/maven2/junit/junit/4.8.2/junit-4.8.2.jar -O junit/junit.jar
            fi

            if [ ! -d testng ]; then
              mkdir testng
              wget http://repo1.maven.org/maven2/org/testng/testng/6.9.5/testng-6.9.5.jar -O testng/testng.jar
            fi

            if [ ! -d jcommander ]; then
              mkdir jcommander
              wget http://repo1.maven.org/maven2/com/beust/jcommander/1.48/jcommander-1.48.jar -O jcommander/jcommander.jar
            fi

            ls -lash

            rm -fr build
            rm -fr dist

            which java
            java -version

            # Pick out version automatically from Mercurial tags.
            JTREG_TAG=$(hg log -r "." --template "{latesttag}\n")
            BUILD_VERSION=$(echo $JTREG_TAG | sed 's,jtreg\([0-9]*\.[0-9]*\)-b.*,\1,')
            BUILD_NUMBER=$(echo $JTREG_TAG | sed 's,jtreg[0-9]*\.[0-9]*-\(b[0-9]*\),\1,')

            MAJOR=$(echo $BUILD_VERSION | sed 's,\([0-9]*\)\.[0-9]*,\1,')
            MINOR=$(echo $BUILD_VERSION | sed 's,[0-9]*\.\([0-9]*\),\1,')


            # BUILD_VERSION=4.2
            # BUILD_NUMBER=b03
            echo jtreg$BUILD_VERSION-$BUILD_NUMBER

            # syntax of the -target and -source command have changed with jdk9
            sed -i 's|1.8|8|g' make/build.xml

            # Parameters for makefile build, which includes asmtools.jar in
            # classpath in manifest.
            # java and ant's home directories are found from the commands.
            export JDK17HOME=$(dirname $(java -XshowSettings:properties |& \
                 grep java.home |  sed 's,^.*java.home = \(.*\),\1,'))
            export JAVAHELP_HOME=$PWD/jtharness
            export JAVAHELP_JAR=$PWD/jtharness/lib/jh.jar
            export JAVATEST_HOME=$PWD/jtharness
            export JAVATEST_JAR=$PWD/jtharness/lib/javatest.jar
            export JAVAHARNESS_HOME=$PWD/jtharness
            export ASMTOOLS_HOME=$PWD/asmtools-6.0
            export TESTNG_HOME=$PWD/testng
            export TESTNG_JAR=$PWD/testng/testng.jar
            export JUNIT_JAR=$PWD/junit/junit.jar
            export ANTHOME=$(ant -diagnostics | grep ant.home | \
                sed 's,^.*: \(.*\),\1,' | uniq)


            # Makefile expects files that are not supplied from the packages we
            # are downloading. Create dummy versions to keep it happy.
            touch $JAVAHARNESS_HOME/COPYRIGHT-javatest.html
            mkdir -p $JAVAHARNESS_HOME/doc/javatest/
            touch $JAVAHARNESS_HOME/doc/javatest/javatestGUI.pdf
            touch $TESTNG_HOME/LICENSE.txt

            make -C make

            rm -f *.zip
            rm -f *.tar.gz

            cp jcommander/jcommander.jar ./build/images/jtreg/lib
            chmod u+x ./build/images/jtreg/bin/*

            ls -lash

            : ${MAJOR:=4}
            : ${MINOR:=2}
            : ${MICRO:=0}
            : ${VERSION_SUFFIX:=SNAPSHOT}
            : ${JOB_NAME:=jtreg}
            : ${ZIP_TYPE:=xz}

            artifact=${JOB_NAME}-${MAJOR}.${MINOR}.${MICRO}-${VERSION_SUFFIX}

            cd ./build/images
            tar afcv $artifact.tar.${ZIP_TYPE} jtreg
            mv $artifact.tar.${ZIP_TYPE} ../../..
            cd ..
    publishers:
        - archive:
            artifacts: 'jtreg-build-*-SNAPSHOT.tar.xz'
        - email:
            recipients: 'stuart.monteith@linaro.org fathi.boudra@linaro.org'