blob: 9ee6b3389fb9979552ac07d169ad3a528d94965b [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
version: "3.8"
services:
gremlin-server-test:
container_name: gremlin-server-test
image: tinkerpop/gremlin-server-test:${GREMLIN_SERVER}
build:
context: ../
dockerfile: docker/gremlin-test-server/Dockerfile
args:
- GREMLIN_SERVER=${GREMLIN_SERVER}
ports:
- "45940:45940"
- "45941:45941"
- "45942:45942"
- "4588:4588"
volumes:
- ${HOME}/.groovy:/root/.groovy
- ${HOME}/.m2:/root/.m2
- ${ABS_PROJECT_HOME}/gremlin-test/target:/opt/gremlin-test
healthcheck:
test: [ "CMD-SHELL", "apk add curl && curl -f http://localhost:45940?gremlin=100-1" ]
interval: 30s
timeout: 10s
retries: 30
start_period: 30s
gremlin-go-integration-tests:
container_name: gremlin-go-integration-tests
image: golang:1.17
volumes:
- .:/go_app
- ../gremlin-test/features:/gremlin-test
- ../docker/gremlin-test-server:/go_app/gremlin-test-server
environment:
- CUCUMBER_FEATURE_FOLDER=/gremlin-test
- GREMLIN_SERVER_URL=ws://gremlin-server-test:45940/gremlin
- GREMLIN_SERVER_BASIC_AUTH_URL=wss://gremlin-server-test:45941/gremlin
- RUN_INTEGRATION_TESTS=true
- RUN_INTEGRATION_WITH_ALIAS_TESTS=true
- RUN_BASIC_AUTH_INTEGRATION_TESTS=true
- TEST_TRANSACTIONS=true
working_dir: /go_app
command: >
bash -c "go install github.com/gotesttools/gotestfmt/v2/cmd/gotestfmt@latest
&& go test -v -json ./... -race -covermode=atomic -coverprofile=\"coverage.out\" -coverpkg=./... | gotestfmt"
depends_on:
gremlin-server-test:
condition: service_healthy