summaryrefslogtreecommitdiff
path: root/meta-arm/.gitlab-ci.yml
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2022-08-03 16:55:16 +0300
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2022-08-03 17:56:03 +0300
commitbec4ebc22c43c1ff5c3fddb820d44a88bd3aebf0 (patch)
treecd378e3e0eaff8fe11880bd397f41671e2347a39 /meta-arm/.gitlab-ci.yml
parent79161d7a7126cad324ff0c11a93d8e57d80203ed (diff)
downloadopenbmc-bec4ebc22c43c1ff5c3fddb820d44a88bd3aebf0.tar.xz
Import 80d60e7 from yoctoproject.org meta-arm
To support ARMv8 SoCs. meta-arm has several patch files. Since they are maintained by the upstream meta-arm community, add meta-arm to the ignore list in run-repotest. Change-Id: Ia87a2e947bbabd347d256eccc47a343e1c885479 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'meta-arm/.gitlab-ci.yml')
-rw-r--r--meta-arm/.gitlab-ci.yml266
1 files changed, 266 insertions, 0 deletions
diff --git a/meta-arm/.gitlab-ci.yml b/meta-arm/.gitlab-ci.yml
new file mode 100644
index 0000000000..840a65074d
--- /dev/null
+++ b/meta-arm/.gitlab-ci.yml
@@ -0,0 +1,266 @@
+image: ghcr.io/siemens/kas/kas:latest-release
+
+stages:
+ - prep
+ - build
+
+# Common job fragment to get a worker ready
+.setup:
+ stage: build
+ interruptible: true
+ variables:
+ KAS_WORK_DIR: $CI_PROJECT_DIR/work
+ KAS_REPO_REF_DIR: $CI_BUILDS_DIR/persist/repos
+ SSTATE_DIR: $CI_BUILDS_DIR/persist/sstate
+ DL_DIR: $CI_BUILDS_DIR/persist/downloads
+ BB_LOGCONFIG: $CI_PROJECT_DIR/ci/logging.yml
+ TOOLCHAIN_DIR: $CI_BUILDS_DIR/persist/toolchains
+ IMAGE_DIR: $CI_PROJECT_DIR/work/build/tmp/deploy/images
+ TOOLCHAIN_LINK_DIR: $CI_PROJECT_DIR/work/build/toolchains
+ before_script:
+ - echo KAS_WORK_DIR = $KAS_WORK_DIR
+ - echo SSTATE_DIR = $SSTATE_DIR
+ - echo DL_DIR = $DL_DIR
+ - rm -rf $KAS_WORK_DIR
+ - mkdir --verbose --parents $KAS_WORK_DIR $KAS_REPO_REF_DIR $SSTATE_DIR $DL_DIR $TOOLCHAIN_DIR $TOOLCHAIN_LINK_DIR
+ # Must do this here, as it's the only way to make sure the toolchain is installed on the same builder
+ - ./ci/get-binary-toolchains $DL_DIR $TOOLCHAIN_DIR $TOOLCHAIN_LINK_DIR
+ - sudo apt-get update && sudo apt-get install --yes telnet python3-subunit
+
+# Generalised fragment to do a Kas build
+.build:
+ extends: .setup
+ script:
+ - KASFILES=$(./ci/jobs-to-kas "$CI_JOB_NAME")
+ - kas shell --update --force-checkout $KASFILES -c 'cat conf/*.conf'
+ - kas build $KASFILES
+ - ./ci/check-warnings $KAS_WORK_DIR/build/warnings.log
+ artifacts:
+ name: "logs"
+ when: on_failure
+ paths:
+ - $CI_PROJECT_DIR/work/build/tmp/work*/**/temp/log.do_*.*
+
+#
+# Prep stage, update repositories once
+#
+update-repos:
+ extends: .setup
+ stage: prep
+ script:
+ - flock --verbose --timeout 60 $KAS_REPO_REF_DIR ./ci/update-repos
+
+#
+# Build stage, the actual build jobs
+#
+# Available options for building are
+# TOOLCHAINS: [gcc, clang, armgcc, external-gccarm]
+# TCLIBC: [glibc, musl]
+# FIRMWARE: [uboot, edk2]
+# VIRT: [none, xen]
+# TESTING: testimage
+
+corstone500:
+ extends: .build
+ parallel:
+ matrix:
+ - TESTING: testimage
+ tags:
+ - x86_64
+
+corstone1000-fvp:
+ extends: .build
+ parallel:
+ matrix:
+ - TESTING: [testimage,tftf]
+ tags:
+ - x86_64
+
+corstone1000-mps3:
+ extends: .build
+
+fvp-base:
+ extends: .build
+ parallel:
+ matrix:
+ - TESTING: testimage
+ tags:
+ - x86_64
+
+fvp-base-arm32:
+ extends: .build
+ parallel:
+ matrix:
+ - TOOLCHAINS: [gcc, external-gccarm]
+ TESTING: testimage
+ tags:
+ - x86_64
+
+fvp-baser-aemv8r64:
+ extends: .build
+ parallel:
+ matrix:
+ - TESTING: testimage
+ tags:
+ - x86_64
+
+fvps:
+ extends: .build
+
+gem5-arm64:
+ extends: .build
+ parallel:
+ matrix:
+ - VIRT: [none, xen]
+
+gem5-atp-arm64:
+ extends: .build
+
+generic-arm64:
+ extends: .build
+
+juno:
+ extends: .build
+ parallel:
+ matrix:
+ - TOOLCHAINS: [gcc, clang]
+ FIRMWARE: [uboot, edk2]
+
+microbit-v1:
+ extends: .build
+ parallel:
+ matrix:
+ - TESTING: testimage-zephyr
+
+musca-b1:
+ extends: .build
+
+musca-s1:
+ extends: .build
+
+n1sdp:
+ extends: .build
+ parallel:
+ matrix:
+ - TOOLCHAINS: [gcc, armgcc]
+
+qemu-cortex-a53:
+ extends: .build
+
+qemu-cortex-m3:
+ extends: .build
+ parallel:
+ matrix:
+ - TESTING: testimage-zephyr
+
+qemu-cortex-r5:
+ extends: .build
+
+qemu-generic-arm64:
+ extends: .build
+ parallel:
+ matrix:
+ - TOOLCHAINS: [gcc, clang]
+ TESTING: testimage
+
+qemuarm64-secureboot:
+ extends: .build
+ parallel:
+ matrix:
+ - TOOLCHAINS: [gcc, clang]
+ TCLIBC: [glibc, musl]
+ TESTING: testimage
+
+qemuarm64:
+ extends: .build
+ parallel:
+ matrix:
+ - TOOLCHAINS: [gcc, clang]
+ EFI: [uboot, edk2]
+ TESTING: testimage
+ - VIRT: xen
+
+qemuarm-secureboot:
+ extends: .build
+ parallel:
+ matrix:
+ - TOOLCHAINS: [gcc, clang]
+ TESTING: testimage
+
+qemuarm:
+ extends: .build
+ parallel:
+ matrix:
+ - TOOLCHAINS: [gcc, clang]
+ EFI: [uboot, edk2]
+ TESTING: testimage
+ - VIRT: xen
+
+qemuarmv5:
+ extends: .build
+ parallel:
+ matrix:
+ - TESTING: testimage
+
+sgi575:
+ extends: .build
+
+tc0:
+ extends: .build
+ tags:
+ - x86_64
+
+tc1:
+ extends: .build
+ tags:
+ - x86_64
+
+toolchains:
+ extends: .build
+
+selftest:
+ extends: .setup
+ script:
+ - KASFILES=./ci/qemuarm64.yml:./ci/selftest.yml
+ - kas shell --update --force-checkout $KASFILES -c 'oe-selftest --num-processes 1 --run-tests runfvp'
+
+# Validate layers are Yocto Project Compatible
+check-layers:
+ extends: .setup
+ script:
+ - kas shell --update --force-checkout ci/base.yml:ci/meta-openembedded.yml --command \
+ "yocto-check-layer-wrapper $CI_PROJECT_DIR/$LAYER --dependency $CI_PROJECT_DIR/meta-* $KAS_WORK_DIR/meta-openembedded/meta-oe --no-auto-dependency"
+ parallel:
+ matrix:
+ - LAYER: [meta-arm, meta-arm-bsp, meta-arm-toolchain, meta-gem5]
+
+pending-updates:
+ extends: .setup
+ artifacts:
+ paths:
+ - update-report
+ script:
+ - rm -fr update-report
+ # This configuration has all of the layers we need enabled
+ - kas shell ci/gem5-arm64.yml --command \
+ "$CI_PROJECT_DIR/scripts/machine-summary.py -t report -o $CI_PROJECT_DIR/update-report $($CI_PROJECT_DIR/ci/listmachines.py meta-arm meta-arm-bsp meta-gem5)"
+ # Do this on x86 whilst the compilers are x86-only
+ tags:
+ - x86_64
+
+# What percentage of machines in the layer do we build
+machine-coverage:
+ stage: build
+ interruptible: true
+ script:
+ - ./ci/check-machine-coverage
+ coverage: '/Coverage: \d+/'
+
+metrics:
+ extends: .setup
+ artifacts:
+ reports:
+ metrics: metrics.txt
+ script:
+ - kas shell --update --force-checkout ci/base.yml --command \
+ "$CI_PROJECT_DIR/ci/patchreview $CI_PROJECT_DIR/meta-* --verbose --metrics $CI_PROJECT_DIR/metrics.txt"