name: build on: push: branches: [ master ] defaults: run: working-directory: ./HorseIsleServer jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - 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: Setup WSL uses: Vampire/setup-wsl@v1.2.1 - name: Restore dependencies run: dotnet restore - name: Build win-x64 continue-on-error: false run: | dotnet add HISPd package Microsoft.DotNet.ILCompiler --prerelease dotnet publish -r win-x64 -c Windows --self-contained mkdir "HISPd\bin\x64\Windows\net7.0\win-x64\native\gamedata" copy "..\HorseIsleData\gamedata\*" "HISPd\bin\x64\Windows\net7.0\win-x64\native\gamedata" copy "..\HorseIsleData\HI1.MAP" "HISPd\bin\x64\Windows\net7.0\win-x64\native\HI1.MAP" copy "HISPd\bin\x64\Windows\net7.0\win-x64\e_sqlite3.dll" "HISPd\bin\x64\Windows\net7.0\win-x64\native\e_sqlite3.dll" del "HISPd\bin\x64\Windows\net7.0\win-x64\native\HISPd.pdb" del "HISPd\bin\x64\Windows\net7.0\win-x64\native\HISPd.lib" del "HISPd\bin\x64\Windows\net7.0\win-x64\native\HISPd.exp" dotnet remove HISPd package Microsoft.DotNet.ILCompiler 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 deb package continue-on-error: false shell: wsl-bash -u root {0} run: | apt update apt install -y dos2unix mkdir /mnt/fucking-windows mount -t tmpfs -o size=800M tmpfs /mnt/fucking-windows mkdir /mnt/fucking-windows/Debian64 mkdir /mnt/fucking-windows/Debian64/etc mkdir /mnt/fucking-windows/Debian64/usr mkdir /mnt/fucking-windows/Debian64/etc/hisp mkdir /mnt/fucking-windows/Debian64/etc/hisp/gamedata mkdir /mnt/fucking-windows/Debian64/etc/systemd mkdir /mnt/fucking-windows/Debian64/etc/systemd/system mkdir /mnt/fucking-windows/Debian64/usr/bin mkdir /mnt/fucking-windows/Debian64/usr/lib mkdir /mnt/fucking-windows/Debian64/DEBIAN cp LibHISP/Resources/server.properties /mnt/fucking-windows/Debian64/etc/hisp/server.properties cp LibHISP/Resources/default_cross_domain.xml /mnt/fucking-windows/Debian64/etc/hisp/CrossDomainPolicy.xml cp -r HISPd/Resources/DEBIAN/* /mnt/fucking-windows/Debian64/DEBIAN cp -r HISPd/bin/x64/Linux/net7.0/linux-x64/publish/gamedata/* /mnt/fucking-windows/Debian64/etc/hisp/gamedata cp HISPd/bin/x64/Linux/net7.0/linux-x64/publish/libe_sqlite3.so /mnt/fucking-windows/Debian64/usr/lib/libe_sqlite3.so cp HISPd/bin/x64/Linux/net7.0/linux-x64/publish/HI1.MAP /mnt/fucking-windows/Debian64/etc/hisp/HI1.MAP cp HISPd/bin/x64/Linux/net7.0/linux-x64/publish/HISPd /mnt/fucking-windows/Debian64/usr/bin/HISPd cp HISPd/Resources/HISP.service /mnt/fucking-windows/Debian64/etc/systemd/system/HISP.service dos2unix /mnt/fucking-windows/Debian64/DEBIAN/conffiles dos2unix /mnt/fucking-windows/Debian64/DEBIAN/control dos2unix /mnt/fucking-windows/Debian64/DEBIAN/postinst dos2unix /mnt/fucking-windows/Debian64/DEBIAN/postrm dos2unix /mnt/fucking-windows/Debian64/DEBIAN/prerm dos2unix /mnt/fucking-windows/Debian64/etc/systemd/system/HISP.service cat /mnt/fucking-windows/Debian64/DEBIAN/control chmod 755 -R /mnt/fucking-windows/Debian64 chmod +x /mnt/fucking-windows/Debian64/usr/bin/HISPd mkdir debpackage dpkg-deb --build /mnt/fucking-windows/Debian64 mv /mnt/fucking-windows/Debian64.deb debpackage/HISP-Debian-AMD64.deb # - 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.pubxm - name: Upload win-x64 uses: actions/upload-artifact@v2 with: name: HISP-Win64 path: HorseIsleServer\HISPd\bin\x64\Windows\net7.0\win-x64\native\ - name: Upload win-x86 uses: actions/upload-artifact@v2 with: name: HISP-Win32 path: HorseIsleServer\HISPd\bin\x86\Windows\net7.0\win-x86\publish\ - name: Upload win-arm uses: actions/upload-artifact@v2 with: name: HISP-WinARM path: HorseIsleServer\HISPd\bin\arm\Windows\net7.0\windows-arm\publish\ - name: Upload win-arm64 uses: actions/upload-artifact@v2 with: name: HISP-WinARM64 path: HorseIsleServer\HISPd\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/HISPd/bin/x64/Linux/net7.0/linux-x64/publish/ - name: Upload linux-arm uses: actions/upload-artifact@v2 with: name: HISP-LinuxARM path: HorseIsleServer/HISPd/bin/ARM/Linux/net7.0/linux-arm/publish/ - name: Upload linux-arm64 uses: actions/upload-artifact@v2 with: name: HISP-LinuxARM64 path: HorseIsleServer/HISPd/bin/ARM64/Linux/net7.0/linux-arm64/publish/ - name: Upload mac-x64 uses: actions/upload-artifact@v2 with: name: HISP-Mac64 path: HorseIsleServer/HISPd/bin/x64/MacOS/net7.0/osx-x64/publish/ - name: Upload mac-arm64 uses: actions/upload-artifact@v2 with: name: HISP-MacARM64 path: HorseIsleServer/HISPd/bin/arm64/MacOS/net7.0/osx-arm64/publish/ - name: Upload deb package uses: actions/upload-artifact@v2 with: name: HISP-DebianPackage path: HorseIsleServer/debpackage # - name: Upload android-arm # uses: actions/upload-artifact@v2 # with: # name: HISP-AndroidARM # path: HorseIsleServer/HISPd/bin/arm/Android/net7.0/android-arm/publish/ # - name: Upload android-arm64 # uses: actions/upload-artifact@v2 # with: # name: HISP-AndroidARM64 # path: HorseIsleServer/HISPd/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