mirror of
				https://github.com/f-droid/fdroidserver.git
				synced 2025-11-04 06:30:27 +03:00 
			
		
		
		
	move tests into common script for jenkins and gitlab-ci
This commit is contained in:
		
							parent
							
								
									3fc2a99d71
								
							
						
					
					
						commit
						e6c0be8898
					
				
					 3 changed files with 107 additions and 92 deletions
				
			
		| 
						 | 
				
			
			@ -3,9 +3,9 @@ before_script:
 | 
			
		|||
  - echo " == Installing required packages"
 | 
			
		||||
  - apt-get -q install -y wget tar lib32stdc++6 lib32z1
 | 
			
		||||
      python pyflakes pep8 dash bash ruby
 | 
			
		||||
      python-imaging python-libcloud python-magic python-paramiko
 | 
			
		||||
      python-pyasn1 python-pyasn1-modules python-requests
 | 
			
		||||
      python-yaml
 | 
			
		||||
      python-imaging python-libcloud python-logilab-astng python-magic
 | 
			
		||||
      python-paramiko python-pip python-pyasn1 python-pyasn1-modules
 | 
			
		||||
      python-requests python-yaml
 | 
			
		||||
      rsync
 | 
			
		||||
  - echo " == Installing OpenJDK 7"
 | 
			
		||||
  - apt-get -q install -y openjdk-7-jdk
 | 
			
		||||
| 
						 | 
				
			
			@ -22,6 +22,5 @@ before_script:
 | 
			
		|||
 | 
			
		||||
test:
 | 
			
		||||
  script:
 | 
			
		||||
    - ./hooks/pre-commit
 | 
			
		||||
    - cd tests
 | 
			
		||||
    - ./run-tests
 | 
			
		||||
    - ./complete-ci-tests
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,91 +12,6 @@ fi
 | 
			
		|||
set -e
 | 
			
		||||
set -x
 | 
			
		||||
 | 
			
		||||
if [ -z $WORKSPACE ]; then
 | 
			
		||||
    export WORKSPACE=`pwd`
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ -z $ANDROID_HOME ]; then
 | 
			
		||||
    if [ -e ~/.android/bashrc ]; then
 | 
			
		||||
        . ~/.android/bashrc
 | 
			
		||||
    else
 | 
			
		||||
        echo "ANDROID_HOME must be set!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------#
 | 
			
		||||
# cache pypi downloads
 | 
			
		||||
if [ -z $PIP_DOWNLOAD_CACHE ]; then
 | 
			
		||||
    export PIP_DOWNLOAD_CACHE=$HOME/.pip_download_cache
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------#
 | 
			
		||||
# required Java 7 keytool/jarsigner for :file support
 | 
			
		||||
 | 
			
		||||
export PATH=/usr/lib/jvm/java-7-openjdk-amd64/bin:$PATH
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------#
 | 
			
		||||
# run local tests, don't scan fdroidserver/ project for APKs
 | 
			
		||||
 | 
			
		||||
# this is a local repo on the Guardian Project Jenkins server
 | 
			
		||||
apksource=/var/www/fdroid
 | 
			
		||||
 | 
			
		||||
cd $WORKSPACE/tests
 | 
			
		||||
./run-tests $apksource
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------#
 | 
			
		||||
# test building the source tarball, then installing it
 | 
			
		||||
cd $WORKSPACE
 | 
			
		||||
python2 setup.py sdist
 | 
			
		||||
 | 
			
		||||
rm -rf $WORKSPACE/env
 | 
			
		||||
virtualenv --python=python2 $WORKSPACE/env
 | 
			
		||||
. $WORKSPACE/env/bin/activate
 | 
			
		||||
pip install dist/fdroidserver-*.tar.gz
 | 
			
		||||
 | 
			
		||||
# run tests in new pip+virtualenv install
 | 
			
		||||
fdroid=$WORKSPACE/env/bin/fdroid $WORKSPACE/tests/run-tests $apksource
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------#
 | 
			
		||||
# test install using install direct from git repo
 | 
			
		||||
cd $WORKSPACE
 | 
			
		||||
rm -rf $WORKSPACE/env
 | 
			
		||||
virtualenv --python=python2 --system-site-packages $WORKSPACE/env
 | 
			
		||||
. $WORKSPACE/env/bin/activate
 | 
			
		||||
pip install -e $WORKSPACE
 | 
			
		||||
python2 setup.py install
 | 
			
		||||
 | 
			
		||||
# run tests in new pip+virtualenv install
 | 
			
		||||
fdroid=$WORKSPACE/env/bin/fdroid $WORKSPACE/tests/run-tests $apksource
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------#
 | 
			
		||||
# run git pre-commit hook for pep8, pyflakes, etc
 | 
			
		||||
sh hooks/pre-commit
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------#
 | 
			
		||||
# run pylint
 | 
			
		||||
 | 
			
		||||
cd $WORKSPACE
 | 
			
		||||
set +e
 | 
			
		||||
# use the virtualenv python so pylint checks against its installed libs
 | 
			
		||||
    PYTHONPATH=$WORKSPACE/.pylint-plugins python2 /usr/bin/pylint \
 | 
			
		||||
        --output-format=parseable --reports=n \
 | 
			
		||||
        --load-plugins astng_hashlib \
 | 
			
		||||
        fdroidserver/*.py fdroid makebuildserver setup.py > $WORKSPACE/pylint.parseable
 | 
			
		||||
 | 
			
		||||
# to only tell jenkins there was an error if we got ERROR or FATAL, uncomment these:
 | 
			
		||||
# running pylint in the virtualenv is causing this FATAL error, which is a bug:
 | 
			
		||||
# https://bitbucket.org/logilab/pylint/issue/73/pylint-is-unable-to-import
 | 
			
		||||
[ $(($? & 1)) = "1" ] && echo "FATALs found"
 | 
			
		||||
[ $(($? & 2)) = "2" ] && exit 2
 | 
			
		||||
[ $(($? & 4)) = "4" ] && exit 4
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
cd tests
 | 
			
		||||
./complete-ci-tests /var/www/fdroid
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										101
									
								
								tests/complete-ci-tests
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										101
									
								
								tests/complete-ci-tests
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,101 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
#
 | 
			
		||||
# this is the script run by the Jenkins and gitlab-ci continuous integration
 | 
			
		||||
# build services.  It is a thorough set of tests that runs all the tests using
 | 
			
		||||
# the various methods of installing/running fdroidserver.  It is separate from
 | 
			
		||||
# ./tests/run-tests because its too heavy for manual use.
 | 
			
		||||
 | 
			
		||||
if [ `dirname $0` != "." ]; then
 | 
			
		||||
    echo "only run this script like ./`basename $0`"
 | 
			
		||||
    exit
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
set -x
 | 
			
		||||
 | 
			
		||||
if [ -z $WORKSPACE ]; then
 | 
			
		||||
    export WORKSPACE=`pwd`/..
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ -z $ANDROID_HOME ]; then
 | 
			
		||||
    if [ -e ~/.android/bashrc ]; then
 | 
			
		||||
        . ~/.android/bashrc
 | 
			
		||||
    else
 | 
			
		||||
        echo "ANDROID_HOME must be set!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
apksource=$1
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------#
 | 
			
		||||
# cache pypi downloads
 | 
			
		||||
if [ -z $PIP_DOWNLOAD_CACHE ]; then
 | 
			
		||||
    export PIP_DOWNLOAD_CACHE=$HOME/.pip_download_cache
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------#
 | 
			
		||||
# required Java 7 keytool/jarsigner for :file support
 | 
			
		||||
 | 
			
		||||
export PATH=/usr/lib/jvm/java-7-openjdk-amd64/bin:$PATH
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------#
 | 
			
		||||
# run local tests, don't scan fdroidserver/ project for APKs
 | 
			
		||||
 | 
			
		||||
cd $WORKSPACE/tests
 | 
			
		||||
./run-tests $apksource
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------#
 | 
			
		||||
# test building the source tarball, then installing it
 | 
			
		||||
cd $WORKSPACE
 | 
			
		||||
python2 setup.py sdist
 | 
			
		||||
 | 
			
		||||
rm -rf $WORKSPACE/env
 | 
			
		||||
virtualenv --python=python2 $WORKSPACE/env
 | 
			
		||||
. $WORKSPACE/env/bin/activate
 | 
			
		||||
pip install dist/fdroidserver-*.tar.gz
 | 
			
		||||
 | 
			
		||||
# run tests in new pip+virtualenv install
 | 
			
		||||
fdroid=$WORKSPACE/env/bin/fdroid $WORKSPACE/tests/run-tests $apksource
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------#
 | 
			
		||||
# test install using install direct from git repo
 | 
			
		||||
cd $WORKSPACE
 | 
			
		||||
rm -rf $WORKSPACE/env
 | 
			
		||||
virtualenv --python=python2 --system-site-packages $WORKSPACE/env
 | 
			
		||||
. $WORKSPACE/env/bin/activate
 | 
			
		||||
pip install -e $WORKSPACE
 | 
			
		||||
python2 setup.py install
 | 
			
		||||
 | 
			
		||||
# run tests in new pip+virtualenv install
 | 
			
		||||
fdroid=$WORKSPACE/env/bin/fdroid $WORKSPACE/tests/run-tests $apksource
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------#
 | 
			
		||||
# run git pre-commit hook for pep8, pyflakes, etc
 | 
			
		||||
sh hooks/pre-commit
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------#
 | 
			
		||||
# run pylint
 | 
			
		||||
 | 
			
		||||
cd $WORKSPACE
 | 
			
		||||
set +e
 | 
			
		||||
# use the virtualenv python so pylint checks against its installed libs
 | 
			
		||||
    PYTHONPATH=$WORKSPACE/.pylint-plugins python2 /usr/bin/pylint \
 | 
			
		||||
        --output-format=parseable --reports=n \
 | 
			
		||||
        --load-plugins astng_hashlib \
 | 
			
		||||
        fdroidserver/*.py fdroid makebuildserver setup.py > $WORKSPACE/pylint.parseable
 | 
			
		||||
 | 
			
		||||
# to only tell jenkins there was an error if we got ERROR or FATAL, uncomment these:
 | 
			
		||||
# running pylint in the virtualenv is causing this FATAL error, which is a bug:
 | 
			
		||||
# https://bitbucket.org/logilab/pylint/issue/73/pylint-is-unable-to-import
 | 
			
		||||
[ $(($? & 1)) = "1" ] && echo "FATALs found"
 | 
			
		||||
[ $(($? & 2)) = "2" ] && exit 2
 | 
			
		||||
[ $(($? & 4)) = "4" ] && exit 4
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue