From ad0a712a50367c20b820c4966f0831aab6063fff Mon Sep 17 00:00:00 2001 From: linsui Date: Fri, 28 Oct 2022 21:36:36 +0800 Subject: [PATCH] Only run lint on changed files --- .gitlab-ci.yml | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 20918e5605..f742946447 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -44,7 +44,7 @@ variables: export SOURCE_REF="${CI_COMMIT_SHA}" fi; -.get_changed_apps: &get_changed_apps +.get_changed_builds: &get_changed_builds - *get_target_source_refs - echo $TARGET_REF - | @@ -57,6 +57,16 @@ variables: export CHANGED="$CHANGED $appid" done +.get_changed_apps: &get_changed_apps + - *get_target_source_refs + - echo $TARGET_REF + - | + for f in $(git diff --name-only --diff-filter=d "${TARGET_REF}...${SOURCE_REF}" -- metadata/*.yml) $(git diff --name-only --diff-filter=d "${TARGET_REF}...${SOURCE_REF}" -- metadata/*/signatures); do + diff=$(git diff "${TARGET_REF}...${SOURCE_REF}" -- "$f") + appid=$(echo "$f" | sed -E -n 's,^metadata/([^/][^/]*)(\.yml|/signatures/.*),\1,p') + export CHANGED="$CHANGED $appid" + done + .app_verification_rules: rules: &app_verification_rules - if: $CI_PIPELINE_SOURCE == "pipeline" || $CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_SOURCE == "trigger" @@ -80,7 +90,7 @@ checkupdates: - | set -xe if [ "$CI_PROJECT_NAMESPACE" = "fdroid" ]; then echo "not testing in fdroid"; exit 0; fi - - *get_changed_apps + - *get_changed_builds - | if [ -n "$CHANGED" ]; then fdroid checkupdates --auto -v $CHANGED @@ -100,14 +110,17 @@ fdroid lint: - *get_changed_apps - export EXITVALUE=0 - function set_error() { export EXITVALUE=1; printf "\x1b[31mERROR `history|tail -2|head -1|cut -b 6-500`\x1b[0m\n"; } - - fdroid lint -f $CHANGED || { - set_error; - printf "\nThese files have lint issues:\n"; - fdroid rewritemeta -l $CHANGED; - printf "\nThese are the formatting issues:\n"; - fdroid rewritemeta $CHANGED; - git --no-pager diff --color=always; - } + - | + if [ -n "$CHANGED" ]; then + fdroid lint -f $CHANGED || { + set_error; + printf "\nThese files have lint issues:\n"; + fdroid rewritemeta -l $CHANGED; + printf "\nThese are the formatting issues:\n"; + fdroid rewritemeta $CHANGED; + git --no-pager diff --color=always; + } + fi - exit $EXITVALUE lint: @@ -289,7 +302,7 @@ fdroid build: ANDROID_SDK_ROOT: ${ANDROID_HOME} script: - test -d build || mkdir build - - *get_changed_apps + - *get_changed_builds - test -n "$(printf "$CHANGED" | tr -d '[:space:]')" || { echo "no packages need processing, exiting"; exit 0; }