aboutsummaryrefslogtreecommitdiff
path: root/96boards-reference-debian-installer.yaml
blob: e9a9b52bd403388e7231d16d3b116216a33285e2 (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
- 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-configure
                - job-cancel
    parameters:
        - string:
            name: KERNEL_ABI
            default: '4.4.0-trunk'
    disabled: false
    node: docker-jessie-arm64
    display-name: '96boards - Reference Component Enterprise - Debian Installer'
    wrappers:
        - timestamps
        - build-name:
            name: '#${BUILD_NUMBER}'
    builders:
        - linaro-publish-token:
            host: builds.96boards.org
        - shell: |
            #!/bin/bash

            set -ex

            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

            # Build the installer
            dget http://ftp.us.debian.org/debian/pool/main/d/debian-installer/debian-installer_20150422+deb8u2.dsc
            cd debian-installer-*

            # 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

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

            d-i preseed/late_command string in-target apt-get install -y linux-image-$KERNEL_ABI-arm64
            EOF

            fakeroot make build_netboot
            cd ../..

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

            # Final preparation for publishing
            mkdir out
            cp -a 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)

            # 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: 'ricardo.salveti@linaro.org'