diff --git a/.ci/lib/check_changed_kernels.py b/.ci/lib/check_changed_kernels.py index f360818e5..1592b17a2 100755 --- a/.ci/lib/check_changed_kernels.py +++ b/.ci/lib/check_changed_kernels.py @@ -26,6 +26,11 @@ def check_kconfig(pkgnames): return last_failed +def check_kconfig_all(): + p = subprocess.run(["pmbootstrap", "kconfig", "check"], check=False) + return p.returncode == 0 + + def show_error(last_failed): print("") print("---") @@ -46,8 +51,39 @@ def show_error(last_failed): print("") +def show_error_all(): + print("") + print("---") + print("") + print("Please adjust the failed kernel configs. This is required for") + print("getting your patch merged.") + print("") + print("If a kernel in the testing category failed, and fixing is too much") + print("effort, remove 'pmb:kconfigcheck-community' from the APKBUILD.") + print("") + print("Edit a kernel config:") + print(" pmbootstrap kconfig edit ") + print("") + print("Test a specific kernel config again:") + print(" pmbootstrap kconfig check ") + print("") + print("Run this check again (on all kernels you modified):") + print(" pmbootstrap ci kconfig") + print("") + print("---") + print("") + + if __name__ == "__main__": common.add_upstream_git_remote() + + if "kconfigcheck.toml" in common.get_changed_files(): + print("kconfigcheck.toml changed -> checking all kernels") + if not check_kconfig_all(): + show_error_all() + exit(1) + exit(0) + pkgnames = common.get_changed_kernels() print(f"Changed kernels: {pkgnames}") diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 06dea0676..340085962 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -102,6 +102,7 @@ kernel-kconfig: rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_PROTECTED == "false" changes: + - kconfigcheck.toml - device/*/linux-*/config-* - main/linux-*/config-* script: