---
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"). You may not use
# this file except in compliance with the License. A copy of the License is
# located at
#
# http://aws.amazon.com/apache2.0/
#
# or in the "license" file accompanying this file. This file 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: 0.2

env:
  variables:
    # CODEBUILD_ is a reserved namespace.
    CB_BIN_DIR: "./codebuild/bin"
    CC: "/usr/bin/clang"
    CXX: "/usr/bin/clang++"

phases:
  build:
    on-failure: ABORT
    commands:
    # LLVM complains about corrupt coverage information
    # for static targets, so compile to a shared lib
    # instead.
      - |
        cmake . -Bbuild \
          -DCOVERAGE=ON \
          -DCMAKE_PREFIX_PATH=$LIBCRYPTO_ROOT \
          -DBUILD_SHARED_LIBS=ON
      - cmake --build ./build -- -j $(nproc)
  post_build:
    on-failure: ABORT
    commands:
      - LLVM_PROFILE_FILE="ut_%8m.profraw" CTEST_PARALLEL_LEVEL=$(nproc) cmake --build ./build --target test ARGS="--output-on-failure -L unit"
      - $CB_BIN_DIR/coverage_report.sh
artifacts:
  # upload all files in the coverage_report directory
  files:
    - '**/*'
  base-directory: coverage_report
