20 Commits

Author SHA1 Message Date
a10f48cb29 Build from root directory
Some checks failed
Build Game / Export Game Client (push) Failing after 20s
2025-12-05 15:51:28 +01:00
f4ca2a8074 Reorganize folder structure 2025-12-05 15:50:48 +01:00
d0c1c72940 change package name
All checks were successful
Build Game / Export Game Client (push) Successful in 1m3s
2025-12-04 11:12:43 +01:00
2e9363f303 Publish nightly
All checks were successful
Build Game / Export Game Client (push) Successful in 1m6s
2025-12-04 11:10:31 +01:00
8423dfd969 Build linux
All checks were successful
Build Game / Export Game Client (push) Successful in 58s
2025-12-04 09:30:28 +01:00
90585cde4b Run linux build
Some checks failed
Build Game / Export Game Client (push) Failing after 32s
2025-12-04 09:27:46 +01:00
66d1de1411 Remove bad file ending
Some checks failed
Build Game / Export Game Client (push) Failing after 25s
2025-12-04 09:26:10 +01:00
918f2b4ef3 Fix export path
Some checks failed
Build Game / Export Game Client (push) Failing after 14s
2025-12-04 09:25:07 +01:00
8841bb7dd4 Remove hardcoded templates
Some checks failed
Build Game / Export Game Client (push) Failing after 23s
2025-12-04 09:21:50 +01:00
c280994225 Attempt with no presets
Some checks failed
Build Game / Export Game Client (push) Failing after 22s
2025-12-04 09:18:25 +01:00
3966b7dc69 Change version name
Some checks failed
Build Game / Export Game Client (push) Failing after 23s
2025-12-04 09:13:43 +01:00
9daef1ce4e Change folder before build
Some checks failed
Build Game / Export Game Client (push) Failing after 23s
2025-12-04 09:11:53 +01:00
1822b50399 Fix auth
Some checks failed
Build Game / Export Game Client (push) Failing after 19s
2025-12-04 09:07:28 +01:00
b7ce8338d9 Add wip branch to on
Some checks failed
Build Game / Export Game Client (push) Failing after 6s
2025-12-04 09:05:32 +01:00
1eb479fe30 On workflow dispatch 2025-12-04 09:03:38 +01:00
a57cc827f8 Attempt project build 2025-12-04 09:03:09 +01:00
1e5a30173a Reset to old script
Some checks failed
Release Game Client / export-windows (push) Failing after 23s
2025-12-03 16:34:22 +01:00
3acd210826 Simpler setup script
Some checks failed
Release Game Client / export-windows (push) Failing after 2m18s
2025-12-03 16:16:41 +01:00
23ace96817 remove container
Some checks failed
Release Game Client / export-windows (push) Failing after 49s
2025-12-03 16:11:39 +01:00
613ce79fcb Trigger on all push
Some checks failed
Release Game Client / export-windows (push) Failing after 10s
2025-12-03 16:01:46 +01:00
210 changed files with 148 additions and 51 deletions

View File

@ -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"

View File

@ -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}\""

View File

Before

Width:  |  Height:  |  Size: 994 B

After

Width:  |  Height:  |  Size: 994 B

View File

@ -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