Out-of-tree users could run an out-of-tree CI with limited coverage, however it is convenient to be able to run the upstream CI from time to time. To enable that we would need to change job rules to be able to run on any GitLab event. Excerpt from GitLab documentation:
> Jobs with no rules default to except: merge_requests Signed-off-by: Andrejs Cainikovs <andrejs.cainik...@toradex.com> --- .gitlab-ci.yml | 46 +++++++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1df13261c2d..a080bd32c64 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,6 +21,8 @@ stages: .buildman_and_testpy_template: &buildman_and_testpy_dfn stage: test.py retry: 2 # QEMU may be too slow, etc. + rules: + - when: always before_script: # Clone uboot-test-hooks - git config --global --add safe.directory "${CI_PROJECT_DIR}" @@ -93,8 +95,13 @@ stages: - "*.css" expire_in: 1 week -build all 32bit ARM platforms: +.world_build: stage: world build + rules: + - when: always + +build all 32bit ARM platforms: + extends: .world_build script: - ret=0; git config --global --add safe.directory "${CI_PROJECT_DIR}"; @@ -106,7 +113,7 @@ build all 32bit ARM platforms: fi; build all 64bit ARM platforms: - stage: world build + extends: .world_build script: - virtualenv -p /usr/bin/python3 /tmp/venv - . /tmp/venv/bin/activate @@ -120,7 +127,7 @@ build all 64bit ARM platforms: fi; build all PowerPC platforms: - stage: world build + extends: .world_build script: - ret=0; git config --global --add safe.directory "${CI_PROJECT_DIR}"; @@ -131,7 +138,7 @@ build all PowerPC platforms: fi; build all other platforms: - stage: world build + extends: .world_build script: - ret=0; git config --global --add safe.directory "${CI_PROJECT_DIR}"; @@ -141,8 +148,13 @@ build all other platforms: exit $ret; fi; -check for new CONFIG symbols outside Kconfig: +.testsuites: stage: testsuites + rules: + - when: always + +check for new CONFIG symbols outside Kconfig: + extends: .testsuites script: - git config --global --add safe.directory "${CI_PROJECT_DIR}" # If grep succeeds and finds a match the test fails as we should @@ -154,13 +166,13 @@ check for new CONFIG symbols outside Kconfig: # QA jobs for code analytics # static code analysis with cppcheck (we can add --enable=all later) cppcheck: - stage: testsuites + extends: .testsuites script: - cppcheck -j$(nproc) --force --quiet --inline-suppr . # search for TODO within source tree grep TODO/FIXME/HACK: - stage: testsuites + extends: .testsuites script: - grep -r TODO . - grep -r FIXME . @@ -169,7 +181,7 @@ grep TODO/FIXME/HACK: # build documentation docs: - stage: testsuites + extends: .testsuites script: - virtualenv -p /usr/bin/python3 /tmp/venvhtml - . /tmp/venvhtml/bin/activate @@ -179,30 +191,30 @@ docs: # some statistics about the code base sloccount: - stage: testsuites + extends: .testsuites script: - sloccount . # ensure all configs have MAINTAINERS entries Check for configs without MAINTAINERS entry: - stage: testsuites + extends: .testsuites script: - ./tools/buildman/buildman --maintainer-check || exit 0 # Ensure host tools build Build tools-only: - stage: testsuites + extends: .testsuites script: - make tools-only_config tools-only -j$(nproc) # Ensure env tools build Build envtools: - stage: testsuites + extends: .testsuites script: - make tools-only_config envtools -j$(nproc) Run binman, buildman, dtoc, Kconfig and patman testsuites: - stage: testsuites + extends: .testsuites script: - git config --global user.name "GitLab CI Runner"; git config --global user.email tr...@konsulko.com; @@ -226,7 +238,7 @@ Run binman, buildman, dtoc, Kconfig and patman testsuites: make testconfig Run tests for Nokia RX-51 (aka N900): - stage: testsuites + extends: .testsuites script: - mkdir nokia_rx51_tmp; ln -s /opt/nokia/u-boot-gen-combined nokia_rx51_tmp/; @@ -240,7 +252,7 @@ Run tests for Nokia RX-51 (aka N900): # Check for any pylint regressions Run pylint: - stage: testsuites + extends: .testsuites script: - git config --global --add safe.directory "${CI_PROJECT_DIR}" - pip install -r test/py/requirements.txt @@ -260,7 +272,7 @@ Run pylint: # Check for pre-schema driver model tags Check for pre-schema tags: - stage: testsuites + extends: .testsuites script: - git config --global --add safe.directory "${CI_PROJECT_DIR}"; # If grep succeeds and finds a match the test fails as we should @@ -269,7 +281,7 @@ Check for pre-schema tags: # Check we can package the Python tools Check packing of Python tools: - stage: testsuites + extends: .testsuites script: - make pip -- 2.34.1