From 15db4e92d2a3fb9723837570a4223919129bacb9 Mon Sep 17 00:00:00 2001 From: bionickatana Date: Mon, 22 Jun 2026 10:04:18 -0600 Subject: [PATCH] Godot auto build --- .gitea/workflows/build.yaml | 37 +++++++++++++++++++++++++++ export_presets.cfg | 50 +++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 .gitea/workflows/build.yaml create mode 100644 export_presets.cfg diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml new file mode 100644 index 0000000..b7a745a --- /dev/null +++ b/.gitea/workflows/build.yaml @@ -0,0 +1,37 @@ +name: Build Godot Project (Linux) +on: [push] + +jobs: + build-linux: + # Use a specific Godot engine image as the execution environment. + # Replace '4.3' with your exact Godot version (e.g., 4.2.2, 4.1.1, etc.) + runs-on: ubuntu-latest + container: + image: barichello/godot-ci:4.3 + + steps: + - name: Check out repository code + uses: actions/checkout@v4 + + - name: Setup Godot Export Templates + run: | + mkdir -v -p ~/.local/share/godot/export_templates/ + # Links the pre-downloaded engine templates inside the container to the local path Godot expects + ln -s /root/.local/share/godot/export_templates/* ~/.local/share/godot/export_templates/ + + - name: Prepare Build Directories + run: | + mkdir -v -p build/linux + + - name: Export Linux Binary + run: | + # --headless: Runs Godot without an interface + # --export-release: Triggers a release build + # "Linux" matches the EXACT name of your export preset in Godot + godot --headless --export-release "Linux" build/linux/godot_number_factory.x86_64 + + - name: Upload Linux Build Artifact + uses: actions/upload-artifact@v4 + with: + name: linux-build + path: build/linux/ diff --git a/export_presets.cfg b/export_presets.cfg new file mode 100644 index 0000000..98b5f27 --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,50 @@ +[runnable_presets] + +Android="Android" +Linux="Linux" + +[preset.0] + +name="Linux" +platform="Linux" +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.0.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}\""