name: test-nuget-ubuntu

on: [push, pull_request]

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  build_linux:
    runs-on: ubuntu-latest
    container: stabletec/build-core:debian-11
    steps:
      - uses: actions/checkout@v4
      - name: Build HiGHS
        run: |
         cmake -E make_directory /__w/HiGHS/HiGHS/build
         cmake -E make_directory /__w/HiGHS/HiGHS/nugets
         cmake -E make_directory /__w/HiGHS/HiGHS/test_nuget

      - name: Configure CMake
        working-directory: /__w/HiGHS/HiGHS/build
        run: cmake $GITHUB_WORKSPACE -DCSHARP=ON -DBUILD_DOTNET=ON

      - name: Build
        working-directory: /__w/HiGHS/HiGHS/build
        run: cmake --build . --config Release --parallel

      - uses: actions/setup-dotnet@v4
        with:
          dotnet-version: '6.0.x'

      - name: Dotnet pack
        working-directory: /__w/HiGHS/HiGHS/build/dotnet/Highs.Native
        run: dotnet pack -c Release /p:Version=1.13.1

      - name: Add local feed
        run: dotnet nuget add source /__w/HiGHS/HiGHS/nugets

      - name: Dotnet push to local feed
        working-directory: /__w/HiGHS/HiGHS/build/dotnet/Highs.Native
        run: dotnet nuget push ./bin/Release/*.nupkg -s /__w/HiGHS/HiGHS/nugets

      - name: Create new project and test
        shell: bash
        working-directory: /__w/HiGHS/HiGHS/test_nuget
        run: |
          dotnet new console
          rm Program.cs
          cp $GITHUB_WORKSPACE/examples/call_highs_from_csharp.cs .
          dotnet add package Highs.Native -s /__w/HiGHS/HiGHS/nugets
          dotnet run

  build_linux_8:
    runs-on: ubuntu-latest
    container: stabletec/build-core:debian-11
    steps:
      - uses: actions/checkout@v4
      - name: Build HiGHS
        run: |
         cmake -E make_directory /__w/HiGHS/HiGHS/build
         cmake -E make_directory /__w/HiGHS/HiGHS/nugets
         cmake -E make_directory /__w/HiGHS/HiGHS/test_nuget

      - name: Configure CMake
        working-directory: /__w/HiGHS/HiGHS/build
        run: cmake $GITHUB_WORKSPACE -DCSHARP=ON -DBUILD_DOTNET=ON

      - name: Build
        working-directory: /__w/HiGHS/HiGHS/build
        run: cmake --build . --config Release --parallel

      - uses: actions/setup-dotnet@v4
        with:
          dotnet-version: '8.0.x'

      - name: Dotnet pack
        working-directory: /__w/HiGHS/HiGHS/build/dotnet/Highs.Native
        run: dotnet pack -c Release /p:Version=1.13.1

      - name: Add local feed
        run: dotnet nuget add source /__w/HiGHS/HiGHS/nugets

      - name: Dotnet push to local feed
        working-directory: /__w/HiGHS/HiGHS/build/dotnet/Highs.Native
        run: dotnet nuget push ./bin/Release/*.nupkg -s /__w/HiGHS/HiGHS/nugets

      - name: Create new project and test
        shell: bash
        working-directory: /__w/HiGHS/HiGHS/test_nuget
        run: |
          dotnet new console
          rm Program.cs
          cp $GITHUB_WORKSPACE/examples/call_highs_from_csharp.cs .
          dotnet add package Highs.Native -s /__w/HiGHS/HiGHS/nugets
          dotnet run

 
