From c4f36034a6889eb887a88d4a58ac55b15786e526 Mon Sep 17 00:00:00 2001 From: Ali Can Ozaslan Date: Wed, 20 Mar 2024 15:25:01 +0000 Subject: [PATCH 1/3] ci: Adjust triggered branch rules for merge requests Trigger the meta-cassini branch by looking the meta-cassini-bsp branch to be merged. Due to gitlab restrictions, set the branches to be triggered as strings. Signed-off-by: Ali Can Ozaslan --- .gitlab-ci.yml | 14 +++++--------- .gitlab/ci/rules.yml | 15 +++++++++++++++ qa-checks/cassini-bsp-dictionary | 4 +++- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f49c7d4..a1e8012 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,6 +10,10 @@ variables: - 'true' - 'false' description: Enable debug information output to the log + META_CASSINI_TARGET_BRANCH: + value: none + description: Comma separated list of meta-cassini branch to trigger + (none, main, nanbield-dev, mickledore-dev, kirkstone-dev) META_CASSINI_BUILD_IMAGE: value: none description: Comma separated list of images to build @@ -42,15 +46,7 @@ trigger-meta-cassini: - if: '$META_CASSINI_PROJECT == "" || $META_CASSINI_PROJECT == null' when: never - - if: '$CI_MERGE_REQUEST_IID' - variables: - META_CASSINI_TARGET_BRANCH: "${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}-dev" - - if: '$PARENT_PIPELINE_SOURCE == "schedule"' - variables: - META_CASSINI_TARGET_BRANCH: "${CI_COMMIT_BRANCH}-dev" - - if: '$META_CASSINI_TARGET_BRANCH == "" || - $META_CASSINI_TARGET_BRANCH == null' - when: never + - !reference [".build-image:rules:set-target-branch", rules] - !reference [".build-image:rules:k3s", rules] - !reference [".build-image:rules:k3s-dev", rules] - !reference [".build-image:rules:k3s-sdk", rules] diff --git a/.gitlab/ci/rules.yml b/.gitlab/ci/rules.yml index 0d1babf..79285a1 100644 --- a/.gitlab/ci/rules.yml +++ b/.gitlab/ci/rules.yml @@ -99,3 +99,18 @@ variables: META_CASSINI_BUILD_IMAGE: 'k3s' META_CASSINI_BUILD_PLATFORM: 'all-platforms' + +.build-image:rules:set-target-branch: + rules: + - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"' + variables: + META_CASSINI_TARGET_BRANCH: 'main' + - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "nanbield"' + variables: + META_CASSINI_TARGET_BRANCH: 'nanbield-dev' + - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "mickledore"' + variables: + META_CASSINI_TARGET_BRANCH: 'mickledore-dev' + - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "kirkstone"' + variables: + META_CASSINI_TARGET_BRANCH: 'kirkstone-dev' diff --git a/qa-checks/cassini-bsp-dictionary b/qa-checks/cassini-bsp-dictionary index ddc5690..e38c9a2 100644 --- a/qa-checks/cassini-bsp-dictionary +++ b/qa-checks/cassini-bsp-dictionary @@ -15,8 +15,8 @@ BUILDIN cassini cgroups config -CONFIG_AUTOFS_FS CONFIG_AUTOFS4_FS +CONFIG_AUTOFS_FS configfile corstone cpio @@ -36,11 +36,13 @@ gzio homepageping initscripts kernelcfg +kirkstone LIBC Linaro mandatoryvar mdev meta-cassini-bsp +mickledore modutils msdos mtrace -- GitLab From 0496eb3068b5b55a24f7d96780b60138d16fe3a3 Mon Sep 17 00:00:00 2001 From: Ali Can Ozaslan Date: Wed, 20 Mar 2024 15:36:03 +0000 Subject: [PATCH 2/3] ci: Adjust build rules Once the merge request is created, test all meta-cassini-bsp related platforms and images. Rearrange rules according to changes in meta-cassini and filter by relevance to meta-cassini-bsp Signed-off-by: Ali Can Ozaslan --- .gitlab-ci.yml | 17 +++++------- .gitlab/ci/rules.yml | 61 +++----------------------------------------- 2 files changed, 10 insertions(+), 68 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a1e8012..ae36e8d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,18 +15,17 @@ variables: description: Comma separated list of meta-cassini branch to trigger (none, main, nanbield-dev, mickledore-dev, kirkstone-dev) META_CASSINI_BUILD_IMAGE: - value: none + value: all-images description: Comma separated list of images to build - (none, all-images, k3s) + (none, all-images, greengrass, k3s) META_CASSINI_BUILD_PLATFORM: - value: none + value: corstone1000-fvp, n1sdp description: Comma separated list of platforms to build - (none, all-platforms, corstone1000-mps3, corstone1000-fvp, - n1sdp) + (none, corstone1000-fvp, n1sdp) META_CASSINI_FORCE_TESTS: value: none description: Comma separated list of tests that must be run - (all, ptest, acs, sanity) + (all, ptest, acs, sanity, idt_greengrass) # include jobs include: @@ -47,13 +46,9 @@ trigger-meta-cassini: $META_CASSINI_PROJECT == null' when: never - !reference [".build-image:rules:set-target-branch", rules] - - !reference [".build-image:rules:k3s", rules] - - !reference [".build-image:rules:k3s-dev", rules] - - !reference [".build-image:rules:k3s-sdk", rules] - - !reference [".build-image:rules:n1sdp-and-corstone1000", rules] + - !reference [".build-image:rules:common", rules] - !reference [".build-image:rules:n1sdp", rules] - !reference [".build-image:rules:corstone1000", rules] - - !reference [".build-image:rules:scheduled-or-manual", rules] trigger: project: $META_CASSINI_PROJECT branch: $META_CASSINI_TARGET_BRANCH diff --git a/.gitlab/ci/rules.yml b/.gitlab/ci/rules.yml index 79285a1..7f12b5e 100644 --- a/.gitlab/ci/rules.yml +++ b/.gitlab/ci/rules.yml @@ -1,26 +1,17 @@ -# SPDX-FileCopyrightText: Copyright 2023 Arm Limited and/or its +# SPDX-FileCopyrightText: Copyright 2023-2024 Arm Limited and/or its # affiliates # # SPDX-License-Identifier: MIT --- # Conditions -.if-merge-request: &if-merge-request - if: '$CI_MERGE_REQUEST_IID' - .if-merge-request-or-push: &if-merge-request-or-push if: '$CI_MERGE_REQUEST_IID || $CI_PIPELINE_SOURCE == "push"' -.if-scheduled-or-manual: &if-scheduled-or-manual - if: '$CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_SOURCE == "web"' - -.if-parent-scheduled-or-manual: &if-parent-scheduled-or-manual - if: '$PARENT_PIPELINE_SOURCE == "schedule" || - $PARENT_PIPELINE_SOURCE == "web"' - # Changes patterns .build-common: &build-common - "grub/**/*" - "meta-security/**/*" + - "conf/layer.conf" .build-n1sdp: &build-n1sdp - "conf/machine/include/n1sdp-cassini-extra-settings.inc" @@ -34,16 +25,12 @@ - "meta-arm/meta-arm-bsp/recipes-kernel/**/*" - "meta-arm/meta-arm-bsp/wic/*" -.build-n1sdp-and-corstone1000: &build-n1sdp-and-corstone1000 - - "conf/layer.conf" - # Build rules .build-image:rules:n1sdp: rules: - <<: *if-merge-request-or-push changes: *build-n1sdp variables: - META_CASSINI_BUILD_IMAGE: 'k3s' META_CASSINI_BUILD_PLATFORM: 'n1sdp' .build-image:rules:corstone1000: @@ -51,54 +38,14 @@ - <<: *if-merge-request-or-push changes: *build-corstone1000 variables: - META_CASSINI_BUILD_IMAGE: 'k3s' META_CASSINI_BUILD_PLATFORM: 'corstone1000-fvp' -.build-image:rules:n1sdp-and-corstone1000: - rules: - - <<: *if-merge-request-or-push - changes: *build-n1sdp-and-corstone1000 - variables: - META_CASSINI_BUILD_IMAGE: 'k3s' - META_CASSINI_BUILD_PLATFORM: 'n1sdp, corstone1000-fvp' - -.build-image:rules:k3s: +.build-image:rules:common: rules: - <<: *if-merge-request-or-push changes: *build-common variables: - META_CASSINI_BUILD_IMAGE: 'k3s' - META_CASSINI_BUILD_PLATFORM: 'all-platforms' - -.build-image:rules:k3s-dev: - rules: - - <<: *if-merge-request-or-push - changes: *build-common - variables: - META_CASSINI_BUILD_IMAGE: 'k3s' - META_CASSINI_BUILD_PLATFORM: 'all-platforms' - -.build-image:rules:k3s-sdk: - rules: - - <<: *if-merge-request-or-push - changes: *build-common - variables: - META_CASSINI_BUILD_IMAGE: 'k3s' - META_CASSINI_BUILD_PLATFORM: 'all-platforms' - -.build-image:rules:scheduled-or-manual: - rules: - - <<: *if-scheduled-or-manual - variables: - META_CASSINI_BUILD_IMAGE: 'k3s' - META_CASSINI_BUILD_PLATFORM: 'all-platforms' - -.build-image:rules:merge-request-or-push: - rules: - - <<: *if-merge-request-or-push - variables: - META_CASSINI_BUILD_IMAGE: 'k3s' - META_CASSINI_BUILD_PLATFORM: 'all-platforms' + META_CASSINI_BUILD_PLATFORM: 'n1sdp, corstone1000-fvp' .build-image:rules:set-target-branch: rules: -- GitLab From d8abdc0b1fcfdeaad544d6968e490fdcd43d692b Mon Sep 17 00:00:00 2001 From: Ali Can Ozaslan Date: Wed, 20 Mar 2024 15:50:55 +0000 Subject: [PATCH 3/3] ci: Fix download results The Download Results job is never created because it has only a rule that only blocks the job and duplicates with the trigger rule. Duplicating rule for two jobs has been made common. Only when the trigger-meta-cassini job is created, the download results job is created. Signed-off-by: Ali Can Ozaslan --- .gitlab-ci.yml | 8 +++----- .gitlab/ci/rules.yml | 8 ++++++++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ae36e8d..67857c5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -42,9 +42,7 @@ trigger-meta-cassini: variables: false stage: Build rules: - - if: '$META_CASSINI_PROJECT == "" || - $META_CASSINI_PROJECT == null' - when: never + - !reference [".build-image:rules:skip-target-build", rules] - !reference [".build-image:rules:set-target-branch", rules] - !reference [".build-image:rules:common", rules] - !reference [".build-image:rules:n1sdp", rules] @@ -72,8 +70,8 @@ trigger-meta-cassini: Download-Results: stage: Test rules: - - if: '$META_CASSINI_PROJECT == "" || $META_CASSINI_TARGET_BRANCH == ""' - when: never + - !reference [".build-image:rules:skip-target-build", rules] + - when: always extends: .resource-request image: "${MIRROR_DOCKER}/python:slim" dependencies: diff --git a/.gitlab/ci/rules.yml b/.gitlab/ci/rules.yml index 7f12b5e..5420160 100644 --- a/.gitlab/ci/rules.yml +++ b/.gitlab/ci/rules.yml @@ -7,6 +7,9 @@ .if-merge-request-or-push: &if-merge-request-or-push if: '$CI_MERGE_REQUEST_IID || $CI_PIPELINE_SOURCE == "push"' +.if-no-target-project: &if-no-target-project + if: '$META_CASSINI_PROJECT == "" || $META_CASSINI_PROJECT == null' + # Changes patterns .build-common: &build-common - "grub/**/*" @@ -61,3 +64,8 @@ - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "kirkstone"' variables: META_CASSINI_TARGET_BRANCH: 'kirkstone-dev' + +.build-image:rules:skip-target-build: + rules: + - <<: *if-no-target-project + when: never -- GitLab