!yamlscript/v0:

:use common: :all
:: workflow-setup()

jobs:
  samples:
    :: setup-job('samples' 'samples')
    runs-on: ${{matrix.os}}
    strategy:
      fail-fast: false
      matrix:
        include:
        - {bt: Debug  , os: ubuntu-24.04}
        - {bt: Release, os: ubuntu-24.04}
        - {bt: Debug  , os: windows-2022}
        - {bt: Release, os: windows-2022}
        - {bt: Debug  , os: macos-latest}
        - {bt: Release, os: macos-latest}
    env: !:merge*
    - ! load('share/env.yaml')
    - CMANY: ON
    steps:
    - :: checkout-action
    - name: python3
      uses: actions/setup-python@v5
      with: {python-version: 3.9}
    - name: install requirements
      run: source .github/reqs.sh && c4_install_test_requirements $OS
    - name: show info
      run: source .github/setenv.sh && c4_show_info
    - name: singleheader
      run: cd samples/singleheader && ./run.sh $BT
    - name: singleheader-ints
      run: cd samples/singleheader-ints && ./run.sh $BT
    - name: singleheaderlib-static
      run: cd samples/singleheaderlib && ./run_static.sh $BT
    - name: singleheaderlib-shared
      run: cd samples/singleheaderlib && ./run_shared.sh $BT
    - name: singleheaderlib-ints-static
      run: cd samples/singleheaderlib-ints && ./run_static.sh $BT
    - name: singleheaderlib-ints-shared
      run: cd samples/singleheaderlib-ints && ./run_shared.sh $BT
    - name: add_subdirectory
      run: cd samples/add_subdirectory && ./run.sh $BT
    - name: find_package
      run: cd samples/find_package && ./run.sh $BT
    - name: custom_c4core
      run: cd samples/custom_c4core && ./run.sh $BT
    - name: fetch_content
      run: |
        # run this sample only if the branch exists on the repo
        set -xe
        cd samples/fetch_content
        repo=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY
        # https://stackoverflow.com/questions/58033366
        branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}
        echo branch=$branch
        if [ ! -z "$(git ls-remote $repo | grep $branch)" ] ; then
           ./run.sh $BT $branch "$repo"
        fi
