From 27cd003d1b02f1c800aeb631a80bd86aace6ed4a Mon Sep 17 00:00:00 2001 From: lemoer Date: Thu, 16 Sep 2021 00:01:41 +0200 Subject: [PATCH] actions: rebuild targets if includes change --- .github/filters.yml | 16 +++++++++++----- Makefile | 2 +- contrib/actions/generate-target-filters.py | 14 ++++++++++++++ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/.github/filters.yml b/.github/filters.yml index bde1a69d..0a812af9 100644 --- a/.github/filters.yml +++ b/.github/filters.yml @@ -21,7 +21,8 @@ "Makefile", "patches/**", "targets/generic", - "targets/targets.mk" + "targets/targets.mk", + "targets/bcm27xx.inc" ], "bcm27xx-bcm2709": [ "targets/bcm27xx-bcm2709", @@ -29,7 +30,8 @@ "Makefile", "patches/**", "targets/generic", - "targets/targets.mk" + "targets/targets.mk", + "targets/bcm27xx.inc" ], "ipq40xx-generic": [ "targets/ipq40xx-generic", @@ -133,7 +135,8 @@ "Makefile", "patches/**", "targets/generic", - "targets/targets.mk" + "targets/targets.mk", + "targets/x86.inc" ], "x86-geode": [ "targets/x86-geode", @@ -149,7 +152,8 @@ "Makefile", "patches/**", "targets/generic", - "targets/targets.mk" + "targets/targets.mk", + "targets/x86.inc" ], "x86-64": [ "targets/x86-64", @@ -158,6 +162,7 @@ "patches/**", "targets/generic", "targets/targets.mk", + "targets/x86.inc", "contrib/ci/minimal-site/**", "package/**" ], @@ -167,7 +172,8 @@ "Makefile", "patches/**", "targets/generic", - "targets/targets.mk" + "targets/targets.mk", + "targets/bcm27xx.inc" ], "mvebu-cortexa9": [ "targets/mvebu-cortexa9", diff --git a/Makefile b/Makefile index 401f8cb6..b49ebe80 100644 --- a/Makefile +++ b/Makefile @@ -104,7 +104,7 @@ update-modules: FORCE @scripts/update-modules.sh update-ci: FORCE - @scripts/update-ci.sh + @$(GLUON_ENV) scripts/update-ci.sh GLUON_TARGETS := diff --git a/contrib/actions/generate-target-filters.py b/contrib/actions/generate-target-filters.py index 084ce104..b74bfe4e 100755 --- a/contrib/actions/generate-target-filters.py +++ b/contrib/actions/generate-target-filters.py @@ -3,6 +3,8 @@ # Update target filters using # make update-ci +import re +import os import sys import json @@ -23,6 +25,13 @@ extra = [ _filter = dict() +# INCLUDE_PATTERN matches: +# include '...' +# include "..." +# include("...") +# include('...') +INCLUDE_PATTERN = "^\\s*include *\\(? *[\"']([^\"']+)[\"']" + # construct filters map from stdin for target in sys.stdin: target = target.strip() @@ -31,6 +40,11 @@ for target in sys.stdin: f"targets/{target}" ] + common + target_file = os.path.join(os.environ['GLUON_TARGETSDIR'], target) + with open(target_file) as f: + includes = re.findall(INCLUDE_PATTERN, f.read(), re.MULTILINE) + _filter[target].extend([f"targets/{i}" for i in includes]) + if target == "x86-64": _filter[target].extend(extra)