Files
xen/automation/gitlab-ci/analyze.yaml
T
Simone Ballarin 4edbbcd0c0 automation/eclair: reorganize pipelines
Introduce accepted_guidelines.sh: a script to autogenerate the
configuration file accepted.ecl from docs/misra/rules.rst which enables
all accepted guidelines.

Introduce monitored.ecl: a manual selection of accepted guidelines
which are clean or almost clean, it is intended to be used for the
analyses triggered by commits.

Reorganize tagging.ecl:
  -Remove "accepted" tags: keeping track of accepted guidelines tagging
   them as "accepted" in the configuration file tagging.ecl is no
   longer needed since docs/rules.rst is keeping track of them.
  -Tag more guidelines as clean.

Reorganize eclair pipelines:
  - Set1, Set2, Set3 are now obsolete: remove the corresponding
    pipelines and ecl files.
  - Amend scheduled eclair pipeline to use accepted.ecl.
  - Amend triggered eclair pipeline to use monitored.ecl.

Rename and improve action_check_clean_regressions.sh to print a
diagnostic in case a commit introduces a violation of a clean guideline.

An example of diagnostic is the following:

Failure: 13 regressions found for clean guidelines
  service MC3R1.R8.2: (required) Function types shall be in prototype form with named parameters:
   violation: 13

Signed-off-by: Simone Ballarin <simone.ballarin@bugseng.com>
Signed-off-by: Federico Serafini <federico.serafini@bugseng.com>
Signed-off-by: Alessandro Zucchelli <alessandro.zucchelli@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
2024-04-25 13:01:30 -07:00

75 lines
1.8 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"
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
allow_failure: true
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
when: never
- if: $WTOKEN && $CI_PROJECT_PATH =~ /^xen-project\/people\/.*$/
when: manual
- !reference [.eclair-analysis, rules]
eclair-x86_64:
extends: .eclair-analysis:triggered
variables:
LOGFILE: "eclair-x86_64.log"
VARIANT: "X86_64"
RULESET: "monitored"
eclair-ARM64:
extends: .eclair-analysis:triggered
variables:
LOGFILE: "eclair-ARM64.log"
VARIANT: "ARM64"
RULESET: "monitored"
.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