name: Build .NET Project

on:
  push:
    branches:
      - main # Trigger on pushes to the main branch

jobs:
  build:
    runs-on: arm64 # Use the ARM64 runner
    steps:
      
      - name: Checkout code
        uses: actions/checkout@v3 # Action to checkout your repository.  actions/checkout@v4 fails with syntax error
        
#      - name: Setup NET 8.0 SDK (x64)
#        uses: actions/setup-dotnet@v3 # Use the latest version of setup-dotnet
#        with:
#          dotnet-version: '8.0.x' # Specify the desired .NET version
#          architecture: 'x64' # Explicitly request the 64-bit architecture    
        
#      - name: Setup .NET SDK
#        uses: actions/setup-dotnet@v4 # Action to install a specific .NET SDK version
#        with:
#          dotnet-version: '8.0.x' # Specify the desired .NET SDK version

      - name: Restore dependencies
        run: dotnet restore # Restore NuGet packages

      - name: Build project
        run:  |
              pwd
              dotnet publish MarketData/MarketData/MarketData.csproj -c Debug -r linux-arm64 --self-contained=true    
              dotnet publish MarketDataServer/MarketDataServer.csproj -c Debug -r linux-arm64 --self-contained=true 
              dotnet publish IPMonitor/IPMonitor.csproj -c Debug -r linux-arm64 --self-contained=true         
#              dotnet build --configuration Debug --no-restore # Build the project in Debug configuration
#
        
      - name: Create Market Data archive with preserved permissions
        run: tar -czvf marketdata.tar.gz MarketData/MarketData/bin/Debug/net8.0/linux-arm64/publish
          
      - name: Upload Market Data Build Artifact
        uses: actions/upload-artifact@v3
        with:
          name: marketdata-build-artifact
          path: marketdata.tar.gz

      - name: Create Market Data Server archive with preserved permissions
        run: tar -czvf marketdata-server.tar.gz MarketDataServer/bin/Debug/net8.0/linux-arm64/publish
        
      - name: Upload Market Data Server Build Artifact
        uses: actions/upload-artifact@v3
        with:
          name: marketdata-server-build-artifact
          path: marketdata-server.tar.gz
          
      - name: Create IPMonitor archive with preserved permissions
        run: tar -czvf ipmonitor.tar.gz IPMonitor/bin/Debug/net8.0/linux-arm64/publish
        
      - name: Upload IPMonitor Build Artifact
        uses: actions/upload-artifact@v3
        with:
          name: ipmonitor-build-artifact
          path: ipmonitor.tar.gz          


#      - name: Run tests (optional)
#        run: dotnet test --no-build # Run unit tests if available
