aboutsummaryrefslogtreecommitdiff
path: root/odpi-bigtop-rpm.yaml
blob: bfb6556d0ce423bb30bc8ae1f131ac905fc774da (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
- job:
    name: odpi-bigtop-rpm
    project-type: freestyle
    defaults: global
    logrotate:
        daysToKeep: 30
        numToKeep: 30
        artifactNumToKeep: 1
    properties:
        - authorization:
            anonymous:
                - job-read
                - job-extended-read
    parameters:
        - string:
            name: ANT_OPTS
            default: '-Xmx8G -XX:MaxPermSize=1G'
        - string:
            name: MAVEN_OPTS
            default: '-Xmx8G -XX:MaxPermSize=1G'
        - string:
            name: JDK_URL
            default: 'http://openjdk.linaro.org/releases/jdk7-server-release-1511.tar.xz'
        - string:
            name: MAVEN_URL
            default: 'http://www.us.apache.org/dist/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz'
        - string:
            name: SCALA_URL
            default: 'http://downloads.typesafe.com/scala/2.11.7/scala-2.11.7.tgz'
        - string:
            name: NODE_URL
            default: 'https://nodejs.org/dist/v4.2.1/node-v4.2.1.tar.gz'
        - string:
            name: PROTOBUF_URL
            default: 'https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz'
    disabled: false
    node: docker-centos7-aarch64
    display-name: 'ODPi BigTop (rpm)'
    wrappers:
        - timestamps
    builders:
        - shell: |
            #!/bin/bash

            set -ex

            # number of CPU_CORES to build with
            export CPU_CORES=$(getconf _NPROCESSORS_ONLN)

            # install pre-requisites
            sudo yum install -y \
              apache-ivy \
              ant \
              asciidoc \
              chrpath \
              cmake \
              cppunit-devel \
              cyrus-sasl-devel \
              fuse \
              fuse-devel \
              gcc-c++ \
              krb5-devel \
              libtool \
              libxml2-devel \
              libxslt-devel \
              libyaml-devel \
              libzip-devel \
              lzo-devel \
              make \
              mariadb-devel \
              openldap-devel \
              openssl-devel \
              pkgconfig \
              python-devel \
              python-setuptools \
              rpm-build \
              rsync \
              sharutils \
              sqlite-devel \
              subversion \
              unzip \
              wget \
              xmlto

            # download OpenJDK 7 and Maven 3.0.5 explicitely
            wget --progress=dot -e dotbytes=2M ${JDK_URL} ${MAVEN_URL} ${SCALA_URL} ${NODE_URL} ${PROTOBUF_URL}
            tar -Jxf jdk*.tar.xz
            tar -zxf apache-maven-*.tar.gz
            tar -zxf scala-*.tgz
            tar -zxf node-*.tar.gz
            tar -zxf protobuf-*.tar.gz

            # replace cacerts with distro-supplied
            cd jdk*/jre/lib/security/
            rm -f cacerts
            ln -s /etc/ssl/certs/java/cacerts

            # set JAVA_HOME
            cd ${WORKSPACE}/jdk*
            export JAVA_HOME=${PWD}

            # set M3_HOME
            cd ${WORKSPACE}/apache-maven-*
            export M3_HOME=${PWD}

            # hack to use archiva
            wget -q http://people.linaro.org/~fathi.boudra/settings.xml -O conf/settings.xml
            mkdir ~/.m2
            cp -a conf/settings.xml ~/.m2/settings.xml

            # set SCALA_HOME
            cd ${WORKSPACE}/scala-*
            export SCALA_HOME=${PWD}

            # set PATH
            export PATH=${JAVA_HOME}/bin:${M3_HOME}/bin:${PATH}
            java -version
            mvn -version

            # build and hookup nodejs
            cd ${WORKSPACE}/node-*
            ./configure --prefix=${WORKSPACE}/node
            make -j${CPU_CORES} install
            export PATH=${WORKSPACE}/node/bin/:${PATH}

            # build and hookup protobuf compiler
            cd ${WORKSPACE}/protobuf-*
            ./configure --prefix=${WORKSPACE}/protobuf
            make -j${CPU_CORES} install
            export PATH=${WORKSPACE}/protobuf/bin:${PATH}
            export PKG_CONFIG_PATH=${WORKSPACE}/protobuf/lib/pkgconfig

            # clone the ODPi BigTop definitions
            git clone --depth 1 https://git.linaro.org/people/steve.capper/odpi-bigtop.git ${WORKSPACE}/odpi-bigtop
            cd ${WORKSPACE}/odpi-bigtop

            # okay everything is in place, this build will take a while
            ./gradlew rpm
    publishers:
        - archive:
            artifacts: 'odpi-bigtop/output/**'