entrypoint.sh 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #!/usr/bin/env bash
  2. #
  3. # ENVIRONMENT VARIABLES ARE:
  4. #
  5. # * TEST_DATABASE_ENGINE (values: postgresql, mysql, sqlite)
  6. # * CHECKOUT (values: a commit or branch name)
  7. # * PULL (values: 0 or 1)
  8. # * FETCH (values: 0 or 1)
  9. #
  10. # Default values
  11. FETCH=${FETCH:=1}
  12. PULL=${PULL:=1}
  13. # If PULL is set, change repository HEAD
  14. if [ "$FETCH" = 1 ]; then
  15. cd /tracim && git fetch origin
  16. fi
  17. # If PULL is set, change repository HEAD
  18. if [ "$PULL" = 1 ]; then
  19. cd /tracim && git pull origin master
  20. fi
  21. # If CHECKOUT is set, change repository HEAD
  22. if [ -n "$CHECKOUT" ]; then
  23. cd /tracim && git checkout ${CHECKOUT}
  24. echo "CHECKOUT set to $CHECKOUT"
  25. fi
  26. # Ensure TEST_DATABASE_ENGINE is set
  27. if ! [ -n "$TEST_DATABASE_ENGINE" ]; then
  28. echo "You must set TEST_DATABASE_ENGINE environment variable"
  29. exit 1
  30. fi
  31. # Ensure TEST_DATABASE_ENGINE value
  32. case "$TEST_DATABASE_ENGINE" in
  33. postgresql|mysql|sqlite) ;;
  34. *) echo "TEST_DATABASE_ENGINE environment variable must be one of these: \
  35. postgresql, mysql, sqlite" ; exit 1 ;;
  36. esac
  37. # Prepare config files
  38. cp /tracim/tracim/development.ini.base /tracim/tracim/development.ini
  39. cp /tracim/tracim/wsgidav.conf.sample /tracim/tracim/wsgidav.conf
  40. # PostgreSQL case
  41. if [ "$TEST_DATABASE_ENGINE" = postgresql ] ; then
  42. service postgresql start
  43. su - postgres -s /bin/bash -c "psql -c \"CREATE DATABASE tracim;\""
  44. su - postgres -s /bin/bash -c "psql -c \"ALTER USER postgres WITH PASSWORD 'dummy';\""
  45. sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = postgresql:\/\/postgres:dummy@127.0.0.1:5432\/tracim?client_encoding=utf8/" /tracim/tracim/test.ini
  46. sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = postgresql:\/\/postgres:dummy@127.0.0.1:5432\/tracim?client_encoding=utf8/" /tracim/tracim/development.ini
  47. fi
  48. # MySQL case
  49. if [ "$TEST_DATABASE_ENGINE" = mysql ] ; then
  50. service mysql start
  51. mysql -e 'CREATE DATABASE tracim;'
  52. sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = mysql+oursql:\/\/root@localhost\/tracim/" /tracim/tracim/test.ini
  53. sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = mysql+oursql:\/\/root@localhost\/tracim/" /tracim/tracim/development.ini
  54. fi
  55. # SQLite case
  56. if [ "$TEST_DATABASE_ENGINE" = sqlite ] ; then
  57. sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = sqlite:\/\/\/tracim.sqlite/" /tracim/tracim/test.ini
  58. sed -i "s/\(sqlalchemy.url *= *\).*/\sqlalchemy.url = sqlite:\/\/\/tracim.sqlite/" /tracim/tracim/development.ini
  59. fi
  60. # Run tests
  61. cd /tracim/tracim && nosetests -c /tracim/tracim/test.ini -v