tf-a-eclair-daily: New version of job, producing cumulative report

Across all configs being built.

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
Change-Id: I20c7473ba7ecd76479e11bc8f43ea5fd7457a9a3
diff --git a/tf-a-eclair-daily.yaml b/tf-a-eclair-daily.yaml
new file mode 100644
index 0000000..d349072
--- /dev/null
+++ b/tf-a-eclair-daily.yaml
@@ -0,0 +1,156 @@
+- job:
+    name: tf-a-eclair-daily
+    node: docker-tf-a-eclair
+    project-type: freestyle
+    concurrent: true
+    disabled: false
+    defaults: global
+    Description: |
+      ECLAIR (MISRA compliance) testing of TF-A
+    properties:
+        - build-discarder:
+            days-to-keep: 40
+        - authorization:
+            !include: authorization.yaml.inc
+    parameters:
+        - string:
+            name: TF_CONFIG_LIST
+            default: >
+              fvp-aarch32-default
+              fvp-aarch32-enable-runtime-instr
+              fvp-aarch32-rst-to-sp-min
+              fvp-boot-el3-payload
+              fvp-default
+              fvp-enable-runtime-instr
+              fvp-ext-pstate-ea-el3
+              fvp-no-cohmem
+              fvp-opteed
+              fvp-r-default
+              fvp-rst-bl31
+              fvp-tspd
+              fvp-tspd-gicv2-symmetric-model
+              fvp-tspd-irq2el3
+              fvp-tspd-quad-cluster
+              fvp-tspd-tbb-mbedtls
+              fvp-tspd-tsp-async
+              juno-aarch32-rst-to-sp-min
+              juno-aarch32-rst-to-sp-min-enable-runtime-instr
+              juno-default
+              juno-tspd
+            description: |
+              List of TF-A configs to build
+        - string:
+            name: MAKE_TARGET
+            default: ''
+            description: |
+              TF-A make target
+        - string:
+            name: MAKE_JOBS
+            default: '16'
+            description: |
+              --jobs to pass to make, etc.
+        - string:
+            name: DEBUG
+            default: '1'
+            description: |
+              TF-A make DEBUG setting
+        - string:
+            name: GERRIT_HOST
+            default: 'review.trustedfirmware.org'
+        - string:
+            name: GERRIT_PROJECT
+            default: 'TF-A/trusted-firmware-a'
+            description: |
+              Git project to build (also set by Gerrit trigger)
+        - string:
+            name: GERRIT_REFNAME
+            default: 'integration'
+            description: |
+              Git branch to build (also set by Gerrit trigger)
+        - string:
+            name: GERRIT_NEWREV
+            default: ''
+            description: |
+              Git revision to build (also set by Gerrit ref-updated trigger)
+        - string:
+            name: MBEDTLS_URL
+            default: 'https://github.com/Mbed-TLS/mbedtls/archive/mbedtls-3.4.0.tar.gz'
+            description: |
+              URL of mbedTLS library to use in build (only for some configurations)
+        - string:
+            name: SHARE_FOLDER
+            default: '/srv/shared/${JOB_NAME}/${BUILD_NUMBER}'
+            description: 'Folder containing shared repositories for downstream pipeline jobs'
+#    triggers:
+#    - timed : 'H 2 * * *'
+#    - gerrit:
+#        silent: true
+#        server-name: 'review.trustedfirmware.org'
+#        projects:
+#        - branches:
+#          - branch-compare-type: PLAIN
+#            branch-pattern: integration
+#          project-compare-type: PLAIN
+#          project-pattern: 'TF-A/trusted-firmware-a'
+#        trigger-on:
+#        - ref-updated-event
+    wrappers:
+        - timestamps
+        - timeout:
+            timeout: 300
+            fail: true
+    builders:
+    - shell: |
+        #!/bin/bash
+        set -ex
+        pwd
+        git clone https://git.trustedfirmware.org/ci/tf-a-ci-scripts.git
+        git clone https://git.trustedfirmware.org/ci/tf-ci-scripts.git
+
+        git clone https://${GERRIT_HOST}/${GERRIT_PROJECT} -b ${GERRIT_REFNAME}
+        ls -l
+        if [ -n "${GERRIT_NEWREV}" ]; then
+            (cd $(basename ${GERRIT_PROJECT}); git checkout ${GERRIT_NEWREV})
+        else
+            # Checkout last commit from yesterday, to have a stable commit for
+            # multiple builds.
+            (cd $(basename ${GERRIT_PROJECT}); git checkout $(git rev-list -n1 --before="today" HEAD))
+        fi
+        (cd $(basename ${GERRIT_PROJECT}); git log -n1)
+
+        export ECLAIR_CONFIG_DIR=$PWD/tf-a-ci-scripts/eclair
+        . tf-ci-scripts/eclair/utils.sh
+        # TODO
+        #. tf-a-ci-scripts/eclair/utils_tfa.sh
+
+        export CROSS_COMPILE=aarch64-none-elf-
+        export CROSS_COMPILE2=arm-none-eabi-
+        export CC_ALIASES="${CROSS_COMPILE}gcc"
+        export CC_ALIASES="${CC_ALIASES} ${CROSS_COMPILE2}gcc"
+        export CXX_ALIASES="${CROSS_COMPILE}g++"
+        export LD_ALIASES="${CROSS_COMPILE}ld"
+        export AR_ALIASES="${CROSS_COMPILE}ar"
+        export AS_ALIASES="${CROSS_COMPILE}as"
+        export FILEMANIP_ALIASES="cp mv ${CROSS_COMPILE}objcopy"
+        export ECLAIR_PROJECT_NAME="TF_A_${JOB_NAME}_${BUILD_NUMBER}"
+        export ECLAIR_PROJECT_ROOT="${WORKSPACE}/trusted-firmware-a"
+
+        detachLicense 600
+        trap "returnLicense" EXIT
+
+        export ECLAIR_ANALYSIS=ECLAIR
+        eclair_prepare
+        eclair_analyze tf-a-ci-scripts/eclair/build-tfa-multiple.sh
+        eclair_make_ecd
+        eclair_make_reports
+        eclair_compress_db
+
+        tf-ci-scripts/eclair/analyze_index_html.sh
+    publishers:
+        - archive:
+            artifacts: 'ECLAIR/**, index.html'
+            excludes: 'ECLAIR/out/.data/**'
+            latest-only: false
+            allow-empty: true
+        - email:
+            recipients: 'paul.sokolovsky@linaro.org'