name: linux

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]
defaults:
  run:
    working-directory: ./Horse Isle Server

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
      
    - name: Setup .NET
      uses: actions/setup-dotnet@v1
      with:
        dotnet-version: 5.0.x

    - name: Restore dependencies
      run: dotnet restore
      
      
    - name: Build linux-64
      continue-on-error: false
      run: |
        dotnet publish -p:PublishProfile=Linux64.pubxml
        cp ../DataCollection/*.json "HorseIsleServer/bin/x64/Linux/net5.0/linux-x64/publish/"
        cp ../DataCollection/*.MAP "HorseIsleServer/bin/x64/Linux/net5.0/linux-x64/publish/"
        mkdir "HorseIsleServer/bin/x64/Linux/net5.0/linux-x64/publish/www"
        cp -R ../WebInterface/* "HorseIsleServer/bin/x64/Linux/net5.0/linux-x64/publish/www"
    
    - name: Build linux-arm
      continue-on-error: false
      run: |
        dotnet publish -p:PublishProfile=LinuxARM.pubxml
        cp ../DataCollection/*.json "HorseIsleServer/bin/ARM/Linux/net5.0/linux-arm/publish/"
        cp ../DataCollection/*.MAP "HorseIsleServer/bin/ARM/Linux/net5.0/linux-arm/publish/"
        mkdir "HorseIsleServer/bin/ARM/Linux/net5.0/linux-arm/publish/www"
        cp -R ../WebInterface/* "HorseIsleServer/bin/ARM/Linux/net5.0/linux-arm/publish/www"
    
    - name: Build linux-arm64
      continue-on-error: false
      run: |
        dotnet publish -p:PublishProfile=LinuxARM64.pubxml
        cp ../DataCollection/*.json "HorseIsleServer/bin/ARM64/Linux/net5.0/linux-arm64/publish/"
        cp ../DataCollection/*.MAP "HorseIsleServer/bin/ARM64/Linux/net5.0/linux-arm64/publish/"
        mkdir "HorseIsleServer/bin/ARM64/Linux/net5.0/linux-arm64/publish/www/"
        cp -R ../WebInterface/* "HorseIsleServer/bin/ARM64/Linux/net5.0/linux-arm64/publish/www/"
        
    - name: upload linux-64
      uses: actions/upload-artifact@v2
      with:
        name: linux-x64
        path: Horse Isle Server/HorseIsleServer/bin/x64/Linux/net5.0/linux-x64/publish/

    - name: upload linux-arm
      uses: actions/upload-artifact@v2
      with:
        name: linux-arm
        path: Horse Isle Server/HorseIsleServer/bin/ARM/Linux/net5.0/linux-arm/publish/
    
    - name: upload linux-arm64
      uses: actions/upload-artifact@v2
      with:
        name: linux-arm64
        path: Horse Isle Server/HorseIsleServer/bin/ARM64/Linux/net5.0/linux-arm64/publish/