Files
xen/automation/gitlab-ci/analyze.yaml
T
Nicola Vetrini bea38de1bd automation/eclair: Make report browsing URL configurable.
Currently, the URL where the ECLAIR MISRA C scan reports are saved
is hardcoded; making it configurable allows multiple runners and storage
servers to be used without resorting to publishing all artifacts
to the same report server.

Additionally, reports will be accessed publicly by using a proxy,
therefore the address that needs to be printed in GitLab analysis logs
is that of the public url, rather than the location where they are stored.

Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
[stefano: remove unneeded exports]
Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
2025-07-11 16:58:34 -07:00

147 lines
3.6 KiB
YAML

.eclair-analysis:
stage: analyze
tags:
- eclair-analysis
variables:
ECLAIR_OUTPUT_DIR: "ECLAIR_out"
ANALYSIS_KIND: "normal"
ENABLE_ECLAIR_BOT: "n"
AUTO_PR_BRANCH: "staging"
AUTO_PR_REPOSITORY: "xen-project/xen"
ECLAIR_ANALYSIS_RESULTS: "https://eclair-analysis-logs.xenproject.org"
script:
- ./automation/scripts/eclair 2>&1 | tee "${LOGFILE}"
artifacts:
when: always
paths:
- "${ECLAIR_OUTPUT_DIR}/*.log"
- "${ECLAIR_OUTPUT_DIR}/*.txt"
- '*.log'
reports:
codequality: gl-code-quality-report.json
rules:
- if: $WTOKEN == null
when: never
- when: always
needs: []
.eclair-analysis:triggered:
extends: .eclair-analysis
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
when: never
- if: $SELECTED_JOBS_ONLY && $CI_JOB_NAME =~ $SELECTED_JOBS_ONLY
- if: $SELECTED_JOBS_ONLY
when: never
- if: $WTOKEN && $CI_PROJECT_PATH =~ /^xen-project\/people\/.*$/
when: manual
allow_failure: true
- !reference [.eclair-analysis, rules]
eclair-x86_64:
extends: .eclair-analysis:triggered
variables:
LOGFILE: "eclair-x86_64.log"
VARIANT: "X86_64"
RULESET: "monitored"
EXTRA_XEN_CONFIG: |
CONFIG_AMD=y
CONFIG_INTEL=n
CONFIG_AMD_SVM=y
CONFIG_INTEL_VMX=n
CONFIG_NR_CPUS=16
CONFIG_NR_NUMA_NODES=2
CONFIG_PV=n
CONFIG_XEN_IBT=n
CONFIG_XEN_SHSTK=n
CONFIG_SHADOW_PAGING=n
CONFIG_HVM_FEP=n
CONFIG_TBOOT=n
CONFIG_HYPFS=n
CONFIG_KEXEC=n
CONFIG_ARGO=y
CONFIG_SCHED_CREDIT=n
CONFIG_SCHED_RTDS=n
CONFIG_SCHED_ARINC653=n
CONFIG_LIVEPATCH=n
CONFIG_TRACEBUFFER=n
CONFIG_INTEL_IOMMU=n
CONFIG_EXPERT=y
CONFIG_DEBUG=y
CONFIG_GDBSX=n
CONFIG_FRAME_POINTER=n
CONFIG_SELF_TESTS=n
CONFIG_DEBUG_LOCKS=n
CONFIG_SCRUB_DEBUG=n
CONFIG_XMEM_POOL_POISON=n
eclair-ARM64:
extends: .eclair-analysis:triggered
variables:
LOGFILE: "eclair-ARM64.log"
VARIANT: "ARM64"
RULESET: "monitored"
EXTRA_XEN_CONFIG: |
CONFIG_NR_CPUS=16
CONFIG_GICV2=n
CONFIG_GICV3=y
CONFIG_VGICV2=n
CONFIG_HAS_ITS=y
CONFIG_HWDOM_VUART=n
CONFIG_STATIC_SHM=y
CONFIG_STATIC_EVTCHN=y
CONFIG_STATIC_MEMORY=y
CONFIG_SCMI_SMC=n
CONFIG_PARTIAL_EMULATION=n
CONFIG_HYPFS=n
CONFIG_IOREQ_SERVER=y
CONFIG_XSM=n
CONFIG_ARGO=y
CONFIG_SCHED_CREDIT=n
CONFIG_SCHED_RTDS=n
CONFIG_SCHED_ARINC653=n
CONFIG_BOOT_TIME_CPUPOOLS=y
CONFIG_TRACEBUFFER=n
CONFIG_HAS_CADENCE_UART=n
CONFIG_HAS_NS16550=n
CONFIG_HAS_IMX_LPUART=n
CONFIG_HAS_MVEBU=n
CONFIG_HAS_MESON=n
CONFIG_HAS_OMAP=n
CONFIG_HAS_SCIF=n
CONFIG_HAS_LINFLEX=n
CONFIG_ARM_SMMU=n
CONFIG_ARM_SMMU_V3=y
CONFIG_EXPERT=y
CONFIG_DEBUG=y
CONFIG_FRAME_POINTER=n
CONFIG_SELF_TESTS=n
CONFIG_DEBUG_LOCKS=n
CONFIG_SCRUB_DEBUG=n
CONFIG_XMEM_POOL_POISON=n
.eclair-analysis:on-schedule:
extends: .eclair-analysis
rules:
- if: $CI_PIPELINE_SOURCE != "schedule"
when: never
- !reference [.eclair-analysis, rules]
eclair-x86_64:on-schedule:
extends: .eclair-analysis:on-schedule
variables:
VARIANT: "X86_64"
RULESET: "accepted"
ANALYSIS_KIND: "${RULESET}-scheduled"
LOGFILE: "eclair-${VARIANT}-${RULESET}.log"
allow_failure: true
eclair-ARM64:on-schedule:
extends: .eclair-analysis:on-schedule
variables:
VARIANT: "ARM64"
RULESET: "accepted"
ANALYSIS_KIND: "${RULESET}-scheduled"
LOGFILE: "eclair-${VARIANT}-${RULESET}.log"
allow_failure: true