1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-07-04 16:30:12 +02:00
fdroidserver/.gitlab-ci.yml
Hans-Christoph Steiner 22563bdf17 gitlab-ci: make metadata_v0 test work even when tags are missing
This uses the commit ID of the release tags, rather than the release tag
itself so that contributor forks do not need to include the tags in them
for this test to work.

The COMMIT_ID should be bumped after each release, so that the list of sed
hacks needed does not continuously grow.
2018-01-22 14:00:20 +01:00

128 lines
5.1 KiB
YAML

test:
image: registry.gitlab.com/fdroid/ci-images-server:latest
script:
- pip3 install -e .
- cd tests
- ./complete-ci-tests
# Test that the parsing of the .txt format didn't change from last
# released version. This uses the commit ID of the release tags,
# rather than the release tag itself so that contributor forks do not
# need to include the tags in them for this test to work.
#
# The COMMIT_ID should be bumped after each release, so that the list
# of sed hacks needed does not continuously grow.
metadata_v0:
image: registry.gitlab.com/fdroid/ci-images-server:latest
variables:
RELEASE_COMMIT_ID: 6d69dcddd95fe08ffe431e305932cfdeafd6fc9d # 1.0.0
script:
- git fetch https://gitlab.com/fdroid/fdroidserver $RELEASE_COMMIT_ID
- cd tests
- export GITCOMMIT=`git describe`
- git checkout $RELEASE_COMMIT_ID
- cd ..
- git clone --depth 1 https://gitlab.com/fdroid/fdroiddata
- cd fdroiddata
- ../tests/dump_internal_metadata_format.py
- cd ..
- git reset --hard
- git checkout $GITCOMMIT
- cd fdroiddata
- ../tests/dump_internal_metadata_format.py
- diff -uw metadata/dump_*
debian_testing:
image: debian:testing
only:
- master@fdroid/fdroidserver
script:
- apt update -y
- apt dist-upgrade -y
- apt-get install -y --no-install-recommends
aapt adb android-platform-tools-base android-sdk-common fdroidserver
git gnupg python3-setuptools zipalign
- export ANDROID_HOME=/usr/lib/android-sdk
- export LANG=C.UTF-8
- cd tests
- rm -f install.TestCase # fails frequently and is unimportant
- echo "Debian's build-tools is too old, remove once the package has been updated"
- sed -i '/android.permission.READ_EXTERNAL_STORAGE/d' repo/index.xml
- sed -i '/^diff -uw .*index-v1.json$/d' run-tests
- ./run-tests
ubuntu_lts:
image: ubuntu:latest
only:
- master@fdroid/fdroidserver
script:
- apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 9AAC253193B65D4DF1D0A13EEC4632C79C5E0151
- export RELEASE=`sed -n 's,^deb [^ ][^ ]* \([a-z]*\).*,\1,p' /etc/apt/sources.list | head -1`
- echo "deb http://ppa.launchpad.net/fdroid/fdroidserver/ubuntu $RELEASE main" >> /etc/apt/sources.list
- apt update -y
- apt dist-upgrade -y
- apt-get install -y --no-install-recommends
aapt adb android-platform-tools-base android-sdk-common fdroidserver
git gnupg python3-setuptools unzip wget zipalign
- export ANDROID_HOME=/usr/lib/android-sdk
# xenial's aapt is too old
- wget --no-verbose https://dl.google.com/android/repository/build-tools_r27.0.1-linux.zip
- unzip -q build-tools_r27.0.1-linux.zip
- rm build-tools_r27.0.1-linux.zip
- mv android-8.1.0 $ANDROID_HOME/build-tools/27.0.1
- export LANG=C.UTF-8
- cd tests
- ./run-tests
pip_install:
image: archlinux/base
only:
- master@fdroid/fdroidserver
script:
- pacman --sync --sysupgrade --refresh --noconfirm grep python-pip python-virtualenv tar
# setup venv to act as release build machine
- python -m venv sdist-env
- . sdist-env/bin/activate
- ./setup.py compile_catalog sdist
- deactivate
- tar tzf dist/fdroidserver-*.tar.gz | grep locale/de/LC_MESSAGES/fdroidserver.mo
# back to bare machine to act as user's install machine
- pip install dist/fdroidserver-*.tar.gz
- test -e /usr/share/locale/de/LC_MESSAGES/fdroidserver.mo
- fdroid
- fdroid readmeta
- fdroid update --help
fedora_latest:
image: fedora:latest
only:
- master@fdroid/fdroidserver
script:
- dnf -y update
- dnf -y install git gnupg java-1.8.0-openjdk-devel python3 python3-babel
python3-pip rsync unzip wget
- ./setup.py compile_catalog sdist
- useradd -m -c "test account" --password "fakepassword" testuser
- su testuser --login --command "cd `pwd`; pip3 install --user dist/fdroidserver-*.tar.gz"
- test -e ~testuser/.local/share/locale/de/LC_MESSAGES/fdroidserver.mo
- wget --no-verbose -O tools.zip https://dl.google.com/android/repository/tools_r25.2.4-linux.zip
- unzip -q tools.zip
- rm tools.zip
- export AAPT_VERSION=`sed -n "s,^MINIMUM_AAPT_VERSION\s*=\s*['\"]\(.*\)[['\"],\1,p" fdroidserver/common.py`
- export ANDROID_HOME=`pwd`/android-sdk
- mkdir $ANDROID_HOME
- mv tools $ANDROID_HOME/
- mkdir -p $ANDROID_HOME/licenses/
- printf "\n8933bad161af4178b1185d1a37fbf41ea5269c55\nd56f5187479451eabf01fb78af6dfcb131a6481e" > $ANDROID_HOME/licenses/android-sdk-license
- printf "\n84831b9409646a918e30573bab4c9c91346d8abd" > $ANDROID_HOME/licenses/android-sdk-preview-license
- printf "\n79120722343a6f314e0719f863036c702b0e6b2a\n84831b9409646a918e30573bab4c9c91346d8abd" > $ANDROID_HOME/licenses/android-sdk-preview-license-old
- mkdir ~/.android
- touch ~/.android/repositories.cfg
- echo y | $ANDROID_HOME/tools/bin/sdkmanager "platform-tools"
- echo y | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;$AAPT_VERSION"
- chown -R testuser .
- cd tests
- su testuser --login --command
"cd `pwd`; export ANDROID_HOME=$ANDROID_HOME; fdroid=~testuser/.local/bin/fdroid ./run-tests"