| # 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-python: |
| container_name: gremlin-server-test-python |
| image: tinkerpop:gremlin-server-test-${GREMLIN_SERVER} |
| hostname: gremlin-server-test |
| 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 |
| depends_on: |
| - gremlin-socket-server |
| |
| gremlin-python-integration-tests: |
| container_name: gremlin-python-integration-tests |
| image: python:3.8 |
| volumes: |
| - ${BUILD_DIR:-./src/main/python}:/python_app |
| - ../gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features:/python_app/gremlin-test/features |
| - ../docker/gremlin-test-server:/python_app/gremlin-test-server |
| - ../gremlin-tools/gremlin-socket-server/conf:/python_app/gremlin-socket-server/conf/ |
| |
| environment: |
| - DEBIAN_FRONTEND=noninteractive |
| - KRB5_CONFIG=./gremlin-test-server/krb5.conf |
| - KRB5CCNAME=./test-tkt.cc |
| - GREMLIN_SERVER_URL=ws://gremlin-server-test-python:{}/gremlin |
| - GREMLIN_SERVER_BASIC_AUTH_URL=wss://gremlin-server-test-python:{}/gremlin |
| - GREMLIN_SERVER_URL_HTTP=http://gremlin-server-test-python:{}/ |
| - GREMLIN_SERVER_BASIC_AUTH_URL_HTTP=https://gremlin-server-test-python:{}/ |
| - KRB_HOSTNAME=${KRB_HOSTNAME:-gremlin-server-test} |
| - VERSION=${VERSION} |
| - GREMLIN_SOCKET_SERVER_URL=ws://gremlin-socket-server-python:{}/gremlin |
| - GREMLIN_SOCKET_SERVER_CONFIG_PATH=/python_app/gremlin-socket-server/conf/test-ws-gremlin.yaml |
| working_dir: /python_app |
| command: > |
| bash -c "apt-get update && apt-get -y install libkrb5-dev krb5-user |
| && echo 'password' | kinit stephen |
| && klist |
| && pip install wheel radish-bdd PyHamcrest aenum isodate kerberos six |
| && python3 ./setup.py build |
| && python3 ./setup.py test |
| && python3 ./setup.py install |
| && radish -f dots -e -t -b ./radish ./gremlin-test --user-data='serializer=application/vnd.gremlin-v3.0+json' |
| && radish -f dots -e -t -b ./radish ./gremlin-test --user-data='serializer=application/vnd.graphbinary-v1.0'; |
| EXIT_CODE=$$?; chown -R `stat -c "%u:%g" .` .; exit $$EXIT_CODE" |
| depends_on: |
| gremlin-server-test-python: |
| condition: service_healthy |
| |
| gremlin-python-package: |
| container_name: gremlin-python-package |
| image: python:3.8 |
| volumes: |
| - ${PACKAGE_DIR:-./src/main/python}:/python_package |
| working_dir: /python_package |
| environment: |
| - VERSION=${VERSION} |
| command: > |
| bash -c "python3 setup.py sdist bdist_wheel; |
| EXIT_CODE=$$?; chown -R `stat -c "%u:%g" .` .; exit $$EXIT_CODE" |
| |
| gremlin-socket-server: |
| container_name: gremlin-socket-server-python |
| image: tinkerpop/gremlin-socket-server:${GREMLIN_SERVER} |
| ports: |
| - "45943:45943" |