github.com/tonto/cli@v0.0.0-20180104210444-aec958fa47db/test.sh (about)

     1  set -ex
     2  
     3  make build
     4  export fn="$(pwd)/fn"
     5  export FN_REGISTRY=$DOCKER_USER
     6  if [[ -z "$FN_REGISTRY" ]]; then
     7    export FN_REGISTRY=default_docker_user_does_not_push
     8  fi
     9  $fn --version
    10  
    11  go test $(go list ./... | grep -v /vendor/ | grep -v /tests)
    12  
    13  # This tests all the quickstart commands on the cli on a live server
    14  rm -rf tmp
    15  mkdir tmp
    16  cd tmp
    17  funcname="fn-test-go"
    18  mkdir $funcname
    19  cd $funcname
    20  $fn init --runtime go
    21  $fn run
    22  $fn test
    23  
    24  someport=50080
    25  docker rm --force functions || true # just in case
    26  docker pull fnproject/functions
    27  docker run --name functions -d -v /var/run/docker.sock:/var/run/docker.sock -p $someport:8080 fnproject/functions
    28  sleep 10
    29  docker logs functions
    30  
    31  export FN_API_URL="http://localhost:$someport"
    32  $fn apps l
    33  $fn apps create myapp
    34  $fn apps l
    35  $fn deploy --local --app myapp
    36  $fn call myapp $funcname
    37  cd ..
    38  
    39  # Test ruby func
    40  funcname="rubyfunc"
    41  mkdir $funcname
    42  cd $funcname
    43  $fn init --runtime ruby
    44  $fn run
    45  $fn test
    46  cd ..
    47  
    48  # Test 'docker' runtime deploy
    49  funcname="dockerfunc"
    50  mkdir $funcname 
    51  cp ../test/funcfile-docker-rt-tests/testfiles/Dockerfile $funcname/
    52  cp ../test/funcfile-docker-rt-tests/testfiles/func.go $funcname/
    53  cd $funcname
    54  $fn init --name $funcname
    55  $fn apps create myapp1
    56  $fn apps l
    57  $fn deploy --local --app myapp1
    58  $fn call myapp1 /$funcname
    59  # todo: would be nice to have a flag to output parseable formats in cli, eg: `fn deploy --output json` would return json with version and other info 
    60  $fn routes create myapp1 /another --image $FN_REGISTRY/$funcname:0.0.2
    61  $fn call myapp1 /another
    62  
    63  docker rm --force functions
    64  
    65  cd ../..
    66  rm -rf tmp