Move test scripts to script/test.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
Daniel Nephin 2016-01-15 16:35:26 -05:00
parent ec6bb1660d
commit 11dc720752
15 changed files with 47 additions and 35 deletions

View File

@ -50,22 +50,22 @@ See Docker's [basic contribution workflow](https://docs.docker.com/opensource/wo
Use the test script to run linting checks and then the full test suite against Use the test script to run linting checks and then the full test suite against
different Python interpreters: different Python interpreters:
$ script/test $ script/test/default
Tests are run against a Docker daemon inside a container, so that we can test Tests are run against a Docker daemon inside a container, so that we can test
against multiple Docker versions. By default they'll run against only the latest against multiple Docker versions. By default they'll run against only the latest
Docker version - set the `DOCKER_VERSIONS` environment variable to "all" to run Docker version - set the `DOCKER_VERSIONS` environment variable to "all" to run
against all supported versions: against all supported versions:
$ DOCKER_VERSIONS=all script/test $ DOCKER_VERSIONS=all script/test/default
Arguments to `script/test` are passed through to the `nosetests` executable, so Arguments to `script/test/default` are passed through to the `tox` executable, so
you can specify a test directory, file, module, class or method: you can specify a test directory, file, module, class or method:
$ script/test tests/unit $ script/test/default tests/unit
$ script/test tests/unit/cli_test.py $ script/test/default tests/unit/cli_test.py
$ script/test tests/unit/config_test.py::ConfigTest $ script/test/default tests/unit/config_test.py::ConfigTest
$ script/test tests/unit/config_test.py::ConfigTest::test_load $ script/test/default tests/unit/config_test.py::ConfigTest::test_load
## Finding things to work on ## Finding things to work on

View File

@ -57,7 +57,7 @@ When prompted build the non-linux binaries and test them.
1. Build the Mac binary in a Mountain Lion VM: 1. Build the Mac binary in a Mountain Lion VM:
script/prepare-osx script/setup/osx
script/build/osx script/build/osx
2. Download the windows binary from AppVeyor 2. Download the windows binary from AppVeyor

View File

@ -10,7 +10,7 @@ fi
TAG=$1 TAG=$1
VERSION="$(python setup.py --version)" VERSION="$(python setup.py --version)"
./script/write-git-sha ./script/build/write-git-sha
python setup.py sdist python setup.py sdist
cp dist/docker-compose-$VERSION.tar.gz dist/docker-compose-release.tar.gz cp dist/docker-compose-$VERSION.tar.gz dist/docker-compose-release.tar.gz
docker build -t docker/compose:$TAG -f Dockerfile.run . docker build -t docker/compose:$TAG -f Dockerfile.run .

View File

@ -9,7 +9,7 @@ mkdir -p `pwd`/dist
chmod 777 `pwd`/dist chmod 777 `pwd`/dist
$VENV/bin/pip install -q -r requirements-build.txt $VENV/bin/pip install -q -r requirements-build.txt
./script/write-git-sha ./script/build/write-git-sha
su -c "$VENV/bin/pyinstaller docker-compose.spec" user su -c "$VENV/bin/pyinstaller docker-compose.spec" user
mv dist/docker-compose $TARGET mv dist/docker-compose $TARGET
$TARGET version $TARGET version

View File

@ -9,7 +9,7 @@ virtualenv -p /usr/local/bin/python venv
venv/bin/pip install -r requirements.txt venv/bin/pip install -r requirements.txt
venv/bin/pip install -r requirements-build.txt venv/bin/pip install -r requirements-build.txt
venv/bin/pip install --no-deps . venv/bin/pip install --no-deps .
./script/write-git-sha ./script/build/write-git-sha
venv/bin/pyinstaller docker-compose.spec venv/bin/pyinstaller docker-compose.spec
mv dist/docker-compose dist/docker-compose-Darwin-x86_64 mv dist/docker-compose dist/docker-compose-Darwin-x86_64
dist/docker-compose-Darwin-x86_64 version dist/docker-compose-Darwin-x86_64 version

View File

@ -1,21 +1,8 @@
#!/bin/bash #!/bin/bash
# This should be run inside a container built from the Dockerfile
# at the root of the repo:
# #
# $ TAG="docker-compose:$(git rev-parse --short HEAD)" # Backwards compatiblity for jenkins
# $ docker build -t "$TAG" . #
# $ docker run --rm --volume="/var/run/docker.sock:/var/run/docker.sock" --volume="$(pwd)/.git:/code/.git" -e "TAG=$TAG" --entrypoint="script/ci" "$TAG" # TODO: remove this script after all current PRs and jenkins are updated with
# the new script/test/ci change
set -ex set -e
exec script/test/ci
docker version
export DOCKER_VERSIONS=all
STORAGE_DRIVER=${STORAGE_DRIVER:-overlay}
export DOCKER_DAEMON_ARGS="--storage-driver=$STORAGE_DRIVER"
GIT_VOLUME="--volumes-from=$(hostname)"
. script/test-versions
>&2 echo "Building Linux binary"
. script/build/linux-entrypoint

View File

@ -24,7 +24,7 @@ REPO=docker/compose
script/clean script/clean
script/build/linux script/build/linux
# TODO: build osx binary # TODO: build osx binary
# script/prepare-osx # script/setup/osx
# script/build/osx # script/build/osx
# TODO: build or fetch the windows binary # TODO: build or fetch the windows binary
echo "You need to build the osx/windows binaries, that step is not automated yet." echo "You need to build the osx/windows binaries, that step is not automated yet."

View File

@ -57,7 +57,7 @@ docker push docker/compose:$VERSION
echo "Uploading sdist to pypi" echo "Uploading sdist to pypi"
pandoc -f markdown -t rst README.md -o README.rst pandoc -f markdown -t rst README.md -o README.rst
sed -i -e 's/logo.png?raw=true/https:\/\/github.com\/docker\/compose\/raw\/master\/logo.png?raw=true/' README.rst sed -i -e 's/logo.png?raw=true/https:\/\/github.com\/docker\/compose\/raw\/master\/logo.png?raw=true/' README.rst
./script/write-git-sha ./script/build/write-git-sha
python setup.py sdist python setup.py sdist
if [ "$(command -v twine 2> /dev/null)" ]; then if [ "$(command -v twine 2> /dev/null)" ]; then
twine upload ./dist/docker-compose-${VERSION/-/}.tar.gz twine upload ./dist/docker-compose-${VERSION/-/}.tar.gz

View File

@ -14,7 +14,7 @@ docker run --rm \
get_versions="docker run --rm get_versions="docker run --rm
--entrypoint=/code/.tox/py27/bin/python --entrypoint=/code/.tox/py27/bin/python
$TAG $TAG
/code/script/versions.py docker/docker" /code/script/test/versions.py docker/docker"
if [ "$DOCKER_VERSIONS" == "" ]; then if [ "$DOCKER_VERSIONS" == "" ]; then
DOCKER_VERSIONS="$($get_versions default)" DOCKER_VERSIONS="$($get_versions default)"

25
script/test/ci Executable file
View File

@ -0,0 +1,25 @@
#!/bin/bash
# This should be run inside a container built from the Dockerfile
# at the root of the repo:
#
# $ TAG="docker-compose:$(git rev-parse --short HEAD)"
# $ docker build -t "$TAG" .
# $ docker run --rm \
# --volume="/var/run/docker.sock:/var/run/docker.sock" \
# --volume="$(pwd)/.git:/code/.git" \
# -e "TAG=$TAG" \
# --entrypoint="script/test/ci" "$TAG"
set -ex
docker version
export DOCKER_VERSIONS=all
STORAGE_DRIVER=${STORAGE_DRIVER:-overlay}
export DOCKER_DAEMON_ARGS="--storage-driver=$STORAGE_DRIVER"
GIT_VOLUME="--volumes-from=$(hostname)"
. script/test/all
>&2 echo "Building Linux binary"
. script/build/linux-entrypoint

View File

@ -12,4 +12,4 @@ mkdir -p coverage-html
docker build -t "$TAG" . docker build -t "$TAG" .
GIT_VOLUME="--volume=$(pwd)/.git:/code/.git" GIT_VOLUME="--volume=$(pwd)/.git:/code/.git"
. script/test-versions . script/test/all

View File

@ -8,6 +8,6 @@ if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
# script/build/image master # script/build/image master
# docker push docker/compose:master # docker push docker/compose:master
else else
script/prepare-osx script/setup/osx
script/build/osx script/build/osx
fi fi