swift-nio/docker/docker-compose.yaml

70 lines
1.8 KiB
YAML

# this file is not designed to be run directly
# instead, use the docker-compose.<os>.<swift> files
# eg docker-compose -f docker/docker-compose.yaml -f docker/docker-compose.1604.41.yaml run test
version: "3"
services:
runtime-setup:
image: swift-nio:default
build:
context: .
dockerfile: Dockerfile
common: &common
image: swift-nio:default
depends_on: [runtime-setup]
volumes:
- ~/.ssh:/root/.ssh
- ..:/code:z
working_dir: /code
cap_drop:
- CAP_NET_RAW
- CAP_NET_BIND_SERVICE
soundness:
<<: *common
command: /bin/bash -xcl "swift -version && uname -a && ./scripts/soundness.sh"
unit-tests:
<<: *common
command: /bin/bash -xcl "swift $${SWIFT_TEST_VERB-test} $${FORCE_TEST_DISCOVERY-} $${WARN_AS_ERROR_ARG-} $${IMPORT_CHECK_ARG-}"
integration-tests:
<<: *common
command: /bin/bash -xcl "./scripts/integration_tests.sh $${INTEGRATION_TESTS_ARG-}"
documentation-check:
<<: *common
command: /bin/bash -xcl "./scripts/check-docs.sh"
test:
<<: *common
command: /bin/bash -xcl "uname -a && swift -version && swift $${SWIFT_TEST_VERB-test} $${FORCE_TEST_DISCOVERY-} $${WARN_AS_ERROR_ARG-} $${SANITIZER_ARG-} $${IMPORT_CHECK_ARG-} && ./scripts/integration_tests.sh $${INTEGRATION_TESTS_ARG-}"
performance-test:
<<: *common
command: /bin/bash -xcl "swift build -c release -Xswiftc -Xllvm -Xswiftc -align-all-functions=5 -Xswiftc -Xllvm -Xswiftc -align-all-blocks=5 && ./.build/release/NIOPerformanceTester"
# util
shell:
<<: *common
entrypoint: /bin/bash
# samples
echo:
<<: *common
tty: true
ports:
- "9999:9999"
command: /bin/bash -xcl "swift run NIOEchoServer 0.0.0.0 9999"
http:
<<: *common
tty: true
ports:
- "8888:8888"
command: /bin/bash -xcl "swift run NIOHTTP1Server 0.0.0.0 8888"