Files
fission-src/test/kind_CI.sh
T

143 lines
5.9 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
if [ ! -f ${HOME}/.kube/config ]
then
echo "Skipping end to end tests, no cluster credentials"
exit 0
fi
source ./test/test_utils.sh
echo "source test_utils done"
dump_system_info
export FUNCTION_NAMESPACE=${FUNCTION_NAMESPACE:-default}
export BUILDER_NAMESPACE=${BUILDER_NAMESPACE:-default}
export FISSION_NAMESPACE=${FISSION_NAMESPACE:-fission}
export FISSION_ROUTER=127.0.0.1:8888
# Images used in the tests
export REPOSITORY=ghcr.io/fission
export NODE_RUNTIME_IMAGE=${REPOSITORY}/node-env-22
export NODE_BUILDER_IMAGE=${REPOSITORY}/node-builder-22
export PYTHON_RUNTIME_IMAGE=${REPOSITORY}/python-env
export PYTHON_BUILDER_IMAGE=${REPOSITORY}/python-builder
export GO_RUNTIME_IMAGE=${REPOSITORY}/go-env-1.23
export GO_BUILDER_IMAGE=${REPOSITORY}/go-builder-1.23
export JVM_RUNTIME_IMAGE=${REPOSITORY}/jvm-env
export JVM_BUILDER_IMAGE=${REPOSITORY}/jvm-builder
export JVM_JERSEY_RUNTIME_IMAGE=${REPOSITORY}/jvm-jersey-env-22
export JVM_JERSEY_BUILDER_IMAGE=${REPOSITORY}/jvm-jersey-builder-22
export TS_RUNTIME_IMAGE=${REPOSITORY}/tensorflow-serving-env
export CONTROLLER_IP=127.0.0.1:8889
export FISSION_NATS_STREAMING_URL=http://defaultFissionAuthToken@127.0.0.1:8890
echo "Variables set"
echo "FUNCTION_NAMESPACE: $FUNCTION_NAMESPACE"
echo "BUILDER_NAMESPACE: $BUILDER_NAMESPACE"
echo "FISSION_NAMESPACE: $FISSION_NAMESPACE"
echo "Pulling env and builder images"
docker pull -q $NODE_RUNTIME_IMAGE && kind load docker-image $NODE_RUNTIME_IMAGE --name kind
docker pull -q $NODE_BUILDER_IMAGE && kind load docker-image $NODE_BUILDER_IMAGE --name kind
docker system prune -a -f > /dev/null
docker pull -q $PYTHON_RUNTIME_IMAGE && kind load docker-image $PYTHON_RUNTIME_IMAGE --name kind
docker pull -q $PYTHON_BUILDER_IMAGE && kind load docker-image $PYTHON_BUILDER_IMAGE --name kind
docker pull -q $JVM_RUNTIME_IMAGE && kind load docker-image $JVM_RUNTIME_IMAGE --name kind
docker pull -q $JVM_BUILDER_IMAGE && kind load docker-image $JVM_BUILDER_IMAGE --name kind
docker system prune -a -f > /dev/null
docker pull -q $JVM_JERSEY_RUNTIME_IMAGE && kind load docker-image $JVM_JERSEY_RUNTIME_IMAGE --name kind
docker pull -q $JVM_JERSEY_BUILDER_IMAGE && kind load docker-image $JVM_JERSEY_BUILDER_IMAGE --name kind
docker pull -q $GO_RUNTIME_IMAGE && kind load docker-image $GO_RUNTIME_IMAGE --name kind
docker pull -q $GO_BUILDER_IMAGE && kind load docker-image $GO_BUILDER_IMAGE --name kind
docker system prune -a -f > /dev/null
docker pull -q $TS_RUNTIME_IMAGE && kind load docker-image $TS_RUNTIME_IMAGE --name kind
echo "Successfully pull env and builder images"
# run tests without newdeploy in parallel.
export FAILURES=0
main() {
set +e
export TIMEOUT=900 # 15 minutes per test
# run tests without newdeploy in parallel.
export JOBS=6
source $ROOT/test/run_test.sh \
$ROOT/test/tests/test_archive_cli.sh \
$ROOT/test/tests/test_canary.sh \
$ROOT/test/tests/test_fn_update/test_idle_objects_reaper.sh \
$ROOT/test/tests/test_annotations.sh \
$ROOT/test/tests/test_archive_pruner.sh \
$ROOT/test/tests/test_backend_poolmgr.sh \
$ROOT/test/tests/test_buildermgr.sh \
$ROOT/test/tests/test_env_vars.sh \
$ROOT/test/tests/test_env_podspec.sh \
$ROOT/test/tests/test_environments/test_python_env.sh \
$ROOT/test/tests/test_function_test/test_fn_test.sh \
$ROOT/test/tests/test_function_update.sh \
$ROOT/test/tests/test_ingress.sh \
$ROOT/test/tests/test_internal_routes.sh \
$ROOT/test/tests/test_logging/test_function_logs.sh \
$ROOT/test/tests/test_node_hello_http.sh \
$ROOT/test/tests/test_package_command.sh \
$ROOT/test/tests/test_package_checksum.sh \
$ROOT/test/tests/test_pass.sh \
$ROOT/test/tests/test_specs/test_spec.sh \
$ROOT/test/tests/test_specs/test_spec_multifile.sh \
$ROOT/test/tests/test_specs/test_spec_merge/test_spec_merge.sh \
$ROOT/test/tests/test_specs/test_spec_archive/test_spec_archive.sh \
$ROOT/test/tests/test_environments/test_tensorflow_serving_env.sh \
$ROOT/test/tests/test_environments/test_go_env.sh \
$ROOT/test/tests/test_huge_response/test_huge_response.sh \
$ROOT/test/tests/test_kubectl/test_kubectl.sh \
$ROOT/test/tests/websocket/test_ws.sh
export JOBS=3
source $ROOT/test/run_test.sh \
$ROOT/test/tests/test_backend_newdeploy.sh \
$ROOT/test/tests/test_fn_update/test_scale_change.sh \
$ROOT/test/tests/test_secret_cfgmap/test_secret_cfgmap.sh \
$ROOT/test/tests/test_environments/test_java_builder.sh \
$ROOT/test/tests/test_environments/test_java_env.sh \
$ROOT/test/tests/test_environments/test_nodejs_env.sh \
$ROOT/test/tests/test_fn_update/test_configmap_update.sh \
$ROOT/test/tests/test_fn_update/test_env_update.sh \
$ROOT/test/tests/test_obj_create_in_diff_ns.sh \
$ROOT/test/tests/test_fn_update/test_resource_change.sh \
$ROOT/test/tests/test_fn_update/test_secret_update.sh \
$ROOT/test/tests/test_fn_update/test_nd_pkg_update.sh \
$ROOT/test/tests/test_fn_update/test_poolmgr_nd.sh
$ROOT/test/tests/test_namespace/test_ns_current_context.sh
$ROOT/test/tests/test_namespace/test_ns_flag.sh
$ROOT/test/tests/test_namespace/test_ns_env.sh
$ROOT/test/tests/test_namespace/test_ns_deprecated_flag.sh
set -e
# dump test logs
# TODO: the idx does not match seq number in recap.
idx=1
log_files=$(find test/logs/ -name '*.log')
for log_file in $log_files; do
test_name=${log_file#test/logs/}
# travis_fold_start run_test.$idx $test_name
echo "========== start $test_name =========="
cat $log_file
echo "========== end $test_name =========="
# travis_fold_end run_test.$idx
idx=$((idx+1))
done
}
main
echo "Total Failures" $FAILURES
if [[ $FAILURES != '0' ]]; then
exit 1
fi