diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fc651c27f1..a74dca4851 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -56,6 +56,59 @@ lint: - exit $EXITVALUE +fdroid build: + image: registry.gitlab.com/fdroid/ci-images-client:latest + allow_failure: true + artifacts: + name: "${CI_PROJECT_PATH}_${CI_JOB_STAGE}_${CI_COMMIT_REF_NAME}_${CI_COMMIT_SHA}" + paths: + - unsigned/ + when: always + expire_in: 1 month + only: + refs: + - merge_requests + changes: + - metadata/*.yml + cache: + key: "$CI_JOB_NAME" + paths: + - .gradle + script: + - 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 -- metadata/*.yml`; do + git diff FETCH_HEAD...HEAD -- $f |grep -E '^\+ *(NoSourceSince|Disabled|disable):' && continue; + appid=`echo $f | sed -n -e 's,^metadata/\([^/][^/]*\)\.yml,\1,p'`; + export CHANGED="$CHANGED $appid"; + done; + - test -n "$(printf "$CHANGED" | tr -d '[:space:]')" + || { echo "no packages need processing, exiting"; exit 0; } + + - test -d 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" + - export PYTHONPATH="`pwd`/fdroidserver" + - export PYTHONUNBUFFERED=true + + - bash fdroidserver/buildserver/provision-apt-get-install http://deb.debian.org/debian + - apt-get dist-upgrade + - apt-get install sudo # TODO REMOVE ME once merged https://gitlab.com/fdroid/fdroidserver/-/merge_requests/753 + + # install fdroidserver from git, with deps from Debian, until fdroidserver + # is stable enough to include all the things needed here + - apt-get install -t stretch-backports + fdroidserver + python3-asn1crypto + python3-ruamel.yaml + yamllint + - apt-get purge fdroidserver + + - export GRADLE_USER_HOME=$PWD/.gradle + - fdroid build --verbose --on-server --latest --no-tarball --no-refresh $CHANGED + + pages: image: registry.gitlab.com/fdroid/ci-images-client:latest only: @@ -122,65 +175,3 @@ check_git_repos: - 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/\([^/][^/]*\)\.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/\([^/][^/]*\)\.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