mirror of
https://gitlab.com/2009scape/Saradomin-Launcher.git
synced 2026-08-01 14:19:14 -06:00
159 lines
6.2 KiB
YAML
159 lines
6.2 KiB
YAML
variables:
|
|
COMMON_FLAGS: -p:PublishTrimmed=false -p:PublishReadyToRun=true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true
|
|
PUBLISH_DIR_WIN64: bin/Release/net6.0/win-x64/publish
|
|
PUBLISH_DIR_LINUXARM64: bin/Release/net6.0/linux-arm64/publish
|
|
PUBLISH_DIR_LINUX64: bin/Release/net6.0/linux-x64/publish
|
|
PUBLISH_DIR_OSX: bin/Release/net6.0/osx-x64/publish
|
|
ARTIFACT_DIR: Saradomin
|
|
GIT_SUBMODULE_STRATEGY: recursive
|
|
OUTPUT_FILE_PREFIX: 2009scape-launcher
|
|
|
|
stages:
|
|
- build_all
|
|
- pack_linux_no_rt
|
|
- pack_linux_sc
|
|
- pack_linux_arm_no_rt
|
|
- pack_linux_arm_sc
|
|
- pack_windows_no_rt
|
|
- pack_windows_sc
|
|
- pack_macos_sc
|
|
|
|
build_all:
|
|
image: mcr.microsoft.com/dotnet/sdk:8.0
|
|
stage: build_all
|
|
script:
|
|
- dotnet restore
|
|
- cd Saradomin
|
|
- pwd
|
|
|
|
- dotnet publish --runtime linux-x64 --no-self-contained -c Release $COMMON_FLAGS
|
|
- mv -v $PUBLISH_DIR_LINUX64/Saradomin ./$OUTPUT_FILE_PREFIX-no_rt
|
|
- dotnet publish --runtime linux-x64 --self-contained -c Release $COMMON_FLAGS
|
|
- mv -v $PUBLISH_DIR_LINUX64/Saradomin ./$OUTPUT_FILE_PREFIX-sc
|
|
|
|
- dotnet publish --runtime linux-arm64 --no-self-contained -c Release $COMMON_FLAGS
|
|
- mv -v $PUBLISH_DIR_LINUXARM64/Saradomin ./$OUTPUT_FILE_PREFIX-arm-no_rt
|
|
- dotnet publish --runtime linux-arm64 --self-contained -c Release $COMMON_FLAGS
|
|
- mv -v $PUBLISH_DIR_LINUXARM64/Saradomin ./$OUTPUT_FILE_PREFIX-arm-sc
|
|
|
|
- dotnet publish --runtime win-x64 --no-self-contained -c Release $COMMON_FLAGS
|
|
- mv -v $PUBLISH_DIR_WIN64/Saradomin.exe ./$OUTPUT_FILE_PREFIX-no_rt.exe
|
|
- dotnet publish --runtime win-x64 --self-contained -c Release $COMMON_FLAGS
|
|
- mv -v $PUBLISH_DIR_WIN64/Saradomin.exe ./$OUTPUT_FILE_PREFIX-sc.exe
|
|
- dotnet publish --runtime osx-x64 --self-contained -c Release -p:IncludeAllContentForSelfExtract=true $COMMON_FLAGS
|
|
- mv -v $PUBLISH_DIR_OSX/Saradomin ./$OUTPUT_FILE_PREFIX-osx-sc
|
|
artifacts:
|
|
name: "Combined artifacts"
|
|
untracked: true
|
|
paths:
|
|
- $ARTIFACT_DIR/$OUTPUT_FILE_PREFIX-no_rt
|
|
- $ARTIFACT_DIR/$OUTPUT_FILE_PREFIX-sc
|
|
|
|
- $ARTIFACT_DIR/$OUTPUT_FILE_PREFIX-arm-no_rt
|
|
- $ARTIFACT_DIR/$OUTPUT_FILE_PREFIX-arm-sc
|
|
|
|
- $ARTIFACT_DIR/$OUTPUT_FILE_PREFIX-no_rt.exe
|
|
- $ARTIFACT_DIR/$OUTPUT_FILE_PREFIX-sc.exe
|
|
- $ARTIFACT_DIR/$OUTPUT_FILE_PREFIX-osx-sc
|
|
expire_in: 1 week
|
|
|
|
pack_linux_no_rt:
|
|
stage: pack_linux_no_rt
|
|
dependencies:
|
|
- build_all
|
|
script:
|
|
- echo "Packing no-runtime build for Linux x64..."
|
|
artifacts:
|
|
name: "Linux x64 (no embedded runtime)"
|
|
paths:
|
|
- $ARTIFACT_DIR/$OUTPUT_FILE_PREFIX-no_rt
|
|
expire_in: 1 week
|
|
|
|
pack_linux_sc:
|
|
stage: pack_linux_sc
|
|
dependencies:
|
|
- build_all
|
|
script:
|
|
- echo "Packing self-contained build for Linux x64..."
|
|
artifacts:
|
|
name: "Linux x64 (self-contained)"
|
|
paths:
|
|
- $ARTIFACT_DIR/$OUTPUT_FILE_PREFIX-sc
|
|
expire_in: 1 week
|
|
|
|
pack_linux_arm_no_rt:
|
|
stage: pack_linux_arm_no_rt
|
|
dependencies:
|
|
- build_all
|
|
script:
|
|
- echo "Packing no-runtime build for Linux arm64..."
|
|
artifacts:
|
|
name: "Linux arm64 (no embedded runtime)"
|
|
paths:
|
|
- $ARTIFACT_DIR/$OUTPUT_FILE_PREFIX-arm-no_rt
|
|
expire_in: 1 week
|
|
|
|
pack_linux_arm_sc:
|
|
stage: pack_linux_arm_sc
|
|
dependencies:
|
|
- build_all
|
|
script:
|
|
- echo "Packing self-contained build for Linux arm64..."
|
|
artifacts:
|
|
name: "Linux arm64 (self-contained)"
|
|
paths:
|
|
- $ARTIFACT_DIR/$OUTPUT_FILE_PREFIX-arm-sc
|
|
expire_in: 1 week
|
|
|
|
pack_macos_sc:
|
|
stage: pack_macos_sc
|
|
dependencies:
|
|
- build_all
|
|
script:
|
|
- echo "Packing self-contained build for macOS x64..."
|
|
- mkdir -p $OUTPUT_FILE_PREFIX-osx-sc.app/Contents/MacOS
|
|
- mkdir -p $OUTPUT_FILE_PREFIX-osx-sc.app/Contents/Resources
|
|
- cp Saradomin/Resources/Icons/saradomin.icns $OUTPUT_FILE_PREFIX-osx-sc.app/Contents/Resources/
|
|
- cp $ARTIFACT_DIR/$OUTPUT_FILE_PREFIX-osx-sc $OUTPUT_FILE_PREFIX-osx-sc.app/Contents/MacOS/
|
|
- chmod +x $OUTPUT_FILE_PREFIX-osx-sc.app/Contents/MacOS/$OUTPUT_FILE_PREFIX-osx-sc
|
|
# Create the Info.plist file
|
|
- echo '<?xml version="1.0" encoding="UTF-8"?>' > $OUTPUT_FILE_PREFIX-osx-sc.app/Contents/Info.plist
|
|
- echo '<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">' >> $OUTPUT_FILE_PREFIX-osx-sc.app/Contents/Info.plist
|
|
- echo '<plist version="1.0">' >> $OUTPUT_FILE_PREFIX-osx-sc.app/Contents/Info.plist
|
|
- echo '<dict>' >> $OUTPUT_FILE_PREFIX-osx-sc.app/Contents/Info.plist
|
|
- echo ' <key>CFBundleExecutable</key>' >> $OUTPUT_FILE_PREFIX-osx-sc.app/Contents/Info.plist
|
|
- echo " <string>$OUTPUT_FILE_PREFIX-osx-sc</string>" >> $OUTPUT_FILE_PREFIX-osx-sc.app/Contents/Info.plist
|
|
- echo ' <key>CFBundleIconFile</key>' >> $OUTPUT_FILE_PREFIX-osx-sc.app/Contents/Info.plist
|
|
- echo ' <string>saradomin.icns</string>' >> $OUTPUT_FILE_PREFIX-osx-sc.app/Contents/Info.plist
|
|
# Add other keys and values as needed
|
|
- echo '</dict>' >> $OUTPUT_FILE_PREFIX-osx-sc.app/Contents/Info.plist
|
|
- echo '</plist>' >> $OUTPUT_FILE_PREFIX-osx-sc.app/Contents/Info.plist
|
|
artifacts:
|
|
name: "macOS x64 (self-contained)"
|
|
paths:
|
|
- $OUTPUT_FILE_PREFIX-osx-sc.app
|
|
expire_in: 1 week
|
|
|
|
pack_windows_no_rt:
|
|
stage: pack_windows_no_rt
|
|
dependencies:
|
|
- build_all
|
|
script:
|
|
- echo "Packing no-runtime build for Windows x64..."
|
|
artifacts:
|
|
name: "Windows x64 (no embedded runtime)"
|
|
paths:
|
|
- $ARTIFACT_DIR/$OUTPUT_FILE_PREFIX-no_rt.exe
|
|
expire_in: 1 week
|
|
|
|
pack_windows_sc:
|
|
stage: pack_windows_sc
|
|
dependencies:
|
|
- build_all
|
|
script:
|
|
- echo "Packing self-contained build for Windows x64..."
|
|
artifacts:
|
|
name: "Windows x64 (self-contained)"
|
|
paths:
|
|
- $ARTIFACT_DIR/$OUTPUT_FILE_PREFIX-sc.exe
|
|
expire_in: 1 week
|