diff --git a/fission/spec.go b/fission/spec.go index 6e894038..f08db8db 100644 --- a/fission/spec.go +++ b/fission/spec.go @@ -828,8 +828,8 @@ func applyArchives(fclient *client.Client, specDir string, fr *FissionResources) // does the archive exist already? if url, ok := availableArchives[ar.Checksum.Sum]; ok { fmt.Printf("archive %v exists, not uploading\n", name) - a := archiveFiles[name] - a.URL = url + ar.URL = url + archiveFiles[name] = ar } else { // doesn't exist, upload fmt.Printf("uploading archive %v\n", name) diff --git a/test/tests/test_environments/test_go_env.sh b/test/tests/test_environments/test_go_env.sh index 311742b1..863207a4 100755 --- a/test/tests/test_environments/test_go_env.sh +++ b/test/tests/test_environments/test_go_env.sh @@ -11,9 +11,11 @@ cleanup() { } wait_for_builder() { + JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}' + # wait for tiller ready while true; do - kubectl --namespace fission-builder get pod -l envName=go|grep Running + kubectl --namespace fission-builder get pod -l envName=go -o jsonpath="$JSONPATH" | grep "Ready=True" if [[ $? -eq 0 ]]; then break fi @@ -21,12 +23,23 @@ wait_for_builder() { done } +waitBuild() { + log "Waiting for builder manager to finish the build" + + while true; do + kubectl --namespace default get packages $1 -o jsonpath='{.status.buildstatus}'|grep succeeded + if [[ $? -eq 0 ]]; then + break + fi + done +} + test_fn() { - echo "Checking for valid response" + log "Checking for valid response" while true; do response0=$(curl http://$FISSION_ROUTER/$1) - echo $response0 | grep -i $2 + log $response0 | grep -i $2 if [[ $? -eq 0 ]]; then break fi @@ -35,26 +48,33 @@ test_fn() { } export -f wait_for_builder +export -f waitBuild export -f test_fn cd $ROOT/examples/go +trap cleanup EXIT + log "Creating environment for Golang" fission env create --name go --image gcr.io/fission-ci/go-env:test --builder gcr.io/fission-ci/go-env-builder:test --period 5 timeout 90 bash -c "wait_for_builder" +pkgName=$(fission package create --src hello.go --env go| cut -f2 -d' '| tr -d \') + +# wait for build to finish at most 60s +timeout 90 bash -c "waitBuild $pkgName" + log "Creating pool manager & new deployment function for Golang" -fission fn create --name hello-go-poolmgr --env go --src hello.go --entrypoint Handler -fission fn create --name hello-go-nd --env go --src hello.go --entrypoint Handler --executortype newdeploy -trap cleanup EXIT +fission fn create --name hello-go-poolmgr --env go --pkg $pkgName --entrypoint Handler +fission fn create --name hello-go-nd --env go --pkg $pkgName --entrypoint Handler --executortype newdeploy log "Creating route for new deployment function" fission route create --function hello-go-poolmgr --url /hello-go-poolmgr --method GET fission route create --function hello-go-nd --url /hello-go-nd --method GET log "Waiting for router & pools to catch up" -sleep 5 +sleep 15 log "Testing pool manager function" timeout 60 bash -c "test_fn hello-go-poolmgr 'Hello'"