fdroid-data/.gitlab-ci.yml

145 lines
5.2 KiB
YAML

image: registry.gitlab.com/fdroid/ci-images-server:latest
lint:
before_script:
- printf "Package\x3a androguard fdroidserver python3-asn1crypto python3-ruamel.yaml\nPin\x3a release a=stretch-backports\nPin-Priority\x3a 500\n" > /etc/apt/preferences.d/debian-stretch-backports.pref
- echo "deb http://deb.debian.org/debian/ stretch-backports main" > /etc/apt/sources.list.d/backports.list
- apt-get update
- apt-get -qy dist-upgrade
- rm -rf fdroidserver
- mkdir fdroidserver
- curl --silent https://gitlab.com/fdroid/fdroidserver/repository/master/archive.tar.gz
| tar -xz --directory=fdroidserver --strip-components=1
- export PATH="$PWD/fdroidserver:$PATH"
- touch config.py
script:
# if this is a merge request fork, then only check relevant apps
- if [ "$CI_PROJECT_NAMESPACE" != "fdroid" ]; then
git fetch https://gitlab.com/fdroid/fdroiddata;
test -d build || mkdir build;
for f in `git diff --name-only --diff-filter=d FETCH_HEAD...HEAD`; do
appid=`echo $f | sed -n -e 's,^metadata/\([^/][^/]*\)\.txt,\1,p'
-e 's,^metadata/\([^/][^/]*\)\.yml,\1,p'`;
export CHANGED="$CHANGED $appid";
grep -q "^Repo *Type\W *git$" $f && tail -1 $f | grep -qv '^NoSourceSince' && git -C build clone `sed -n "s,^Repo *:,,p" $f` $appid;
done;
./tools/audit-gradle.py $CHANGED;
fi
- export EXITVALUE=0
- fdroid lint -f $CHANGED || {
export EXITVALUE=1;
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;
}
- apt-get -qy update
- apt-get -qy install --no-install-recommends exiftool
- find metadata/ -name '*.jp*g' -o -name '*.png' | xargs exiftool -all=
- echo "these images have EXIF that must be stripped:"
- git --no-pager diff --stat
- git --no-pager diff --name-only --exit-code || export EXITVALUE=1
- ./tools/check-localized-metadata.py || export EXITVALUE=1
- ./tools/check-keyalias-collision.py || export EXITVALUE=1
- ./tools/check-metadata-summary-whitespace.py || export EXITVALUE=1
- exit $EXITVALUE
pages:
image: ruby:2.3
stage: deploy
only:
- schedules
cache:
key: "$CI_JOB_NAME"
paths:
- vendor/ruby
artifacts:
paths:
- public
script:
- rm -rf public
- gem install git_stats
- git_stats generate --silent --out-path=public
check_git_repos:
image: debian:buster-slim
stage: test
only:
- schedules
artifacts:
when: on_failure
expire_in: 1 month
paths:
- public
script:
- apt-get update
- apt-get -qy install --no-install-recommends ca-certificates git python3-yaml
- tools/check-git-repo-availability.py || export EXITVALUE=1
- test -d public || mkdir public
- cp `git status | grep -Eo 'metadata/.*\.yml'` public/ || true
- exit $EXITVALUE
fdroid-buildserver:
tags:
- fdroid
- buildserver
only:
- DONOTRUN
# - branches@beuc/fdroiddata
# - branches@Bubu/fdroiddata
# - branches@eighthave/fdroiddata
# - branches@fdroid/fdroiddata
# - branches@grote/fdroiddata
# - branches@izzysoft/fdroiddata
# - branches@schildbach/fdroiddata
# - branches@uniqx/fdroiddata
artifacts:
name: "${CI_PROJECT_PATH}_${CI_JOB_STAGE}_${CI_COMMIT_REF_NAME}_${CI_COMMIT_SHA}"
paths:
- json
- libscout-logs
- logs
- stats
- unsigned
expire_in: 1 week
when: always
cache:
key: "$CI_JOB_NAME"
paths:
- build
- unsigned
script:
- virsh -c qemu:///system destroy builder_default || true
- virsh -c qemu:///system undefine builder_default
--nvram --managed-save --remove-all-storage --snapshots-metadata || true
- git -C $HOME/fdroidserver reset --hard
- git -C $HOME/fdroidserver checkout -B master origin/master
- export PATH="$HOME/fdroidserver:$PATH"
- if [ "$CI_PROJECT_NAMESPACE" = "fdroid" ]; then
export head=HEAD^^^;
echo ORIG_HEAD `git diff --name-only --diff-filter=d ORIG_HEAD...HEAD
| sed -n -e 's,^metadata/\([^/][^/]*\)\.txt,\1,p' -e 's,^metadata/\([^/][^/]*\)\.yml,\1,p'`;
else
git fetch https://gitlab.com/fdroid/fdroiddata.git;
export head=FETCH_HEAD;
fi
- export appids=`git diff --name-only --diff-filter=d $head...HEAD
| sed -n -e 's,^metadata/\([^/][^/]*\)\.txt,\1,p' -e 's,^metadata/\([^/][^/]*\)\.yml,\1,p'`
- echo $appids | grep '\w' || exit 0
- fdroid build --verbose --server --stop --no-tarball --latest $appids
- find unsigned -maxdepth 0 -empty -exec exit 0 \;
- cd ~/libscout
- java -jar build/LibScout.jar -o match -a lib/android-23.jar -p profiles
-j $CI_PROJECT_DIR/json
-s $CI_PROJECT_DIR/stats
-d $CI_PROJECT_DIR/libscout-logs
$CI_PROJECT_DIR/unsigned
- for f in $CI_PROJECT_DIR/libscout-logs/*.log; do printf "\n\n$f\n"; cut -b43-160 $f; done
- for f in `find $CI_PROJECT_DIR/json -name \*.json`; do cat $f | python3 -m json.tool; done
after_script:
- test -d builder || exit 0
- cd builder
- vagrant destroy --force