aboutsummaryrefslogtreecommitdiff
path: root/jdk9-build-image.yaml
blob: 9d1500b6438e611eec6af65c45278a20ee222bfb (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
- job:
    name: jdk9-build-image
    project-type: matrix
    defaults: global
    description: |
        * Configures and builds jdk9 (ie, bin/java, bin/javac, et al) for various configurations.<br>
        * The source tarball is copied from the jdk9-update-src-tree job.<br>
        * <b>Note:</b> we are no longer building -fastdebug variants as there is not enough time to test the images.
    logrotate:
        numToKeep: 10
        artifactNumToKeep: 1
    properties:
        - authorization:
            anonymous:
                - job-read
                - job-extended-read
    disabled: false
    node: aarch64-06
    display-name: 'OpenJDK 9 - Configure and build OpenJDK 9'
    axes:
        - axis:
            type: user-defined
            name: JVM_VARIANT
            values:
                - server
#                - client
        - axis:
            type: user-defined
            name: BUILD_TYPE
            values:
                - release
        - axis:
            type: slave
            name: label
            values:
                - aarch64-06
    execution-strategy:
        sequential: true
    wrappers:
        - workspace-cleanup:
            dirmatch: false
        - timestamps
        - matrix-tie-parent:
            node: aarch64-06
    builders:
        - copyartifact:
            project: jdk9-update-src-tree
            filter: 'out/jdk9.tar.gz'
            target: incoming
            flatten: true
        - copyartifact:
            project: archive-primordial-jdk8
            filter: 'out/primordial-jdk8.tar.gz'
            target: incoming
            flatten: true
        - shell: |
            #!/bin/bash

            set -exu

            #export CCACHE_DIR=~/.ccache-${JVM_VARIANT}-${BUILD_TYPE}
            #ccache -M 1G
            #ccache -s

            ccache_build_opts=--disable-ccache

            # Extract sources from upstream job
            rm -rf jdk9
            tar xf incoming/jdk9.tar.gz

            shopt -s nullglob

            # Extract boot jdk
            rm -rf primordial-jdk8
            tar xf incoming/primordial-jdk8.tar.gz

            # Configure and build.
            rm -rf build*
            mkdir -p build-stage1 build-stage2

            two_stage_build=0

            which java
            java -version

            if [ $two_stage_build = 1 ]; then
              pushd build-stage1
              sh ../jdk9/configure --with-jvm-variants=${JVM_VARIANT} --with-debug-level=${BUILD_TYPE} --with-boot-jdk=${WORKSPACE}/primordial-jdk8 ${ccache_build_opts}
              make images
              popd

              pushd build-stage2
              sh ../jdk9/configure --with-jvm-variants=${JVM_VARIANT} --with-debug-level=${BUILD_TYPE} --with-boot-jdk=${WORKSPACE}/build-stage1/images/j2sdk-image ${ccache_build_opts}
              make images
              popd
            else
              pushd build-stage2
              sh ../jdk9/configure --with-jvm-variants=${JVM_VARIANT} --with-debug-level=${BUILD_TYPE} ${ccache_build_opts}
              make images
              popd
            fi

            # Archive the result
            rm -rf out
            mkdir out
            artifact_name=jdk9-${JVM_VARIANT}-${BUILD_TYPE}
            tar -C build-stage2/images/jdk --exclude=\*.diz --transform="s!^./!$artifact_name/!" -acf out/${artifact_name}.tar.gz .
    publishers:
        - archive:
            artifacts: 'out/*.tar.gz'
        - email:
            recipients: 'edward.nevill@linaro.org stuart.monteith@linaro.org fathi.boudra@linaro.org'