mirror of
https://github.com/haiwen/seafile-server-installer-cn
synced 2024-09-20 08:15:28 +00:00
Add travis-ci tests and Docker file
This commit is contained in:
parent
25fde48ba8
commit
b6954410d9
38
.gitignore
vendored
Normal file
38
.gitignore
vendored
Normal file
|
@ -0,0 +1,38 @@
|
|||
*.pyc
|
||||
*~
|
||||
*#
|
||||
seahub.db*
|
||||
local_settings.py
|
||||
startserver.sh
|
||||
thirdpart/django
|
||||
thirdpart/djblets
|
||||
thirdpart/gunicorn*
|
||||
thirdpart/*.pth
|
||||
thirdpart/site.*
|
||||
restart.sh
|
||||
settings.py.mysql
|
||||
settings.py.sqlite
|
||||
secret_key.py
|
||||
run-seahub.sh
|
||||
setenv.sh
|
||||
pylintrc
|
||||
.DS_Store
|
||||
*.mo
|
||||
media/CACHE
|
||||
media/custom
|
||||
media/avatars/*
|
||||
!media/avatars/default-non-register.jpg
|
||||
!media/avatars/default.png
|
||||
!media/default.jpg
|
||||
!media/groups/default.jpg
|
||||
static/scripts/dist
|
||||
logs/
|
||||
mysite.pid
|
||||
notification_email.sh
|
||||
send_user_notifications.sh
|
||||
shutdown.sh
|
||||
cscope*
|
||||
docs/_build/*
|
||||
deps
|
||||
ghostdriver.log
|
||||
seahub/thumbnail/thumb/*
|
15
.travis.yml
Normal file
15
.travis.yml
Normal file
|
@ -0,0 +1,15 @@
|
|||
sudo: required
|
||||
language: bash
|
||||
|
||||
services:
|
||||
- docker
|
||||
|
||||
env:
|
||||
global:
|
||||
- LANG=en_US.UTF-8
|
||||
- LC_ALL=en_US.UTF-8
|
||||
|
||||
before_install:
|
||||
- docker run xiez/seafile-pro:v1.2 /bin/bash -c "export TERM=xterm && echo 2 | bash seafile-server-ubuntu-14-04-amd64-http 5.1.10"
|
||||
|
||||
script: make test
|
16
Dockerfile
Normal file
16
Dockerfile
Normal file
|
@ -0,0 +1,16 @@
|
|||
FROM ubuntu:14.04
|
||||
MAINTAINER Zheng Xie <xie.zheng@seafile.com>
|
||||
|
||||
# Avoid ERROR: invoke-rc.d: policy-rc.d denied execution of start.
|
||||
RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d
|
||||
|
||||
RUN apt-get update
|
||||
RUN apt-get install -y wget
|
||||
|
||||
WORKDIR /root
|
||||
ADD . /root/
|
||||
|
||||
ADD https://download.seafile.com/d/6e5297246c/files/?p=/pro/seafile-pro-server_5.1.10_x86-64.tar.gz&dl=1 /opt/seafile-pro-server_5.1.10_x86-64.tar.gz
|
||||
|
||||
# Clean up for smaller image
|
||||
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
4
Makefile
Normal file
4
Makefile
Normal file
|
@ -0,0 +1,4 @@
|
|||
.PHONY: all test clean
|
||||
|
||||
test:
|
||||
tests/post-deploy_test.sh
|
139
tests/assert.sh
Normal file
139
tests/assert.sh
Normal file
|
@ -0,0 +1,139 @@
|
|||
#!/bin/bash
|
||||
# assert.sh 1.0 - bash unit testing framework
|
||||
# Copyright (C) 2009, 2010, 2011, 2012 Robert Lehmann
|
||||
#
|
||||
# http://github.com/lehmannro/assert.sh
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published
|
||||
# by the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
export DISCOVERONLY=${DISCOVERONLY:-}
|
||||
export DEBUG=${DEBUG:-}
|
||||
export STOP=${STOP:-}
|
||||
export INVARIANT=${INVARIANT:-}
|
||||
|
||||
args="$(getopt -n "$0" -l verbose,help,stop,discover,invariant vhxdi $*)" \
|
||||
|| exit -1
|
||||
for arg in $args; do
|
||||
case "$arg" in
|
||||
-h)
|
||||
echo "$0 [-vxid] [--verbose] [--stop] [--invariant] [--discover]"
|
||||
echo "`sed 's/./ /g' <<< "$0"` [-h] [--help]"
|
||||
exit 0;;
|
||||
--help)
|
||||
cat <<EOF
|
||||
Usage: $0 [options]
|
||||
Language-agnostic unit tests for subprocesses.
|
||||
|
||||
Options:
|
||||
-v, --verbose generate output for every individual test case
|
||||
-x, --stop stop running tests after the first failure
|
||||
-i, --invariant do not measure timings to remain invariant between runs
|
||||
-d, --discover collect test suites only, do not run any tests
|
||||
-h show brief usage information and exit
|
||||
--help show this help message and exit
|
||||
EOF
|
||||
exit 0;;
|
||||
-v|--verbose)
|
||||
DEBUG=1;;
|
||||
-x|--stop)
|
||||
STOP=1;;
|
||||
-i|--invariant)
|
||||
INVARIANT=1;;
|
||||
-d|--discover)
|
||||
DISCOVERONLY=1;;
|
||||
esac
|
||||
done
|
||||
|
||||
printf -v _indent "\n\t" # local format helper
|
||||
|
||||
_assert_reset() {
|
||||
tests_ran=0
|
||||
tests_failed=0
|
||||
tests_errors=()
|
||||
tests_starttime="$(date +%s.%N)" # seconds_since_epoch.nanoseconds
|
||||
}
|
||||
|
||||
assert_end() {
|
||||
# assert_end [suite ..]
|
||||
tests_endtime="$(date +%s.%N)"
|
||||
tests="$tests_ran ${*:+$* }tests"
|
||||
[[ -n "$DISCOVERONLY" ]] && echo "collected $tests." && _assert_reset && return
|
||||
[[ -n "$DEBUG" ]] && echo
|
||||
[[ -z "$INVARIANT" ]] && report_time=" in $(bc \
|
||||
<<< "${tests_endtime%.N} - ${tests_starttime%.N}" \
|
||||
| sed -e 's/\.\([0-9]\{0,3\}\)[0-9]*/.\1/' -e 's/^\./0./')s" \
|
||||
|| report_time=
|
||||
|
||||
if [[ "$tests_failed" -eq 0 ]]; then
|
||||
echo "all $tests passed$report_time."
|
||||
else
|
||||
for error in "${tests_errors[@]}"; do echo "$error"; done
|
||||
echo "$tests_failed of $tests failed$report_time."
|
||||
fi
|
||||
tests_failed_previous=$tests_failed
|
||||
_assert_reset
|
||||
return $tests_failed_previous
|
||||
}
|
||||
|
||||
assert() {
|
||||
# assert <command> <expected stdout> [stdin]
|
||||
(( tests_ran++ ))
|
||||
[[ -n "$DISCOVERONLY" ]] && return
|
||||
# printf required for formatting
|
||||
printf -v expected "x${2:-}" # x required to overwrite older results
|
||||
result="$(eval 2>/dev/null $1 <<< ${3:-})"
|
||||
# Note: $expected is already decorated
|
||||
if [[ "x$result" == "$expected" ]]; then
|
||||
[[ -n "$DEBUG" ]] && echo -n .
|
||||
return
|
||||
fi
|
||||
[[ -n "$DEBUG" ]] && echo -n X
|
||||
result="$(sed -e :a -e '$!N;s/\n/\\n/;ta' <<< "$result")"
|
||||
[[ -z "$result" ]] && result="nothing" || result="\"$result\""
|
||||
[[ -z "$2" ]] && expected="nothing" || expected="\"$2\""
|
||||
failure="expected $expected${_indent}got $result"
|
||||
report="test #$tests_ran \"$1${3:+ <<< $3}\" failed:${_indent}$failure"
|
||||
tests_errors[$tests_failed]="$report"
|
||||
(( tests_failed++ ))
|
||||
if [[ -n "$STOP" ]]; then
|
||||
[[ -n "$DEBUG" ]] && echo
|
||||
echo "$report"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
assert_raises() {
|
||||
# assert_raises <command> <expected code> [stdin]
|
||||
(( tests_ran++ ))
|
||||
[[ -n "$DISCOVERONLY" ]] && return
|
||||
(eval $1 <<< ${3:-}) > /dev/null 2>&1
|
||||
status=$?
|
||||
expected=${2:-0}
|
||||
if [[ "$status" -eq "$expected" ]]; then
|
||||
[[ -n "$DEBUG" ]] && echo -n .
|
||||
return
|
||||
fi
|
||||
[[ -n "$DEBUG" ]] && echo -n X
|
||||
failure="program terminated with code $status instead of $expected"
|
||||
report="test #$tests_ran \"$1${3:+ <<< $3}\" failed:${_indent}$failure"
|
||||
tests_errors[$tests_failed]="$report"
|
||||
(( tests_failed++ ))
|
||||
if [[ -n "$STOP" ]]; then
|
||||
[[ -n "$DEBUG" ]] && echo
|
||||
echo "$report"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
_assert_reset
|
5
tests/post-deploy_test.sh
Executable file
5
tests/post-deploy_test.sh
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
. tests/assert.sh
|
||||
|
||||
echo "Tests for seafile server package..."
|
Loading…
Reference in New Issue
Block a user