# 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.2204.57.yaml run test
version: "3"

services:

  runtime-setup:
    image: swift-certificates:default
    build:
      context: .
      dockerfile: Dockerfile

  common: &common
    image: swift-certificates:default
    depends_on: [runtime-setup]
    volumes:
      - ~/.ssh:/root/.ssh
      - ..:/swift-certificates:z
    working_dir: /swift-certificates

  soundness:
    <<: *common
    command: /bin/bash -xcl "swift -version && uname -a && ./scripts/soundness.sh"

  test:
    <<: *common
    command: /bin/bash -xcl "swift $${SWIFT_TEST_VERB-test} $${WARN_AS_ERROR_ARG-} $${SANITIZER_ARG-} $${IMPORT_CHECK_ARG-} && cd Benchmarks && swift package benchmark baseline check --check-absolute-path Thresholds/$${SWIFT_VERSION-}/"

  update-benchmark-baseline:
    <<: *common
    command: /bin/bash -xcl "cd Benchmarks && swift package --scratch-path .build/$${SWIFT_VERSION-}/ --allow-writing-to-package-directory benchmark --format metricP90AbsoluteThresholds --path Thresholds/$${SWIFT_VERSION-}/"
  # util

  shell:
    <<: *common
    entrypoint: /bin/bash
