aboutsummaryrefslogtreecommitdiff
path: root/rpb-debian-installer.yaml
blob: 957553b3825f511b7a91a17496a2af4a799e5f68 (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
- job:
    name: 96boards-reference-debian-installer
    project-type: freestyle
    defaults: global
    logrotate:
        daysToKeep: 30
        numToKeep: 30
    properties:
        - authorization:
            anonymous:
                - job-read
                - job-extended-read
                - job-workspace
            linaro:
                - job-read
                - job-extended-read
                - job-build
                - job-cancel
    disabled: false
    node: docker-jessie-arm64
    display-name: 'Reference Platform - Debian Installer'
    wrappers:
        - timestamps
        - build-name:
            name: '#${BUILD_NUMBER}'
    builders:
        - linaro-publish-token:
            host: builds.96boards.org
        - shell: |
            #!/bin/bash

            set -ex

            echo "deb http://repo.linaro.org/debian/erp-17.08-stable jessie main" > local.list
            sudo cp local.list /etc/apt/sources.list.d/

            sudo apt-get update
            sudo apt-get install -y debian-archive-keyring gnupg dctrl-tools bc debiandoc-sgml xsltproc libbogl-dev glibc-pic libslang2-pic libnewt-pic genext2fs e2fsprogs mklibs genisoimage dosfstools
            sudo apt-get install -y grub-efi-arm64-bin mtools module-init-tools openssl xorriso bf-utf-source docbook-xml docbook-xsl cpio python-requests

            # Find kernel abi
            KERNEL_ABI=`apt-cache show linux-image-reference-arm64 | grep -m 1 Depends | sed -e "s/.*linux-image-//g" -e "s/-arm64//g"`

            # Build the installer
            DEB_INSTALLER_VERSION="20150422+deb8u4"
            dget http://ftp.us.debian.org/debian/pool/main/d/debian-installer/debian-installer_${DEB_INSTALLER_VERSION}.dsc
            cd debian-installer-*
            ## https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=810654, so lava can use grub to load grub.cfg from the local disk
            sed -i 's/fshelp|//g' build/util/grub-cpmodules

            # Config changes
            cd build
            sed -i "s/LINUX_KERNEL_ABI.*/LINUX_KERNEL_ABI = $KERNEL_ABI/g" config/common
            sed -i "s/PRESEED.*/PRESEED = default-preseed/g" config/common
            sed -i "s/USE_UDEBS_FROM.*/USE_UDEBS_FROM = jessie/g" config/common

            # Local pkg-list (to include all udebs)
            cat <<EOF > pkg-lists/local
            ext4-modules-\${kernel:Version}
            fat-modules-\${kernel:Version}
            btrfs-modules-\${kernel:Version}
            md-modules-\${kernel:Version}
            efi-modules-\${kernel:Version}
            scsi-modules-\${kernel:Version}
            jfs-modules-\${kernel:Version}
            xfs-modules-\${kernel:Version}
            ata-modules-\${kernel:Version}
            sata-modules-\${kernel:Version}
            usb-storage-modules-\${kernel:Version}
            EOF

            # Set up local repo
            cat <<EOF > sources.list.udeb
            deb [trusted=yes] http://repo.linaro.org/debian/erp-17.08-stable jessie main/debian-installer
            deb http://httpredir.debian.org/debian jessie main/debian-installer
            EOF

            # Default preseed to add the overlay and kernel
            wget -q https://git.linaro.org/ci/job/configs.git/plain/rpb-debian-installer/stable/default-preseed.cfg -O default-preseed

            fakeroot make build_netboot
            cd ../..

            cp debian-installer-*/build/dest/netboot/mini.iso .
            cp debian-installer-*/build/dest/netboot/netboot.tar.gz .

            # Final preparation for publishing
            mkdir out
            cp -a mini.iso netboot.tar.gz out/
            cd out; tar -zxvf netboot.tar.gz; cd ..

            # Create MD5SUMS file
            (cd out && find -type f -exec md5sum {} \; | sed "s/  \.\//  /g" > MD5SUMS.txt)

            # Build information
            KERNEL_VERSION=`grep -a "Linux version" out/debian-installer/arm64/linux`
            cat > out/HEADER.textile << EOF

            h4. Reference Platform - Debian Installer

            Debian Installer (Jessie) produced with the Reference Platform Kernel package.

            Check "https://platforms.linaro.org/documentation/Reference-Platform/Platforms/Enterprise/Documentation/Installation/Debian/README.md":https://platforms.linaro.org/documentation/Reference-Platform/Platforms/Enterprise/Documentation/Installation/Debian/README.md for the install instructions.

            Build Description:
            * Build URL: "$BUILD_URL":$BUILD_URL
            * Debian Installer version: $DEB_INSTALLER_VERSION
            * Kernel: $KERNEL_VERSION
            EOF

            # Publish
            test -d ${HOME}/bin || mkdir ${HOME}/bin
            wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
            time python ${HOME}/bin/linaro-cp.py \
              --server ${PUBLISH_SERVER} \
              --link-latest \
              out snapshots/reference-platform/components/debian-installer/${BUILD_NUMBER}/
    publishers:
        - email:
            recipients: 'fathi.boudra@linaro.org ricardo.salveti@linaro.org'