Commit 676ebc49 authored by Daniele Venzano's avatar Daniele Venzano

Validate ZApps and split CI into two jobs

parent 5aa53f36
......@@ -16,10 +16,21 @@ images:
- apk add python findutils bash
script:
- bash build_all.sh
- python gen_json.py
- python gen_json_standalone.py
- bash validate_all.sh
artifacts:
paths:
- "*.json"
only:
- master
google:
image: python
stage: deploy
script:
- python gen_json_google.py
- bash validate_all.sh
artifacts:
paths:
- "*.json"
# Tensorflow ZApp
Google Tensorflow image with notebbok or stand-alone batch tensorflow based on latest GIT.
\ No newline at end of file
Google Tensorflow image with notebook or stand-alone batch tensorflow based on latest GIT.
......@@ -17,7 +17,7 @@ import json
import sys
import os
APP_NAME = 'tensorflow'
APP_NAME = 'tensorflow-google'
ZOE_APPLICATION_DESCRIPTION_VERSION = 3
options = {
......@@ -36,7 +36,6 @@ REPOSITORY = os.getenv("REPOSITORY", default="zapps")
VERSION = os.getenv("VERSION", default="latest")
GOOG_IMAGE = "gcr.io/tensorflow/tensorflow"
CUSTOM_IMAGE = REGISTRY + '/' + REPOSITORY + '/tensorflow:' + VERSION
def goog_tensorflow_service(memory_limit, core_limit):
"""
......@@ -81,37 +80,6 @@ def goog_tensorflow_service(memory_limit, core_limit):
return service
def custom_tensorflow_service(memory_limit, core_limit):
"""
:rtype: dict
"""
service = {
'name': "jupyter",
'image': CUSTOM_IMAGE,
'monitor': True,
'resources': {
"memory": {
"min": memory_limit,
"max": memory_limit
},
"cores": {
"min": core_limit,
"max": core_limit
}
},
'ports': [],
'environment': [],
'volumes': [],
'command': None,
'total_count': 1,
'essential_count': 1,
'startup_order': 0
}
return service
if __name__ == '__main__':
app = {
'name': APP_NAME,
......@@ -125,17 +93,5 @@ if __name__ == '__main__':
json.dump(app, open("goog_tensorflow.json", "w"), sort_keys=True, indent=4)
app = {
'name': APP_NAME,
'version': ZOE_APPLICATION_DESCRIPTION_VERSION,
'will_end': False,
'size': 512,
'services': [
custom_tensorflow_service(options["memory_limit"]["value"], options["core_limit"]["value"])
]
}
json.dump(app, open("custom_tensorflow.json", "w"), sort_keys=True, indent=4)
print("ZApp written")
# Copyright (c) 2016, Daniele Venzano
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import json
import sys
import os
APP_NAME = 'tensorflow'
ZOE_APPLICATION_DESCRIPTION_VERSION = 3
options = {
'core_limit': {
'value': 4,
'description': 'Core limit'
},
'memory_limit': {
'value': 4 * (1024**3),
'description': 'Memory limit (bytes)'
}
}
REGISTRY = os.getenv("DOCKER_REGISTRY", default="docker-engine:5000")
REPOSITORY = os.getenv("REPOSITORY", default="zapps")
VERSION = os.getenv("VERSION", default="latest")
CUSTOM_IMAGE = REGISTRY + '/' + REPOSITORY + '/tensorflow:' + VERSION
def custom_tensorflow_service(memory_limit, core_limit):
"""
:rtype: dict
"""
service = {
'name': "jupyter",
'image': CUSTOM_IMAGE,
'monitor': True,
'resources': {
"memory": {
"min": memory_limit,
"max": memory_limit
},
"cores": {
"min": core_limit,
"max": core_limit
}
},
'ports': [],
'environment': [],
'volumes': [],
'command': None,
'total_count': 1,
'essential_count': 1,
'startup_order': 0
}
return service
if __name__ == '__main__':
app = {
'name': APP_NAME,
'version': ZOE_APPLICATION_DESCRIPTION_VERSION,
'will_end': False,
'size': 512,
'services': [
custom_tensorflow_service(options["memory_limit"]["value"], options["core_limit"]["value"])
]
}
json.dump(app, open("custom_tensorflow.json", "w"), sort_keys=True, indent=4)
print("ZApp written")
#!/bin/bash
set -e
VALIDATION_URL=${VALIDATION_URL:-http://localhost:5001/api/0.7/zapp_validation}
tempfile=`mktemp`
trap "{ rm -f $tempfile; }" EXIT
for json in *.json; do
echo '{"application":' > $tempfile
cat $json >> $tempfile
echo '}' >> $tempfile
if ! curl -s -X POST -H "Content-Type: application/json" -d @$tempfile -w "code:%{http_code}" -o $tempfile $VALIDATION_URL | grep 'code:200'; then
printf "`cat $tempfile`"
echo
exit 1
fi
done
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment