aboutsummaryrefslogtreecommitdiff
path: root/rpb-debian-installer.yaml
blob: 754fae89829dce4a4fa5641961d9cbe0cc16a649 (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
- 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/ubuntu/linaro-overlay 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

            # 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}
            scsi-extra-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/ubuntu/linaro-overlay jessie main/debian-installer
            deb http://httpredir.debian.org/debian jessie main/debian-installer
            EOF

            # Default preseed to add the overlay and kernel
            cat <<EOF > default-preseed
            # Continue install on "no kernel modules were found for this kernel"
            d-i anna/no_kernel_modules boolean true

            # Continue install on "no installable kernels found"
            d-i base-installer/kernel/skip-install boolean true
            d-i base-installer/kernel/no-kernels-found boolean true

            # Adding security, updates and backports by default
            d-i apt-setup/services-select multiselect security, updates, backports

            # Adding linaro-overlay by default, so it can find the kernel and extra packages
            d-i apt-setup/local0/repository string http://repo.linaro.org/ubuntu/linaro-overlay jessie main
            d-i apt-setup/local0/comment string Linaro Overlay
            d-i apt-setup/local0/source boolean true
            d-i apt-setup/local0/key string http://repo.linaro.org/ubuntu/linarorepo.key

            d-i pkgsel/upgrade select full-upgrade
            d-i preseed/late_command string in-target apt-get install -y linux-image-reference-arm64
            EOF

            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://github.com/Linaro/documentation/blob/master/Reference-Platform/EECommon/Install-Debian-Jessie.md":https://github.com/Linaro/documentation/blob/master/Reference-Platform/EECommon/Install-Debian-Jessie.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'