on:
  schedule:
    - cron: '0 0 * * *'
  workflow_dispatch:

name: Daily Build Check

env:
  DOCS_ARTIFACT_TEMPLATE: dxfeed-c-api-%VERSION%-docs
  MAC_ARTIFACT_TEMPLATE: dxfeed-c-api-%VERSION%-macosx
  LINUX_ARTIFACT_TEMPLATE: dxfeed-c-api-%VERSION%-linux
#  CENTOS_ARTIFACT_TEMPLATE: dxfeed-c-api-%VERSION%-centos
  WINDOWS_ARTIFACT_TEMPLATE: dxfeed-c-api-#VERSION#-windows
  RELEASE_PREFIX: "dxFeed C API "
  BUILD_VERSION: 0.0.0

jobs:

  # --------------------------- BUILD DOCUMENTATION
  build_docs:
    runs-on: ubuntu-latest
    name: build documentation
    steps:
      - uses: actions/checkout@master
      - name: Set env
        run: |
          echo RELEASE_VERSION=${BUILD_VERSION} >> $GITHUB_ENV
          echo ARTIFACT=$(echo ${DOCS_ARTIFACT_TEMPLATE} | sed "s/%VERSION%/${BUILD_VERSION}/g") >> $GITHUB_ENV
      - name: Check env
        run: |
          echo Artifact: ${{ env.ARTIFACT }}
          echo Release : ${{ env.RELEASE_VERSION }}
      - name: Build documentation
        uses: ./.github/actions/doxygen
        id: build-docs
        with:
          artifact: ${{ env.ARTIFACT }}
          release: ${{ env.RELEASE_VERSION }}

  # --------------------------- BUILD LINUX LIBRARY (WITH TLS SUPPORT)
  build_linux_tls:
    runs-on: ubuntu-latest
    name: build linux (TLS)
    steps:
      - uses: actions/checkout@main
      - name: Set env
        run: |
          echo RELEASE_VERSION=${BUILD_VERSION} >> $GITHUB_ENV
          echo ARTIFACT=$(echo ${LINUX_ARTIFACT_TEMPLATE} | sed "s/%VERSION%/${BUILD_VERSION}/g" ) >> $GITHUB_ENV
      - name: Check env
        run: |
          echo Artifact: ${{ env.ARTIFACT }}
          echo Release : ${{ env.RELEASE_VERSION }}
      - name: Build Linux library (TLS)
        run: |
          ./make_package.sh ${{ env.RELEASE_VERSION }} no-test

  # --------------------------- BUILD OLD LINUX (CENTOS 7) LIBRARY (WITH TLS SUPPORT)
#  build_centos_tls:
#    runs-on: ubuntu-latest
#    name: build centos (TLS)
#    steps:
#      - uses: actions/checkout@master
#      - name: Set env
#        run: |
#          echo RELEASE_VERSION=${BUILD_VERSION} >> $GITHUB_ENV
#          echo ARTIFACT=$(echo ${CENTOS_ARTIFACT_TEMPLATE} | sed "s/%VERSION%/${BUILD_VERSION}/g" ) >> $GITHUB_ENV
#      - name: Check env
#        run: |
#          echo Artifact: ${{ env.ARTIFACT }}
#          echo Release : ${{ env.RELEASE_VERSION }}
#      - name: Build centos library (TLS)
#        uses: ./.github/actions/centos
#        id: build-centos
#        with:
#          artifact: ${{ env.ARTIFACT }}
#          release:  ${{ env.RELEASE_VERSION }}

  # --------------------------- BUILD MACOSX LIBRARY (WITH TLS SUPPORT)
  build_macos_tls:
    runs-on: macos-13
    name: build macos (TLS)
    steps:
      - uses: actions/checkout@master
      - name: Set env
        run: |
          echo RELEASE_VERSION=${BUILD_VERSION} >> $GITHUB_ENV
          echo ARTIFACT=$(echo ${MAC_ARTIFACT_TEMPLATE} | sed "s/%VERSION%/${BUILD_VERSION}/g" ) >> $GITHUB_ENV
      - name: Check env
        run: |
          echo Artifact: ${{ env.ARTIFACT }}
          echo Release : ${{ env.RELEASE_VERSION }}
      - name: Prepare tools
        run: |
          brew install p7zip
      - name: Build MacOSX library
        run: |
          ./make_package.sh ${{ env.RELEASE_VERSION }} no-test

  # --------------------------- BUILD WIN LIBRARY (WITH TLS SUPPORT)
  build_win_tls:
    runs-on: windows-2022
    name: build windows (TLS)
    steps:
      - uses: actions/checkout@main
      - name: Set env
        run: |
          echo RELEASE_VERSION=$("$Env:BUILD_VERSION") | Add-Content -Path $env:GITHUB_ENV -Encoding utf8
          echo ARTIFACT=$(echo $Env:WINDOWS_ARTIFACT_TEMPLATE | %{$_ -replace '#VERSION#', $Env:BUILD_VERSION }) | Add-Content -Path $env:GITHUB_ENV -Encoding utf8
      - name: Check env
        run: |
          echo "RELEASE    : ${{ env.RELEASE_VERSION }}"
          echo "ARTIFACT   : ${{ env.ARTIFACT }}"
      - name: Build Windows library (TLS)
        run: |
          ./make_package.bat ${{ env.RELEASE_VERSION }} no-test vs2022