# This workflow builds and unit tests both main C++ API and also build/data tools for metadata generation.

name: Testing C++ API
on: pull_request
permissions:
  contents: read

jobs:
  cpp-test:
    runs-on: ubuntu-latest
    steps:
    - name: Harden Runner
      uses: step-security/harden-runner@8ca2b8b2ece13480cda6dacd3511b49857a23c09 # v2.5.1
      with:
        egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs

    - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0
    
    - name: Set up C++ environment
      run: |
        sudo apt-get install \
        cmake cmake-curses-gui libprotobuf-dev libgtest-dev libre2-dev \
        libicu-dev libboost-dev libboost-thread-dev libboost-system-dev \
        protobuf-compiler
      
    - name: Build C++
      run: |
        cd cpp
        mkdir build
        cd build
        cmake ..
        make
    
    - name: Test C++ Build Tools
      run: |
        ./cpp/build/tools/generate_geocoding_data_test
    
    - name: Test C++ API
      run: |
        ./cpp/build/libphonenumber_test
