aboutsummaryrefslogtreecommitdiff
path: root/lava-debian-stretch-arm64.yaml
blob: ca8c9e56aaa0df52383db7b94a81e0a6a52e13b8 (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
# Debian arm64 NFS, initramfs, modules and dtbs

- job:
    name: lava-debian-stretch-arm64
    project-type: freestyle
    defaults: global
    logrotate:
        daysToKeep: 14
        numToKeep: 5
    properties:
        - authorization:
            anonymous:
                - job-read
                - job-extended-read
            platform-leads:
                - job-build
                - job-cancel
    disabled: false
    node: docker-jessie-amd64
    display-name: 'LAVA - Build ARM64 Debian Stretch files'
    wrappers:
        - timestamps
    builders:
        - linaro-publish-token
        - shell: |
            #!/bin/bash

            mkdir out
            cd out/
            echo "deb http://mirror.bytemark.co.uk/debian jessie-backports main" > jessie-backports.list
            sudo mv jessie-backports.list /etc/apt/sources.list.d/
            sudo apt-get update
            sudo DEBIAN_FRONTEND=noninteractive apt -q -y -t jessie-backports install qemu-user-static debootstrap
            sudo DEBIAN_FRONTEND=noninteractive apt -q -y install python-guestfs
            wget https://git.linaro.org/lava-team/refactoring.git/blob_plain/HEAD:/scripts/build-foreign-nfs.sh
            wget https://git.linaro.org/lava-team/refactoring.git/blob_plain/HEAD:/scripts/build-foreign-image.sh
            wget https://git.linaro.org/lava-team/refactoring.git/blob_plain/HEAD:/scripts/guest-img.py
            chmod 744 ./build-foreign-nfs.sh
            chmod 744 ./build-foreign-image.sh
            sudo ./build-foreign-nfs.sh -a arm64 -b /usr/bin/qemu-aarch64-static -d stretch
            sudo ./build-foreign-image.sh -a arm64 -b /usr/bin/qemu-aarch64-static -d stretch
            cd ..
            cat > ${WORKSPACE}/out/debian-arm64-readme.html <<EOF
            <html><body><pre>
            lava-debian-stretch-arm64 build instructions
            ========================================

            This initramfs is built using update-initramfs inside a minimal
            Debian Unstable debootstrap chroot. The contents of the chroot is
            then packaged up as an NFS with an empty root password.

            apt is included in the NFS, as are bash, grep, iproute2, mawk and
            sed. The NFS uses the default init in unstable: systemd.

            The Debian ARM64 kernel is a modular build and the modules
            need to be available in the initramfs for the kernel to be
            able to mount the NFS. The initramfs does not have DNS
            support.

            A similar chroot is created with systemd-sysv added. The chroot is
            unpacked into an empty ext2 primary partition of an image:
            stretch-arm64.img The UUID of the partition is available as
            stretch-arm64.img.uuid.txt and should be appended to the kernel command
            line using the root= argument when testing the image using QEMU in
            LAVA to ensure that the correct drive is booted. The image has
            systemd-networkd and systemd-resolved enabled to use DHCP on the
            primary network interface.

            When using the image and the UUID, ensure that you also use the
            checksums to ensure that the UUID matches the files being
            downloaded.

            https://ci.linaro.org/view/lava-ci/job/lava-debian-stretch-arm64/

            The scripts used by jenkins are available here:
            https://git.linaro.org/lava-team/refactoring.git/tree/HEAD:/scripts

            https://git.linaro.org/ci/job/configs.git/blob/HEAD:/lava-debian-stretch-arm64.yaml
            The base system is a Debian Unstable VM.

            The NFS rootfs and the image both use a prompt of "root@stretch:" and
            the same auto login details:
                auto_login:
                    login_prompt: 'login:'
                    username: root

            </pre></body></html>
            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 --api_version 3 out components/lava/standard/debian/stretch/arm64/${BUILD_NUMBER}
    publishers:
        # - archive:
        #    artifacts: 'out/*'
        - email:
            recipients: 'neil.williams@linaro.org fathi.boudra@linaro.org'