Compare commits
20 Commits
main
...
a10f48cb29
| Author | SHA1 | Date | |
|---|---|---|---|
| a10f48cb29 | |||
| f4ca2a8074 | |||
| d0c1c72940 | |||
| 2e9363f303 | |||
| 8423dfd969 | |||
| 90585cde4b | |||
| 66d1de1411 | |||
| 918f2b4ef3 | |||
| 8841bb7dd4 | |||
| c280994225 | |||
| 3966b7dc69 | |||
| 9daef1ce4e | |||
| 1822b50399 | |||
| b7ce8338d9 | |||
| 1eb479fe30 | |||
| a57cc827f8 | |||
| 1e5a30173a | |||
| 3acd210826 | |||
| 23ace96817 | |||
| 613ce79fcb |
@ -1,67 +1,109 @@
|
||||
name: Release Game Client
|
||||
name: Build Game
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- '.gitea/workflows/build-game.yaml'
|
||||
- '.gitea/**/*.sh'
|
||||
tags:
|
||||
- 'v*'
|
||||
branches:
|
||||
- main
|
||||
- infra/export-chain
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
export-windows:
|
||||
export-game:
|
||||
name: Export Game Client
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ubuntu:22.04
|
||||
steps:
|
||||
- name: Checkout Game
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Install Dependencies
|
||||
run: apt-get update && apt-get install -y unzip wget zip
|
||||
|
||||
- name: Download Engine Templates
|
||||
- name: Prepare Build Environment
|
||||
env:
|
||||
# The specific engine version this game needs
|
||||
ENGINE_HASH: "a90daf08c2bb52d6cb4ba67bb5cbe09d79b2c4eb"
|
||||
# This string MUST match what your custom engine reports as its version
|
||||
# Example: "4.3.stable" or "4.3.stable.mygame"
|
||||
GODOT_VERSION_STRING: "4.6"
|
||||
# 1. CONFIGURATION
|
||||
# The Git SHA of the Engine Build you want to use
|
||||
ENGINE_HASH: "e40804a4aec8fad5d3215766045ff7ba21e59ac9"
|
||||
|
||||
# The internal version string Godot expects for templates
|
||||
# CRITICAL: Run your custom editor, check "Help -> About" to find this exact string.
|
||||
# It is usually "4.3.stable.custom_build" unless you changed version.py
|
||||
GODOT_VERSION: "4.6.dev.double"
|
||||
|
||||
# Registry details
|
||||
REGISTRY_URL: https://gitea.212.63.210.91.nip.io/api/packages/seedlingattempt/generic
|
||||
TOKEN: ${{ secrets.USER_PACKAGE_PASSWORD }}
|
||||
run: |
|
||||
echo "Downloading templates..."
|
||||
wget "https://gitea.212.63.210.91.nip.io/api/packages/seedlingattempt/generic/godot-templates/${ENGINE_HASH}/windows_templates.tpz"
|
||||
echo "--- 1. FETCHING TOOLS ---"
|
||||
|
||||
echo "Installing templates..."
|
||||
# Godot looks for templates in ~/.local/share/godot/export_templates/{VERSION}/
|
||||
TEMPLATE_PATH="$HOME/.local/share/godot/export_templates/${GODOT_VERSION_STRING}"
|
||||
mkdir -p "$TEMPLATE_PATH"
|
||||
# Download Linux Editor (The Builder)
|
||||
echo "Downloading Editor..."
|
||||
wget "$REGISTRY_URL/godot-editor-linux/$ENGINE_HASH/godot-editor-linux.zip"
|
||||
|
||||
# Unzip our TPZ directly into that folder
|
||||
unzip windows_templates.tpz -d "$TEMPLATE_PATH"
|
||||
|
||||
# Rename them to standard names if they aren't already
|
||||
# (Your publish script already renamed them to windows_release_x86_64.exe, so this is fine!)
|
||||
# Download Templates (The Payload)
|
||||
echo "Downloading Templates..."
|
||||
wget "$REGISTRY_URL/godot-templates/$ENGINE_HASH/templates.tpz"
|
||||
|
||||
- name: Download Headless Editor (For Exporting)
|
||||
env:
|
||||
ENGINE_HASH: "a90daf08c2bb52d6cb4ba67bb5cbe09d79b2c4eb"
|
||||
run: |
|
||||
wget "https://gitea.212.63.210.91.nip.io/api/packages/seedlingattempt/generic/godot-editor-windows/${ENGINE_HASH}/godot-editor-windows.zip"
|
||||
unzip godot-editor-windows.zip
|
||||
chmod +x godot.windows.editor*.exe
|
||||
# Create a simple alias
|
||||
mv godot.windows.editor*.exe godot_headless
|
||||
echo "--- 2. INSTALLING ---"
|
||||
|
||||
# Unzip Editor
|
||||
unzip -o godot-editor-linux.zip
|
||||
# Find the binary (it has no extension)
|
||||
EDITOR_BIN=$(find . -maxdepth 1 -type f -name "godot.linuxbsd.editor*" | head -n 1)
|
||||
chmod +x "$EDITOR_BIN"
|
||||
mv "$EDITOR_BIN" ./godot_headless
|
||||
echo "Editor ready: ./godot_headless"
|
||||
|
||||
- name: Export Game
|
||||
# Install Templates
|
||||
# Godot looks in ~/.local/share/godot/export_templates/{VERSION}/
|
||||
TEMPLATE_DIR="$HOME/.local/share/godot/export_templates/$GODOT_VERSION"
|
||||
mkdir -p "$TEMPLATE_DIR"
|
||||
|
||||
echo "Extracting templates to $TEMPLATE_DIR..."
|
||||
unzip -o templates.tpz -d "$TEMPLATE_DIR"
|
||||
|
||||
# Verify files are where Godot expects them
|
||||
ls -l "$TEMPLATE_DIR"
|
||||
|
||||
- name: Export Windows Client
|
||||
run: |
|
||||
mkdir -p build/windows
|
||||
|
||||
echo "Exporting..."
|
||||
cd src
|
||||
# The preset name "Windows Desktop" must match your export_presets.cfg
|
||||
./godot_headless --headless --export-release "Windows Desktop" ../build/windows/game.exe
|
||||
|
||||
- name: Upload Game Artifact
|
||||
# "Windows Desktop" must match the name in your export_presets.cfg
|
||||
../godot_headless --headless --export-release "Windows Desktop" ../build/windows/game.exe
|
||||
|
||||
- name: Export Linux Client
|
||||
run: |
|
||||
mkdir -p build/linux
|
||||
|
||||
# "Linux" must match the name in your export_presets.cfg
|
||||
../godot_headless --headless --export-release "Linux" ../build/linux/game.x86_64
|
||||
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: windows-client
|
||||
path: build/windows
|
||||
name: game-clients
|
||||
path: build/
|
||||
|
||||
- name: Publish Nightly Build
|
||||
env:
|
||||
# Config
|
||||
PACKAGE_NAME: moa-windows-nightly
|
||||
# We overwrite the 'nightly' version every time so the URL stays the same
|
||||
VERSION: nightly
|
||||
ZIP_NAME: moa-windows-nightly.zip
|
||||
|
||||
# Auth
|
||||
API_URL: https://gitea.212.63.210.91.nip.io/api/packages/${{ gitea.repository_owner }}/generic
|
||||
TOKEN: ${{ secrets.USER_PACKAGE_PASSWORD }}
|
||||
run: |
|
||||
echo "Packaging Game..."
|
||||
cd build/windows
|
||||
|
||||
# Zip everything (Executable + PCK + potential .dlls)
|
||||
zip -r ../../$ZIP_NAME .
|
||||
cd ../..
|
||||
|
||||
echo "Uploading Nightly..."
|
||||
# PUT request replaces the file if it exists
|
||||
curl --fail --user "${{ gitea.actor }}:$TOKEN" \
|
||||
--upload-file "$ZIP_NAME" \
|
||||
"$API_URL/$PACKAGE_NAME/$VERSION/$ZIP_NAME"
|
||||
|
||||
echo "✅ Nightly Build Available at:"
|
||||
echo "$API_URL/$PACKAGE_NAME/$VERSION/$ZIP_NAME"
|
||||
@ -3,14 +3,18 @@
|
||||
name="Windows Desktop"
|
||||
platform="Windows Desktop"
|
||||
runnable=true
|
||||
advanced_options=true
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="../export/moa.exe"
|
||||
export_path=""
|
||||
patches=PackedStringArray()
|
||||
patch_delta_encoding=false
|
||||
patch_delta_compression_level_zstd=19
|
||||
patch_delta_min_reduction=0.1
|
||||
patch_delta_include_filters="*"
|
||||
patch_delta_exclude_filters=""
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
seed=0
|
||||
@ -23,7 +27,7 @@ script_export_mode=2
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
debug/export_console_wrapper=1
|
||||
binary_format/embed_pck=true
|
||||
binary_format/embed_pck=false
|
||||
texture_format/s3tc_bptc=true
|
||||
texture_format/etc2_astc=false
|
||||
shader_baker/enabled=false
|
||||
@ -65,3 +69,50 @@ Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorActi
|
||||
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
|
||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
|
||||
Remove-Item -Recurse -Force '{temp_dir}'"
|
||||
|
||||
[preset.1]
|
||||
|
||||
name="Linux"
|
||||
platform="Linux"
|
||||
runnable=true
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path=""
|
||||
patches=PackedStringArray()
|
||||
patch_delta_encoding=false
|
||||
patch_delta_compression_level_zstd=19
|
||||
patch_delta_min_reduction=0.1
|
||||
patch_delta_include_filters="*"
|
||||
patch_delta_exclude_filters=""
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
seed=0
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=2
|
||||
|
||||
[preset.1.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
debug/export_console_wrapper=1
|
||||
binary_format/embed_pck=false
|
||||
texture_format/s3tc_bptc=true
|
||||
texture_format/etc2_astc=false
|
||||
shader_baker/enabled=false
|
||||
binary_format/architecture="x86_64"
|
||||
ssh_remote_deploy/enabled=false
|
||||
ssh_remote_deploy/host="user@host_ip"
|
||||
ssh_remote_deploy/port="22"
|
||||
ssh_remote_deploy/extra_args_ssh=""
|
||||
ssh_remote_deploy/extra_args_scp=""
|
||||
ssh_remote_deploy/run_script="#!/usr/bin/env bash
|
||||
export DISPLAY=:0
|
||||
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
|
||||
\"{temp_dir}/{exe_name}\" {cmd_args}"
|
||||
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
|
||||
pkill -x -f \"{temp_dir}/{exe_name} {cmd_args}\"
|
||||
rm -rf \"{temp_dir}\""
|
||||
|
Before Width: | Height: | Size: 994 B After Width: | Height: | Size: 994 B |
@ -8,12 +8,16 @@
|
||||
|
||||
config_version=5
|
||||
|
||||
[animation]
|
||||
|
||||
compatibility/default_parent_skeleton_in_mesh_instance_3d=true
|
||||
|
||||
[application]
|
||||
|
||||
config/name="Millimeters of Aluminum"
|
||||
config/version="0.1"
|
||||
run/main_scene="uid://dogqi2c58qdc0"
|
||||
config/features=PackedStringArray("4.5", "Double Precision", "Forward Plus")
|
||||
config/features=PackedStringArray("4.6", "Double Precision", "Forward Plus")
|
||||
config/icon="res://icon.svg"
|
||||
|
||||
[autoload]
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user