# DO NOT EDIT - GENERATED FROM .github/workflows-in/samples.ys

name: samples
defaults:
  run:
    shell: bash -e -x {0}
'on':
  workflow_dispatch: null
  push:
    branches:
    - master
  pull_request:
    branches:
    - '*'
env:
  PROJ_PKG_NAME: rapidyaml-
  PROJ_PFX_TARGET: ryml-
  PROJ_PFX_CMAKE: RYML_
  CMAKE_FLAGS: -DRYML_TEST_SUITE=ON
  NUM_JOBS_BUILD: null
jobs:
  samples:
    if: always()
    continue-on-error: false
    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:
      STD: ${{matrix.std}}
      CXX_: ${{matrix.cxx}}
      BT: ${{matrix.bt}}
      BITLINKS: ${{matrix.bitlinks}}
      VG: ${{matrix.vg}}
      SAN: ${{matrix.san}}
      LINT: ${{matrix.lint}}
      OS: ${{matrix.os}}
      CMANY: 'ON'
    steps:
    - name: checkout (action)
      uses: actions/checkout@v4
      with:
        submodules: recursive
        fetch-depth: 0
    - 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
