Browse code

docker-ci 0.4.5: Sync tests with progress in docker and docker-registry. Use revamped shiny DinD.

Daniel Mizyrycki authored on 2013/11/07 13:05:26
Showing 12 changed files
... ...
@@ -18,3 +18,4 @@ bundles/
18 18
 .hg/
19 19
 .git/
20 20
 vendor/pkg/
21
+pyenv
... ...
@@ -1,6 +1,6 @@
1
-# VERSION:        0.22
2
-# DOCKER-VERSION  0.6.3
3
-# AUTHOR:         Daniel Mizyrycki <daniel@dotcloud.com>
1
+# VERSION:        0.25
2
+# DOCKER-VERSION  0.6.6
3
+# AUTHOR:         Daniel Mizyrycki <daniel@docker.com>
4 4
 # DESCRIPTION:    Deploy docker-ci on Digital Ocean
5 5
 # COMMENTS:
6 6
 #     CONFIG_JSON is an environment variable json string loaded as:
7 7
new file mode 100644
... ...
@@ -0,0 +1 @@
0
+0.4.5
... ...
@@ -32,7 +32,7 @@ DOCKER_CI_PATH = '/docker-ci'
32 32
 CFG_PATH = '{}/buildbot'.format(DOCKER_CI_PATH)
33 33
 
34 34
 
35
-class digital_ocean():
35
+class DigitalOcean():
36 36
 
37 37
     def __init__(self, key, client):
38 38
         '''Set default API parameters'''
... ...
@@ -62,7 +62,7 @@ def json_fmt(data):
62 62
     return json.dumps(data, sort_keys = True, indent = 2)
63 63
 
64 64
 
65
-do = digital_ocean(env['DO_API_KEY'], env['DO_CLIENT_ID'])
65
+do = DigitalOcean(env['DO_API_KEY'], env['DO_CLIENT_ID'])
66 66
 
67 67
 # Get DROPLET_NAME data
68 68
 data = do.droplet_data(DROPLET_NAME)
... ...
@@ -147,9 +147,6 @@ sudo('curl -s https://phantomjs.googlecode.com/files/'
147 147
     'phantomjs-1.9.1-linux-x86_64.tar.bz2 | tar jx -C /usr/bin'
148 148
     ' --strip-components=2 phantomjs-1.9.1-linux-x86_64/bin/phantomjs')
149 149
 
150
-# Preventively reboot docker-ci daily
151
-sudo('ln -s /sbin/reboot /etc/cron.daily')
152
-
153 150
 # Build docker-ci containers
154 151
 sudo('cd {}; docker build -t docker .'.format(DOCKER_PATH))
155 152
 sudo('cd {}; docker build -t docker-ci .'.format(DOCKER_CI_PATH))
... ...
@@ -169,3 +166,6 @@ sudo('{0}/setup.sh root {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10}'
169 169
     env['SMTP_PWD'], env['EMAIL_RCP'], env['REGISTRY_USER'],
170 170
     env['REGISTRY_PWD'], env['REGISTRY_BUCKET'], env['REGISTRY_ACCESS_KEY'],
171 171
     env['REGISTRY_SECRET_KEY']))
172
+
173
+# Preventively reboot docker-ci daily
174
+sudo('ln -s /sbin/reboot /etc/cron.daily')
... ...
@@ -1,6 +1,6 @@
1
-# VERSION:        0.3
2
-# DOCKER-VERSION  0.6.3
3
-# AUTHOR:         Daniel Mizyrycki <daniel@dotcloud.com>
1
+# VERSION:        0.4
2
+# DOCKER-VERSION  0.6.6
3
+# AUTHOR:         Daniel Mizyrycki <daniel@docker.com>
4 4
 # DESCRIPTION:    Testing docker PRs and commits on top of master using
5 5
 # REFERENCES:     This code reuses the excellent implementation of
6 6
 #                 Docker in Docker made by Jerome Petazzoni.
... ...
@@ -15,13 +15,9 @@
15 15
 # TO_RUN:         docker run -privileged test_docker hack/dind test_docker.sh [commit] [repo] [branch]
16 16
 
17 17
 from docker
18
-maintainer Daniel Mizyrycki <daniel@dotcloud.com>
18
+maintainer Daniel Mizyrycki <daniel@docker.com>
19 19
 
20
-#### FIXME. Temporarily install docker and dind with proper apparmor handling
21
-run wget -q -O /go/src/github.com/dotcloud/docker/hack/dind http://raw.github.com/jpetazzo/docker/escape-apparmor-confinement/hack/dind
22
-run chmod +x /go/src/github.com/dotcloud/docker/hack/dind
23
-
24
-# Setup go to the PATH. Extracted from /Dockerfile
20
+# Setup go in PATH. Extracted from /Dockerfile
25 21
 env PATH /usr/local/go/bin:$PATH
26 22
 
27 23
 # Add test_docker.sh
... ...
@@ -8,6 +8,10 @@ BRANCH=${3-master}
8 8
 # Compute test paths
9 9
 DOCKER_PATH=/go/src/github.com/dotcloud/docker
10 10
 
11
+# Timestamp
12
+echo
13
+date; echo
14
+
11 15
 # Fetch latest master
12 16
 cd /
13 17
 rm -rf /go
... ...
@@ -16,13 +20,13 @@ cd $DOCKER_PATH
16 16
 
17 17
 # Merge commit
18 18
 git fetch -q "$REPO" "$BRANCH"
19
-git merge --no-edit $COMMIT || exit 1
19
+git merge --no-edit $COMMIT || exit 255
20 20
 
21 21
 # Test commit
22 22
 ./hack/make.sh test; exit_status=$?
23 23
 
24 24
 # Display load if test fails
25
-if [ $exit_status -eq 1 ] ; then
25
+if [ $exit_status -ne 0 ] ; then
26 26
     uptime; echo; free
27 27
 fi
28 28
 
... ...
@@ -8,6 +8,7 @@ rm -rf docker-registry
8 8
 # Setup the environment
9 9
 export SETTINGS_FLAVOR=test
10 10
 export DOCKER_REGISTRY_CONFIG=config_test.yml
11
+export PYTHONPATH=$(pwd)/docker-registry/test
11 12
 
12 13
 # Get latest docker registry
13 14
 git clone -q https://github.com/dotcloud/docker-registry.git
... ...
@@ -21,7 +22,6 @@ pip install -q tox
21 21
 
22 22
 # Run registry tests
23 23
 tox || exit 1
24
-export PYTHONPATH=$(pwd)/docker-registry
25 24
 python -m unittest discover -p s3.py -s test || exit 1
26 25
 python -m unittest discover -p workflow.py -s test
27 26
 
... ...
@@ -1,6 +1,6 @@
1
-# VERSION:        1.5
2
-# DOCKER-VERSION  0.6.4
3
-# AUTHOR:         Daniel Mizyrycki <daniel@dotcloud.com>
1
+# VERSION:        1.6
2
+# DOCKER-VERSION  0.6.6
3
+# AUTHOR:         Daniel Mizyrycki <daniel@docker.com>
4 4
 # DESCRIPTION:    Build docker nightly release using Docker in Docker.
5 5
 # REFERENCES:     This code reuses the excellent implementation of docker in docker
6 6
 #                 made by Jerome Petazzoni.  https://github.com/jpetazzo/dind
... ...
@@ -13,7 +13,7 @@
13 13
 # TO_RELEASE:     docker run -i -t -privileged -e AWS_S3_BUCKET="test.docker.io" dockerbuilder hack/dind dockerbuild.sh
14 14
 
15 15
 from docker
16
-maintainer Daniel Mizyrycki <daniel@dotcloud.com>
16
+maintainer Daniel Mizyrycki <daniel@docker.com>
17 17
 
18 18
 # Add docker dependencies and downloading packages
19 19
 run echo 'deb http://archive.ubuntu.com/ubuntu precise main universe' > /etc/apt/sources.list
... ...
@@ -22,11 +22,6 @@ run apt-get update; apt-get install -y -q wget python2.7
22 22
 # Add production docker binary
23 23
 run wget -q -O /usr/bin/docker http://get.docker.io/builds/Linux/x86_64/docker-latest; chmod +x /usr/bin/docker
24 24
 
25
-#### FIXME. Temporarily install docker and dind with proper apparmor handling
26
-run wget -q -O /usr/bin/docker http://test.docker.io/test/docker; chmod +x /usr/bin/docker
27
-run wget -q -O /go/src/github.com/dotcloud/docker/hack/dind http://raw.github.com/jpetazzo/docker/escape-apparmor-confinement/hack/dind
28
-run chmod +x /go/src/github.com/dotcloud/docker/hack/dind
29
-
30 25
 # Add proto docker builder
31 26
 add ./dockerbuild.sh /usr/bin/dockerbuild.sh
32 27
 run chmod +x /usr/bin/dockerbuild.sh
... ...
@@ -34,7 +34,7 @@ exit_status=$?
34 34
 
35 35
 # Display load if test fails
36 36
 set -x
37
-if [ $exit_status -eq 1 ] ; then
37
+if [ $exit_status -ne 0 ] ; then
38 38
     uptime; echo; free
39 39
     exit 1
40 40
 fi
... ...
@@ -11,7 +11,7 @@ maintainer Daniel Mizyrycki <daniel@dotcloud.com>
11 11
 
12 12
 # Add registry_coverager.sh and dependencies
13 13
 run pip install coverage flask pyyaml requests simplejson python-glanceclient \
14
-    blinker redis gevent
14
+    blinker redis boto gevent rsa mock
15 15
 add registry_coverage.sh /usr/bin/registry_coverage.sh
16 16
 run chmod +x /usr/bin/registry_coverage.sh
17 17
 
... ...
@@ -2,8 +2,11 @@
2 2
 
3 3
 set -x
4 4
 
5
-# Compute test paths
5
+# Setup the environment
6 6
 REGISTRY_PATH=/data/docker-registry
7
+export SETTINGS_FLAVOR=test
8
+export DOCKER_REGISTRY_CONFIG=config_test.yml
9
+export PYTHONPATH=$REGISTRY_PATH/test
7 10
 
8 11
 # Fetch latest docker-registry master
9 12
 rm -rf $REGISTRY_PATH
... ...
@@ -11,8 +14,5 @@ git clone https://github.com/dotcloud/docker-registry -b master $REGISTRY_PATH
11 11
 cd $REGISTRY_PATH
12 12
 
13 13
 # Generate coverage
14
-export SETTINGS_FLAVOR=test
15
-export DOCKER_REGISTRY_CONFIG=config_test.yml
16
-
17 14
 coverage run -m unittest discover test || exit 1
18 15
 coverage report --include='./*' --omit='./test/*'
... ...
@@ -34,7 +34,7 @@ env['DOCKER_CI_KEY'] = open(env['DOCKER_CI_KEY_PATH']).read()
34 34
 
35 35
 DROPLET_NAME = env.get('DROPLET_NAME','report')
36 36
 TIMEOUT = 120            # Seconds before timeout droplet creation
37
-IMAGE_ID = 894856        # Docker on Ubuntu 13.04
37
+IMAGE_ID = 1004145       # Docker on Ubuntu 13.04
38 38
 REGION_ID = 4            # New York 2
39 39
 SIZE_ID = 66             # memory 512MB
40 40
 DO_IMAGE_USER = 'root'   # Image user on Digital Ocean