1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-06-01 13:10:04 +00:00

Add experimental CI using Kas+GitLab

Add kas scripts that generic to test builds, and a GitLab CI runner.

This is mainly a cut-down copy of what is in the master/gatesgarth
branches with the following changes:

- Just the BSPs that are in the Dunfell release, obviously
- No clang testing. There are patches in master that can be backported
  if required.
- Added testing of the armgcc-9.2 compiler. This is currently broken for
  some configurations in master and the testing will be forward-ported
  when it passes.

Change-Id: I9c2a4f66318b3ccc066d423f3533202ee33f0c9d
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
Ross Burton
2020-12-08 17:11:00 +00:00
committed by Jon Mason
parent 316d9318ee
commit 49046a8af4
14 changed files with 267 additions and 0 deletions
+105
View File
@@ -0,0 +1,105 @@
# Use our custom Crops-derived image
image: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/yocto-builder:master
# First do a common bootstrap, and then build all the targets
stages:
- bootstrap
- build
# Common job fragment to get a worker ready
.setup:
# Retry because the runner is flakey (see https://gitlab.com/gitlab-org/gitlab-runner/-/issues/2890)
retry: 2
stage: build
variables:
KAS_WORK_DIR: $CI_PROJECT_DIR/work
SSTATE_DIR: $CI_BUILDS_DIR/persist/sstate
DL_DIR: $CI_BUILDS_DIR/persist/downloads
before_script:
- echo KAS_WORK_DIR = $KAS_WORK_DIR
- echo SSTATE_DIR = $SSTATE_DIR
- echo DL_DIR = $DL_DIR
- mkdir --verbose --parents $KAS_WORK_DIR $SSTATE_DIR $DL_DIR
# Generalised fragment to do a Kas build
.build:
extends: .setup
script:
- KASFILES=$(kas/jobs-to-kas $CI_JOB_NAME)
- kas shell --update --force-checkout $KASFILES -c 'cat conf/*.conf'
- kas build $KASFILES
#
# First phase, bootstrap and machine coverage
#
# Build a number of native tools first to ensure the other builders don't race
# over them
bootstrap:
extends: .build
stage: bootstrap
variables:
KAS_TARGET: binutils-cross-aarch64 gcc-cross-aarch64 python3-native opkg-native rpm-native
script:
- kas build kas/n1sdp.yml
# What percentage of machines in the layer do we build
machine-coverage:
stage: bootstrap
script:
- ./kas/check-machine-coverage
coverage: '/Coverage: \d+/'
#
# Second phase, the actual build jobs
#
a5ds:
extends: .build
foundation-armv8:
extends: .build
fvp-base:
extends: .build
gem5-arm64:
extends: .build
juno:
extends: .build
juno/musl:
extends: .build
n1sdp:
extends: .build
n1sdp/armgcc:
extends: .build
tc0:
extends: .build
#
# Utility tasks, not executed automatically
#
# Report on disk usage
usage:
extends: .setup
stage: bootstrap
when: manual
script:
- du -h -s $DL_DIR $SSTATE_DIR
# Wipe out old sstate
prune-sstate:
extends: .setup
stage: bootstrap
when: manual
script:
- find $SSTATE_DIR -type f -atime +30 -delete