Add Windows installer (NSIS) and Linux AppImage packaging; embed PCK in all exports
- export_presets: embed_pck=true for Linux/Windows/macOS -> single self-contained binaries (all game data in one file); build_releases.sh cleans stale .pck - App icon: assets/textures/icon.png (1024) + multi-size icon.ico generated by tools/generate_textures.py; copied into packaging/windows and packaging/linux - packaging/windows/step-line.nsi: NSIS installer (shortcuts, uninstaller, registry Add/Remove Programs) output step-line-setup-<ver>.exe - packaging/linux: step-line.desktop, AppRun, step-line.appdata.xml, build_appimage.sh (appimagetool, APPIMAGE_EXTRACT_AND_RUN) -> step-line-<ver>-x86_64.AppImage - CI build job now packages NSIS installer + AppImage alongside binaries; publish glob already uploads them - Local end-to-end verification: embedded exports rebuilt, AppImage built and run headless (0 script errors); suite 57/57 - README Downloads table lists installer/AppImage/portable rows; RELEASING documents packaging; TODO/DONE synced
This commit is contained in:
1 parent
07d79ac115
commit
ba76c0febf
17 files changed
+261
-10
No files matched your search
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
# AppImage entry point: launch the bundled game binary.
|
||||
SELF="$(readlink -f "$0")"
|
||||
HERE="$(dirname "$SELF")"
|
||||
exec "${HERE}/usr/bin/step-line" "$@"
|
||||
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
# Build a self-contained Step Line AppImage (all game data included).
|
||||
#
|
||||
# Prereqs: exported Linux binary in build/ (embed_pck=true), curl.
|
||||
# Usage: bash packaging/linux/build_appimage.sh [version]
|
||||
# Output: build/step-line-<version>-x86_64.AppImage
|
||||
set -euo pipefail
|
||||
|
||||
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
ROOT="$(cd "$HERE/../.." && pwd)"
|
||||
VERSION="${1:-$(sed -n 's/.*config\/version="\([^"]*\)".*/\1/p' "$ROOT/project.godot")}"
|
||||
SRC_BIN="$ROOT/build/step-line-linux-${VERSION}.x86_64"
|
||||
|
||||
if [[ ! -f "$SRC_BIN" ]]; then
|
||||
echo "error: missing $SRC_BIN — run ./tools/build_releases.sh first" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
WORK="$(mktemp -d)"
|
||||
trap 'rm -rf "$WORK"' EXIT
|
||||
APPDIR="$WORK/StepLine.AppDir"
|
||||
mkdir -p "$APPDIR/usr/bin"
|
||||
cp "$SRC_BIN" "$APPDIR/usr/bin/step-line"
|
||||
# The export embeds the PCK (embed_pck=true), so no extra data files are needed.
|
||||
|
||||
cp "$HERE/step-line.desktop" "$APPDIR/step-line.desktop"
|
||||
cp "$HERE/AppRun" "$APPDIR/AppRun"
|
||||
chmod +x "$APPDIR/AppRun"
|
||||
cp "$HERE/step-line.png" "$APPDIR/step-line.png"
|
||||
mkdir -p "$APPDIR/usr/share/metainfo"
|
||||
cp "$HERE/step-line.appdata.xml" "$APPDIR/usr/share/metainfo/step-line.appdata.xml"
|
||||
|
||||
TOOL="${APPIMAGE_TOOL:-/tmp/appimagetool-x86_64.AppImage}"
|
||||
if [[ ! -f "$TOOL" ]]; then
|
||||
echo "==> Downloading appimagetool"
|
||||
curl -sL -o "$TOOL" \
|
||||
https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage
|
||||
chmod +x "$TOOL"
|
||||
fi
|
||||
|
||||
OUT="$ROOT/build/step-line-${VERSION}-x86_64.AppImage"
|
||||
echo "==> Building AppImage -> $OUT"
|
||||
# Extract-and-run avoids a FUSE dependency on the build host.
|
||||
APPIMAGE_EXTRACT_AND_RUN=1 "$TOOL" "$APPDIR" "$OUT"
|
||||
echo "AppImage ready: $(ls -la "$OUT" | awk '{print $5}') bytes"
|
||||
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<component type="desktop-application">
|
||||
<id>net.step-line.StepLine</id>
|
||||
<name>Step Line</name>
|
||||
<summary>Workplace security simulation on Hollywood Boulevard</summary>
|
||||
<description>
|
||||
<p>
|
||||
Step Line is a workplace security simulation about observation, communication,
|
||||
access verification, and proportionate escalation. Guard the steps and entrance
|
||||
of venues around Hollywood Boulevard: direct tourists, verify wristbands and IDs,
|
||||
screen guests, and escalate only when you have to.
|
||||
</p>
|
||||
</description>
|
||||
<launchable type="desktop-id">step-line.desktop</launchable>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>MIT</project_license>
|
||||
<content_rating type="oars-1.1" />
|
||||
<releases>
|
||||
<release version="0.2.0" date="2026-10-31"/>
|
||||
</releases>
|
||||
</component>
|
||||
@@ -0,0 +1,9 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Step Line
|
||||
Comment=Workplace security simulation on Hollywood Boulevard
|
||||
Exec=step-line
|
||||
Icon=step-line
|
||||
Terminal=false
|
||||
Categories=Game;Simulation;
|
||||
Keywords=security;simulation;hollywood;
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 51 KiB |
@@ -0,0 +1,70 @@
|
||||
; Step Line Windows installer (NSIS 3).
|
||||
; Build from the repo root with the exported self-contained exe:
|
||||
; makensis /DVERSION=0.2.0 /DARTIFACT=build/step-line-windows-0.2.0.exe \
|
||||
; /DICON=packaging/windows/step-line.ico packaging/windows/step-line.nsi
|
||||
; Outputs: build/step-line-setup-<VERSION>.exe
|
||||
|
||||
!ifndef VERSION
|
||||
!define VERSION "0.0.0"
|
||||
!endif
|
||||
!ifndef ARTIFACT
|
||||
!error "ARTIFACT define required (path to exported windows exe)"
|
||||
!endif
|
||||
!ifndef ICON
|
||||
!define ICON "packaging\windows\step-line.ico"
|
||||
!endif
|
||||
|
||||
; The installed executable always uses this clean name.
|
||||
!define INSTALLED_EXE "Step Line.exe"
|
||||
!define COMPANY "Step Line Project"
|
||||
!define UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\Step Line"
|
||||
|
||||
Unicode true
|
||||
ManifestDPIAware true
|
||||
Icon "${ICON}"
|
||||
UninstallIcon "${ICON}"
|
||||
|
||||
Name "Step Line ${VERSION}"
|
||||
OutFile "build\step-line-setup-${VERSION}.exe"
|
||||
InstallDir "$PROGRAMFILES64\Step Line"
|
||||
RequestExecutionLevel admin
|
||||
|
||||
Page directory
|
||||
Page instfiles
|
||||
UninstPage uninstConfirm
|
||||
UninstPage instfiles
|
||||
|
||||
Section "Install"
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
; The self-contained executable contains ALL game data (embedded PCK).
|
||||
File "/oname=${INSTALLED_EXE}" "${ARTIFACT}"
|
||||
|
||||
WriteUninstaller "$INSTDIR\uninstall.exe"
|
||||
|
||||
; Shortcuts
|
||||
CreateDirectory "$SMPROGRAMS\Step Line"
|
||||
CreateShortCut "$SMPROGRAMS\Step Line\Step Line.lnk" "$INSTDIR\${INSTALLED_EXE}"
|
||||
CreateShortCut "$SMPROGRAMS\Step Line\Uninstall.lnk" "$INSTDIR\uninstall.exe"
|
||||
CreateShortCut "$DESKTOP\Step Line.lnk" "$INSTDIR\${INSTALLED_EXE}"
|
||||
|
||||
; Registry (Add/Remove Programs)
|
||||
WriteRegStr HKLM "${UNINST_KEY}" "DisplayName" "Step Line"
|
||||
WriteRegStr HKLM "${UNINST_KEY}" "DisplayVersion" "${VERSION}"
|
||||
WriteRegStr HKLM "${UNINST_KEY}" "Publisher" "${COMPANY}"
|
||||
WriteRegStr HKLM "${UNINST_KEY}" "DisplayIcon" "$INSTDIR\${INSTALLED_EXE}"
|
||||
WriteRegStr HKLM "${UNINST_KEY}" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
||||
WriteRegDWORD HKLM "${UNINST_KEY}" "NoModify" 1
|
||||
WriteRegDWORD HKLM "${UNINST_KEY}" "NoRepair" 1
|
||||
SectionEnd
|
||||
|
||||
Section "Uninstall"
|
||||
Delete "$INSTDIR\${INSTALLED_EXE}"
|
||||
Delete "$INSTDIR\uninstall.exe"
|
||||
RMDir "$INSTDIR"
|
||||
Delete "$SMPROGRAMS\Step Line\Step Line.lnk"
|
||||
Delete "$SMPROGRAMS\Step Line\Uninstall.lnk"
|
||||
RMDir "$SMPROGRAMS\Step Line"
|
||||
Delete "$DESKTOP\Step Line.lnk"
|
||||
DeleteRegKey HKLM "${UNINST_KEY}"
|
||||
SectionEnd
|
||||
Reference in new issue
Block a user