Skip to content
Snippets Groups Projects

ci: add oe-selftest-gcc test job

Merged Chase Qi requested to merge (removed):gcc-test into kirkstone
All threads resolved!
Compare and
4 files
+ 184
0
Compare changes
  • Side-by-side
  • Inline
Files
4
@@ -458,3 +458,58 @@
# Run this job in case the pipeline changes.
- .oniro-ci/*.yml
- .gitlab-ci.yml
# This job is documented in docs/ci/hidden-jobs/oe-selftest.rst
.oe-selftest:
image:
name: chaseqi/bitbake-builder:v1.3
tags: [qemu-friendly, large-disk, $CI_ONIRO_RUNNER_TAG, $CI_ONIRO_INSTANCE_SIZE]
stage: test
dependencies: []
extends: .bitbake-workspace
variables:
MACHINE: qemux86-64
CI_ONIRO_BUILD_FLAVOUR: linux
CI_ONIRO_BB_LOCAL_CONF_SANITY_TESTED_DISTROS: ""
CI_ONIRO_BB_LOCAL_CONF_TOOLCHAIN: "gcc"
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"
script:
- test -n "$CI_ONIRO_OE_SELFTESTS" || (
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 the 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
# the qemu image arch for testing.
- echo "MACHINE = \"$MACHINE\"" >> conf/local.conf
- echo "Running specific tests $CI_ONIRO_OE_SELFTESTS ..."
- time oe-selftest -vvv -r $CI_ONIRO_OE_SELFTESTS -K
- rm -rf "$ARTIFACTS_DIR" & mkdir -p "$ARTIFACTS_DIR"
- 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:
- $ARTIFACTS_DIR
Loading