diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e97af16f6b55160c16bbee406d013f17f6292036..90a517c3332a0b1969c22c3d37513561a4658888 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -679,6 +679,7 @@ oe-selftest-report: python3 $CI_PROJECT_DIR/gcc-result-parser.py $sum_file done # Upload result to squad. + gcc_version="$(cat gcc_version)" for result_file in $(ls result_*.json); do component="$(basename $result_file .json | cut -d'_' -f2-)" job_id="$job-$component" @@ -686,7 +687,7 @@ oe-selftest-report: --header "Auth-Token: $CI_SQUAD_TOKEN" \ https://squadp.svc.ostc-eu.dev/api/submit/oniro-core/gcc-test/$CI_PIPELINE_ID/$test_env \ --form tests=@$result_file \ - --form metadata='{"job_id": "'$job_id'"}' + --form "metadata={\"job_id\": \"$job_id\", \"gcc_version\": \"$gcc_version\"}" done ) done diff --git a/.oniro-ci/build-generic.yaml b/.oniro-ci/build-generic.yaml index d9e09c23f9c0b1fe58ce0a31c3d3344b7c582c8a..2190c7d24524936115c71b5e5a853749fed674f5 100644 --- a/.oniro-ci/build-generic.yaml +++ b/.oniro-ci/build-generic.yaml @@ -485,6 +485,7 @@ CI_ONIRO_BB_LOCAL_CONF_RUNTIME: "gnu" CI_ONIRO_OE_SELFTESTS: "" CI_ONIRO_OE_SEFLTEST_SKIPS: "" + CI_SQUAD_INSTANCE: "https://squadp.svc.ostc-eu.dev" # The USER variable is required by oe-selftest but missing in env. USER: "builder" ARTIFACTS_DIR: "$CI_PROJECT_DIR/artifacts/$CI_JOB_NAME" @@ -493,6 +494,19 @@ echo "nothing to test - CI_ONIRO_OE_SELFTESTS is empty" && exit 1 ) - !reference [.bitbake-workspace, script] + # Only run tests when gcc version changed. + - gcc_version="$(bitbake -s | grep '^gcc-runtime' | awk -F':' '{print $NF}' | head -1 | awk '{$1=$1;print}')" + - echo "Current GCC version $gcc_version" + - last_build_id="$(curl --silent $CI_SQUAD_INSTANCE/api/projects/5/builds/ | jq -r '.results | .[] | .id' | head -1)" + - last_tested_gcc_version="$(curl --silent $CI_SQUAD_INSTANCE/api/builds/$last_build_id/metadata/ | jq -r '.gcc_version')" + - echo "The last tested GCC version $last_tested_gcc_version" + - | + if [ "$gcc_version" != "$last_tested_gcc_version" ]; then + echo "GCC verion changed, about to test the new version ..." + else + echo "GCC verion not changed, skipping gcc tests ..." + exit 0 + fi # oe-selftest inherits the current 'build/conf/local.conf' to create # '../build-st/conf/local.conf' for qemu image building. Adding the # MACHINE variable to the current local conf allows test job to customize @@ -504,6 +518,7 @@ - find ../build-st \( -name "*.sum" -o -name "*.log" \) \( -path "*/gcc-runtime/*testsuite*" \) -exec cp --verbose {} "$ARTIFACTS_DIR" \; - for file in $(find "$ARTIFACTS_DIR" -type f); do xz $file; done + - echo "$gcc_version" > $ARTIFACTS_DIR/gcc_version - rm -rf ../build-st artifacts: paths: