aboutsummaryrefslogtreecommitdiff
path: root/build-odp-rpm.yaml
blob: 043f15914d35a2ce6b61afb39e3b3816f5cbfda5 (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
- job:
    name: build-odp-rpm
    project-type: matrix
    defaults: global
    logrotate:
        daysToKeep: 30
        numToKeep: 30
    properties:
        - authorization:
            anonymous:
                - job-read
                - job-extended-read
            linaro:
                - job-read
                - job-extended-read
                - job-build
                - job-cancel
    node: master
    disabled: false
    display-name: 'Build RPM for opendataplane.org'
    scm:
        - git:
            url: https://git.linaro.org/lng/odp.git
            refspec: +refs/heads/master:refs/remotes/origin/master
            name: origin
            branches:
                - refs/heads/master
            basedir: odp
            skip-tag: true
            shallow-clone: false
            wipe-workspace: false
    axes:
        - axis:
            type: slave
            name: label
            values:
                - docker-centos7-aarch64
                - docker-fedora23-aarch64
    wrappers:
        - timestamps
        - build-name:
            name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}'
        - matrix-tie-parent:
            node: master
    builders:
        - shell: |
            #!/bin/bash
            set -ex
            cat > repo.parameters << EOF
            build_success=false
            EOF


            . /etc/os-release
            dist=${ID}-${VERSION_ID}
            sudo yum install -y wget git rpm-build yum-utils make

            pkg_source=odp
            cd ${pkg_source}

            # Create tarball
            base_version=$(git describe --long --match='v*' | sed -e 's/^v//' | cut -d'-' -f1)
            nb_commit=$(git describe --long --match='v*' | sed -e 's/^v//' | cut -d'-' -f2)
            scm_commit=$(git log -n1 --pretty=format:%h)
            pkg_version=${base_version}+git${nb_commit}+${scm_commit}
            pkg_dir=${pkg_source}-${pkg_version}

            git archive --format=tar.gz --prefix=${pkg_dir}/ origin/master > ../${pkg_dir}.tar.gz

            cd ..

            # download spec file
            mkdir -p rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
            cp -a ${pkg_source}*.tar.gz rpmbuild/SOURCES/
            packaging_dir=odp-packaging
            packaging_repository=https://git.linaro.org/lng/${packaging_dir}.git
            git clone -b master --depth 1 ${packaging_repository}
            packaging_commit=$(cd ${packaging_dir} && git log -n1 --pretty=format:%h)
            cp ${packaging_dir}/pkg/rpm/odp.spec rpmbuild/

            # Prepare spec file
            pkg_repository=https://git.linaro.org/lng/odp.git

            if [ ${nb_commit} -ne 0 ]; then
                creation_date=$(date '+%a %b %e %G')
                RPMEMAIL="anders.roxell@linaro.org"
                sed -i -e "s|changelog|changelog\n\
            * ${creation_date} - ${RPMEMAIL}\n\
            - CI - ${pkg_source} snapshot:\n\
              repository: ${pkg_repository}\n\
              commit: ${scm_commit}\n\
              build: ${BUILD_URL} \n\n\
              rpm/ repository: ${packaging_repository}\n\
              rpm/ commit: ${packaging_commit}\n\
            |g" rpmbuild/odp.spec
            fi
            sed -i "s|^Version: .*$|Version: ${pkg_version}|g" rpmbuild/odp.spec

            # Install prerequisite
            sudo wget http://rpm.opendataplane.org/$dist/odp.repo -O /etc/yum.repos.d/odp.repo
            sudo yum-builddep --nogpg -y ./rpmbuild/odp.spec || true

            # Build rpm
            rpmbuild --quiet --nodeps --define="_topdir $(pwd)/rpmbuild" -ba ./rpmbuild/odp.spec
            find rpmbuild/RPMS -type f -name '*.rpm' -exec mv {} . \;

            cat > ../repo.parameters << EOF
            build_success=true
            pkg_job_name=${JOB_NAME}
            repo=odp
            dist=${dist}
            EOF
    publishers:
        - copy-to-master:
            includes:
                - '*rpm, repo.parameters'
        - trigger-parameterized-builds:
            - project: post-build-rpm
              property-file: "label/docker-centos7-aarch64/repo.parameters"
            - project: post-build-rpm
              property-file: "label/docker-fedora23-aarch64/repo.parameters"
        - email:
            recipients: 'riku.voipio@linaro.org lng-ci@lists.linaro.org'