image: ghcr.io/siemens/kas/kas:4.0 variables: CPU_REQUEST: "" DEFAULT_TAG: "" # These are needed as the k8s executor doesn't respect the container # entrypoint by default FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY: 0 FF_KUBERNETES_HONOR_ENTRYPOINT: 1 stages: - prep - build # Common job fragment to get a worker ready .setup: tags: - $DEFAULT_TAG 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 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 # Generalised fragment to do a Kas build .build: extends: .setup variables: KUBERNETES_CPU_REQUEST: $CPU_REQUEST 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 # # Bootstrap stage, machine coverage # # What percentage of machines in the layer do we build machine-coverage: stage: prep interruptible: true script: - ./ci/check-machine-coverage coverage: '/Coverage: \d+/' tags: - $DEFAULT_TAG # # Build stage, the actual build jobs # 96b-avenger96: extends: .build 96b-nitrogen: extends: .build arduino-nano-33-ble: extends: .build frdm-kw41z: extends: .build intel-x86-64: extends: .build mps2-an385: extends: .build parallel: matrix: - TOOLCHAIN: [default, zephyr-toolchain] TESTING: testimage mps2-an521: extends: .build parallel: matrix: - TOOLCHAIN: [default, zephyr-toolchain] TESTING: testimage mps3-an547: extends: .build parallel: matrix: - TOOLCHAIN: [default, zephyr-toolchain] TESTING: testimage nrf52840-mdk-usb-dongle: extends: .build nrf52840dk-nrf52840: extends: .build qemu-cortex-a53: extends: .build parallel: matrix: - TOOLCHAIN: [default, zephyr-toolchain] TESTING: testimage qemu-cortex-a9: extends: .build parallel: matrix: - TOOLCHAIN: [default, zephyr-toolchain] TESTING: testimage qemu-cortex-m0: extends: .build parallel: matrix: - TOOLCHAIN: [default, zephyr-toolchain] TESTING: testimage qemu-cortex-m3: extends: .build parallel: matrix: - TOOLCHAIN: [default, zephyr-toolchain] TESTING: testimage qemu-cortex-r5: extends: .build qemu-nios2: extends: .build qemu-x86: extends: .build parallel: matrix: - TOOLCHAIN: [default, zephyr-toolchain] TESTING: testimage stm32mp157c-dk2: extends: .build v2m-beetle: extends: .build v2m-musca-b1: extends: .build v2m-musca-s1: extends: .build