- job:
    name: lt-qcom-linux-testimages
    project-type: matrix
    defaults: global
    properties:
        - authorization:
            anonymous:
                - job-read
                - job-extended-read
                - job-workspace
            linaro-qualcomm-ci:
                - job-read
                - job-extended-read
                - job-build
                - job-cancel
        - build-discarder:
            days-to-keep: 30
            num-to-keep: 30
            artifact-num-to-keep: 1
    parameters:
        - string:
            name: IMAGES
            default: 'initramfs-tiny-image initramfs-test-image rpb-console-image-test rpb-desktop-image-test'
        - string:
            name: MANIFEST_URL
            default: 'https://github.com/96boards/oe-rpb-manifest.git'
        - string:
            name: MANIFEST_BRANCH
            default: 'qcom/master'
        - string:
            name: DISTRO
            default: 'rpb'
        - string:
            name: QCOM_USERSPACE_TOOLS
            default: 'fastrpc pd-mapper qrtr rmtfs tqftpserv'
        - string:
            name: BASE_URL
            default: 'https://snapshots.linaro.org/'
    disabled: true
    node: master
    display-name: 'DELETE ME'
    axes:
        - axis:
            type: user-defined
            name: MACHINE
            values:
                - 'qemuarm64'
                - 'qemuarm'
                - 'qcom-armv8a'
    execution-strategy:
        sequential: false
    wrappers:
        - timestamps
        - workspace-cleanup
        - credentials-binding:
            - text:
                credential-id: TUXSUITE_TOKEN
                variable: TUXSUITE_TOKEN
        - ssh-agent-credentials:
            users:
                - 'OE_COMMIT_BOT_KEY'
    builders:
        - shell: |
            #!/bin/bash
            echo "PUB_DEST=member-builds/qcomlt/testimages/$(echo ${MACHINE} | sed 's/qemu//')/${BUILD_NUMBER}" > pub_dest_parameters

            # ensure that we generate the right image type, by default qemu* only generates .ext4, we need .ext4.gz
            # enable mesa to test freedreno
            cat << EOF > local.conf.json
            {"local_conf" : [
            "IMAGE_FSTYPES:remove = 'ext4'",
            "IMAGE_FSTYPES:append = ' ext4.gz'",
            "PACKAGECONFIG:append:pn-mesa = 'freedreno xa'",
            "PREFERRED_PROVIDER_virtual/kernel = 'linux-dummy'",
            "PREFERRED_PROVIDER_android-tools-conf = 'android-tools-conf-configfs'"
            ]}
            EOF

            if [ "${MACHINE}" = "qcom-armv8a" ]; then
              # install firmware
              # remove kernel and modules to beign installed
              cat << EOF >> local.conf.json
              {"local_conf" : [
              "MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS:remove = 'kernel-modules'",
              "RDEPENDS:packagegroup-rpb:remove = 'kernel-modules'",
              "PACKAGE_EXCLUDE:append = ' kernel-modules'"
              ]}
            EOF
            else
              # configure serial in rpb-console-image-test
              # add ext4 block size to 4096, boards with UFS storage needs it
              # add machine dependent qcom services to initramfs and rpb images
              cat << EOF >> local.conf.json
              {"local_conf" : [
              "SERIAL_CONSOLES = '115200;ttyMSM0'",
              "EXTRA_IMAGECMD_ext4 += ' -b 4096 '",
              "CORE_IMAGE_EXTRA_INSTALL += '${QCOM_USERSPACE_TOOLS}'",
              "PACKAGE_INSTALL:append = ' ${QCOM_USERSPACE_TOOLS}'"
              ]}
            EOF
            fi
        - inject:
            properties-file: pub_dest_parameters
        - linaro-publish-token
        - shell:
            !include-raw: rpb-openembedded/builders-tux.sh
        - inject:
            properties-file: parameters
        - shell:
            !include-raw: rpb-openembedded/publishers.sh
    publishers:
        - groovy-postbuild:
            script:
                !include-raw:
                  - rpb-openembedded/postbuild.groovy
        - email-ext:
            recipients: 'leonardo.sandoval@linaro.org dmitry.baryshkov@linaro.org'
            failure: true
            still-failing: true
            matrix-trigger: only-parent
