diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 83ca3b3794..d8a3bdf06b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -37,7 +37,7 @@ checkupdates: set -xe if [ "$CI_PROJECT_NAMESPACE" = "fdroid" ]; then echo "not testing in fdroid"; exit 0; fi git fetch https://gitlab.com/fdroid/fdroiddata.git - appids=$(git diff --name-only --diff-filter=d FETCH_HEAD...${CI_EXTERNAL_PULL_REQUEST_TARGET_BRANCH_SHA:-HEAD} "metadata/*.yml" | sed -n -e 's,^metadata/\([^/][^/]*\)\.yml,\1,p') + appids=$(git diff --name-only --diff-filter=d ${CI_EXTERNAL_PULL_REQUEST_TARGET_BRANCH_SHA:-FETCH_HEAD^}...HEAD "metadata/*.yml" | sed -n -e 's,^metadata/\([^/][^/]*\)\.yml,\1,p') if [ -n "$appids" ]; then fdroid checkupdates --auto -v $appids git --no-pager diff --color=always --exit-code @@ -67,7 +67,7 @@ lint: - if [ "$CI_PROJECT_NAMESPACE" != "fdroid" ]; then git fetch https://gitlab.com/fdroid/fdroiddata.git; test -d build || mkdir build; - files=`git diff --name-only --diff-filter=d FETCH_HEAD...${CI_EXTERNAL_PULL_REQUEST_TARGET_BRANCH_SHA:-HEAD}`; + files=`git diff --name-only --diff-filter=d ${CI_EXTERNAL_PULL_REQUEST_TARGET_BRANCH_SHA:-FETCH_HEAD^}...HEAD`; for f in $files; do appid=`echo $f | sed -n -e 's,^metadata/\([^/][^/]*\)\.yml,\1,p'`; if [ -n "$appid" ]; then @@ -121,7 +121,7 @@ schema validation: - git fetch https://gitlab.com/fdroid/fdroiddata.git - set -xe - for file in - $(git diff --name-only --diff-filter=d FETCH_HEAD...${CI_EXTERNAL_PULL_REQUEST_TARGET_BRANCH_SHA:-HEAD} -- "metadata/*.yml"); + $(git diff --name-only --diff-filter=d ${CI_EXTERNAL_PULL_REQUEST_TARGET_BRANCH_SHA:-FETCH_HEAD^}...HEAD -- "metadata/*.yml"); do ajv validate -s schemas/metadata.json -d "$file"; done @@ -250,19 +250,33 @@ fdroid build: - /home/vagrant/.gradle script: - unset CI - - git fetch https://gitlab.com/fdroid/fdroiddata.git; - test -d build || mkdir build - - for f in - `git diff --name-only --diff-filter=d FETCH_HEAD...${CI_EXTERNAL_PULL_REQUEST_TARGET_BRANCH_SHA:-HEAD} -- metadata/*.yml` - `git diff --name-only --diff-filter=d FETCH_HEAD...${CI_EXTERNAL_PULL_REQUEST_TARGET_BRANCH_SHA:-HEAD} -- metadata/*/signatures`; - do - diff=$(git diff FETCH_HEAD...${CI_EXTERNAL_PULL_REQUEST_TARGET_BRANCH_SHA:-HEAD} -- $f); - echo "$diff"; - test $(echo "$diff" | grep '^[+-] ' | grep -v '^+ *disable:' | wc -l) = 0 && continue; - echo "$diff" | grep -E '^\+ *(NoSourceSince|Disabled):' && continue; - appid=`echo $f | sed -E -n 's,^metadata/([^/][^/]*)(\.yml|/signatures/.*),\1,p'`; - export CHANGED="$CHANGED $appid"; - done; + - if [ "$CI_PROJECT_PATH" = "fdroid/fdroiddata" ] && [ "$CI_COMMIT_BRANCH" = "$CI_DEFAULT_BRANCH" ]; then + for f in + `git diff --name-only --diff-filter=d -- metadata/*.yml` + `git diff --name-only --diff-filter=d -- metadata/*/signatures`; + do + diff=$(git diff -- $f); + echo "$diff"; + test $(echo "$diff" | grep '^[+-] ' | grep -v '^+ *disable:' | wc -l) = 0 && continue; + echo "$diff" | grep -E '^\+ *(NoSourceSince|Disabled):' && continue; + appid=`echo $f | sed -E -n 's,^metadata/([^/][^/]*)(\.yml|/signatures/.*),\1,p'`; + export CHANGED="$CHANGED $appid"; + done; + else + git fetch https://gitlab.com/fdroid/fdroiddata.git; + for f in + `git diff --name-only --diff-filter=d ${CI_EXTERNAL_PULL_REQUEST_TARGET_BRANCH_SHA:-FETCH_HEAD^}...HEAD -- metadata/*.yml` + `git diff --name-only --diff-filter=d ${CI_EXTERNAL_PULL_REQUEST_TARGET_BRANCH_SHA:-FETCH_HEAD^}...HEAD -- metadata/*/signatures`; + do + diff=$(git diff ${CI_EXTERNAL_PULL_REQUEST_TARGET_BRANCH_SHA:-FETCH_HEAD^}...HEAD -- $f); + echo "$diff"; + test $(echo "$diff" | grep '^[+-] ' | grep -v '^+ *disable:' | wc -l) = 0 && continue; + echo "$diff" | grep -E '^\+ *(NoSourceSince|Disabled):' && continue; + appid=`echo $f | sed -E -n 's,^metadata/([^/][^/]*)(\.yml|/signatures/.*),\1,p'`; + export CHANGED="$CHANGED $appid"; + done; + fi; - test -n "$(printf "$CHANGED" | tr -d '[:space:]')" || { echo "no packages need processing, exiting"; exit 0; }