name: build

on:
  push:
    branches: [ master ]
defaults:
  run:
    working-directory: ./HorseIsleServer

jobs:
  build:

    runs-on: windows-latest

    steps:
    - uses: actions/checkout@v2
    
    - name: Git Submodule update
      run: git submodule update --init --recursive
      
    - name: Setup .NET
      uses: actions/setup-dotnet@v1
      with:
        dotnet-version: 7.0.x
        include-prerelease: true

    - name: Restore dependencies
      run: dotnet restore
      
      
    - name: Build win-x64
      continue-on-error: false
      run: |
        dotnet publish -p:PublishProfile=Win64.pubxml

    - name: Build win-x86
      continue-on-error: false
      run: |
        dotnet publish -p:PublishProfile=Win32.pubxml

    - name: Build win-arm
      continue-on-error: false
      run: |
        dotnet publish -p:PublishProfile=WinARM.pubxml

    - name: Build win-arm64
      continue-on-error: false
      run: |
        dotnet publish -p:PublishProfile=WinARM64.pubxml

    - name: Build linux-x64
      continue-on-error: false
      run: |
        dotnet publish -p:PublishProfile=Linux64.pubxml
    
    - name: Build linux-arm
      continue-on-error: false
      run: |
        dotnet publish -p:PublishProfile=LinuxARM.pubxml
    
    - name: Build linux-arm64
      continue-on-error: false
      run: |
        dotnet publish -p:PublishProfile=LinuxARM64.pubxml
      
    - name: Build mac-x64
      continue-on-error: false
      run: |
        dotnet publish -p:PublishProfile=Osx64.pubxml
    
    - name: Build mac-arm64
      continue-on-error: false
      run: |
        dotnet publish -p:PublishProfile=OsxARM64.pubxml

    - name: Build android-arm
      continue-on-error: false
      run: |
        dotnet publish -p:PublishProfile=AndroidARM.pubxml

    - name: Build android-arm64
      continue-on-error: false
      run: |
        dotnet publish -p:PublishProfile=AndroidARM64.pubxml


    - name: Upload win-x64
      uses: actions/upload-artifact@v2
      with:
        name: HISP-Win64
        path: HorseIsleServer\HISPCli\bin\x64\Windows\net7.0\win-x64\publish\
    
    - name: Upload win-x86
      uses: actions/upload-artifact@v2
      with:
        name: HISP-Win32
        path: HorseIsleServer\HISPCli\bin\x86\Windows\net7.0\win-x86\publish\
        
    - name: Upload win-arm
      uses: actions/upload-artifact@v2
      with:
        name: HISP-WinARM
        path: HorseIsleServer\HISPCli\bin\arm\Windows\net7.0\windows-arm\publish\

    - name: Upload win-arm64
      uses: actions/upload-artifact@v2
      with:
        name: HISP-WinARM64
        path: HorseIsleServer\HISPCli\bin\arm64\Windows\net7.0\windows-arm64\publish\

    - name: Upload win-x86-noobs
      uses: actions/upload-artifact@v2
      with:
        name: HISP-Win32-Noobs
        path: HorseIsleServer\N00BS\bin\x86\Windows\net7.0\win-x86\publish\

    - name: Upload win-x64-noobs
      uses: actions/upload-artifact@v2
      with:
        name: HISP-Win64-Noobs
        path: HorseIsleServer\N00BS\bin\x64\Windows\net7.0\win-x64\publish\
        
    - name: Upload linux-x64
      uses: actions/upload-artifact@v2
      with:
        name: HISP-Linux64
        path: HorseIsleServer/HISPCli/bin/x64/Linux/net7.0/linux-x64/publish/

    - name: Upload linux-arm
      uses: actions/upload-artifact@v2
      with:
        name: HISP-LinuxARM
        path: HorseIsleServer/HISPCli/bin/ARM/Linux/net7.0/linux-arm/publish/
    
    - name: Upload linux-arm64
      uses: actions/upload-artifact@v2
      with:
        name: HISP-LinuxARM64
        path: HorseIsleServer/HISPCli/bin/ARM64/Linux/net7.0/linux-arm64/publish/

    - name: Upload mac-x64
      uses: actions/upload-artifact@v2
      with:
        name: HISP-Mac64
        path: HorseIsleServer/HISPCli/bin/x64/MacOS/net7.0/osx-x64/publish/

    - name: Upload mac-arm64
      uses: actions/upload-artifact@v2
      with:
        name: HISP-MacARM64
        path: HorseIsleServer/HISPCli/bin/arm64/MacOS/net7.0/osx-arm64/publish/

    - name: Upload android-arm
      uses: actions/upload-artifact@v2
      with:
        name: HISP-AndroidARM
        path: HorseIsleServer/HISPCli/bin/arm/Android/net7.0/android-arm/publish/

    - name: Upload android-arm64
      uses: actions/upload-artifact@v2
      with:
        name: HISP-AndroidARM64
        path: HorseIsleServer/HISPCli/bin/arm64/Android/net7.0/android-arm64/publish/


    - name: Upload Website (master)
      uses: actions/upload-artifact@v2
      with:
        name: HISP-Web-Master
        path: HorseIsleWeb/master-site
        
    - name: Upload Website (game)
      uses: actions/upload-artifact@v2
      with:
        name: HISP-Web-Game
        path: HorseIsleWeb/game-site