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