HISP/.github/workflows/build.yml
2022-07-17 15:21:25 +12:00

271 lines
9 KiB
YAML

name: build
on:
push:
branches: [ master ]
defaults:
run:
working-directory: ./HorseIsleServer
jobs:
build-linux:
runs-on: ubuntu-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: Restore dependencies
run: dotnet restore
- 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 deb package
continue-on-error: false
run: |
apt update
apt install -y dos2unix
mkdir /mnt/debpkg
mount -t tmpfs -o size=800M tmpfs /mnt/debpkg
mkdir /mnt/debpkg/Debian64
mkdir /mnt/debpkg/Debian64/etc
mkdir /mnt/debpkg/Debian64/usr
mkdir /mnt/debpkg/Debian64/etc/hisp
mkdir /mnt/debpkg/Debian64/etc/hisp/gamedata
mkdir /mnt/debpkg/Debian64/etc/systemd
mkdir /mnt/debpkg/Debian64/etc/systemd/system
mkdir /mnt/debpkg/Debian64/usr/bin
mkdir /mnt/debpkg/Debian64/usr/lib
mkdir /mnt/debpkg/Debian64/DEBIAN
cp LibHISP/Resources/server.properties /mnt/debpkg/Debian64/etc/hisp/server.properties
cp LibHISP/Resources/default_cross_domain.xml /mnt/debpkg/Debian64/etc/hisp/CrossDomainPolicy.xml
cp -r HISPd/Resources/DEBIAN/* /mnt/debpkg/Debian64/DEBIAN
cp -r HISPd/bin/x64/Linux/net7.0/linux-x64/publish/gamedata/* /mnt/debpkg/Debian64/etc/hisp/gamedata
cp HISPd/bin/x64/Linux/net7.0/linux-x64/publish/libe_sqlite3.so /mnt/debpkg/Debian64/usr/lib/libe_sqlite3.so
cp HISPd/bin/x64/Linux/net7.0/linux-x64/publish/HI1.MAP /mnt/debpkg/Debian64/etc/hisp/HI1.MAP
cp HISPd/bin/x64/Linux/net7.0/linux-x64/publish/HISPd /mnt/debpkg/Debian64/usr/bin/HISPd
cp HISPd/Resources/HISP.service /mnt/debpkg/Debian64/etc/systemd/system/HISP.service
cat /mnt/debpkg/Debian64/DEBIAN/control
dos2unix /mnt/debpkg/Debian64/DEBIAN/conffiles
dos2unix /mnt/debpkg/Debian64/DEBIAN/control
dos2unix /mnt/debpkg/Debian64/DEBIAN/postinst
dos2unix /mnt/debpkg/Debian64/DEBIAN/postrm
dos2unix /mnt/debpkg/Debian64/DEBIAN/prerm
dos2unix /mnt/debpkg/Debian64/etc/systemd/system/HISP.service
chmod 755 -R /mnt/debpkg/Debian64
chmod +x /mnt/debpkg/Debian64/usr/bin/HISPd
mkdir debpackage
dpkg-deb --build /mnt/debpkg/Debian64
mv /mnt/debpkg/Debian64.deb debpackage/HISP-Debian-AMD64.deb
#android .. maybe someday
# - 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 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/
# Upload LINUX
- 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 deb package
uses: actions/upload-artifact@v2
with:
name: HISP-DebianPackage
path: HorseIsleServer/debpackage
build-win:
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: Restore dependencies
run: dotnet restore
#nativeaot x64 build
- 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
#nativeaot arm64 build
- name: Build win-arm64
continue-on-error: false
run: |
dotnet add HISPd package Microsoft.DotNet.ILCompiler --prerelease
dotnet publish -r win-arm64 -c Windows /p:Platform=ARM64 --self-contained
mkdir "HISPd\bin\ARM64\Windows\net7.0\win-arm64\native\gamedata"
copy "..\HorseIsleData\gamedata\*" "HISPd\bin\ARM64\Windows\net7.0\win-arm64\native\gamedata"
copy "..\HorseIsleData\HI1.MAP" "HISPd\bin\ARM64\Windows\net7.0\win-arm64\native\HI1.MAP"
copy "HISPd\bin\ARM64\Windows\net7.0\win-arm64\e_sqlite3.dll" "HISPd\bin\ARM64\Windows\net7.0\win-arm64\native\e_sqlite3.dll"
del "HISPd\bin\ARM64\Windows\net7.0\win-arm64\native\HISPd.pdb"
del "HISPd\bin\ARM64\Windows\net7.0\win-arm64\native\HISPd.lib"
del "HISPd\bin\ARM64\Windows\net7.0\win-arm64\native\HISPd.exp"
dotnet remove HISPd package Microsoft.DotNet.ILCompiler
# MacOS stuff, because no where else to put it
- 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
# Upload WINDOWS
- 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\win-arm\publish\
- name: Upload win-arm64
uses: actions/upload-artifact@v2
with:
name: HISP-WinARM64
path: HorseIsleServer\HISPd\bin\arm64\Windows\net7.0\win-arm64\native\
- 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\
# Upload MACOS
- 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/
# UPLOAD WEB
- 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