Merge pull request 'test release' (#5) from main into release
Reviewed-on: #5
This commit was merged in pull request #5.
This commit is contained in:
@@ -6,56 +6,197 @@ on:
|
||||
pull_request:
|
||||
branches: [release]
|
||||
|
||||
env:
|
||||
GODOT_VERSION: 4.6.1
|
||||
EXPORT_NAME: Experements
|
||||
PROJECT_PATH: .
|
||||
BLENDER_VERSION: 5.0.0
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
preset: ["Windows Desktop", "Linux/X11", "macOS"]
|
||||
|
||||
export-windows:
|
||||
name: Windows Export
|
||||
runs-on: ubuntu-24.04 # Use 24.04 with godot 4
|
||||
container: barichello/godot-ci:4.6
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- name: Update and install dependencies
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get install -y curl gnupg
|
||||
apt-get install -y blender
|
||||
|
||||
- name: Extract version from CHANGELOG
|
||||
- name: Install Node.js
|
||||
run: |
|
||||
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
|
||||
apt-get install -y nodejs
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
lfs: true
|
||||
|
||||
- name: Setup
|
||||
shell: bash
|
||||
run: |
|
||||
set -Eeuo pipefail
|
||||
BLENDER_PATH="/usr/bin/blender"
|
||||
mkdir -pv ~/.config/godot
|
||||
mkdir -pv ~/.local/share/godot/export_templates/
|
||||
GODOT_CFG="$(find ~/.config/godot -name "editor_settings-*.tres" | head -n 1 || true)"
|
||||
|
||||
if [ -z "$GODOT_CFG" ]; then
|
||||
echo "# Missing Godot editor settings" > "$GODOT_CFG"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Set the Blender path
|
||||
if [ -n "${BLENDER_PATH:-}" ]; then
|
||||
if grep -q '^filesystem/import/blender/blender_path' "$GODOT_CFG"; then
|
||||
# Replace existing path
|
||||
sed -i "s|^filesystem/import/blender/blender_path = .*|filesystem/import/blender/blender_path = \"$BLENDER_PATH\"|" "$GODOT_CFG"
|
||||
else
|
||||
# Append new path
|
||||
echo "filesystem/import/blender/blender_path = \"$BLENDER_PATH\"" >> "$GODOT_CFG"
|
||||
fi
|
||||
fi
|
||||
echo "Blender path configured in $GODOT_CFG"
|
||||
|
||||
- name: Windows Build
|
||||
shell: bash
|
||||
run: |
|
||||
set -Eeuo pipefail
|
||||
mkdir -v -p build/windows
|
||||
EXPORT_DIR="$(readlink -f build)"
|
||||
cd $PROJECT_PATH
|
||||
godot --headless --export-release "Windows" "$EXPORT_DIR/windows/$EXPORT_NAME.exe"
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: windows
|
||||
path: build/windows
|
||||
|
||||
export-linux:
|
||||
name: Linux Export
|
||||
runs-on: ubuntu-24.04 # Use 24.04 with godot 4
|
||||
container: barichello/godot-ci:4.6
|
||||
steps:
|
||||
- name: Update and install dependencies
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get install -y curl gnupg
|
||||
|
||||
- name: Install Node.js
|
||||
run: |
|
||||
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
|
||||
apt-get install -y nodejs
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
lfs: true
|
||||
- name: Setup
|
||||
shell: bash
|
||||
run: |
|
||||
set -Eeuo pipefail
|
||||
BLENDER_PATH="/usr/bin/blender"
|
||||
mkdir -pv ~/.config/godot
|
||||
mkdir -pv ~/.local/share/godot/export_templates/
|
||||
GODOT_CFG="$(find ~/.config/godot -name "editor_settings-*.tres" | head -n 1 || true)"
|
||||
|
||||
if [ -z "$GODOT_CFG" ]; then
|
||||
echo "# Missing Godot editor settings" > "$GODOT_CFG"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Set the Blender path
|
||||
if [ -n "${BLENDER_PATH:-}" ]; then
|
||||
if grep -q '^filesystem/import/blender/blender_path' "$GODOT_CFG"; then
|
||||
# Replace existing path
|
||||
sed -i "s|^filesystem/import/blender/blender_path = .*|filesystem/import/blender/blender_path = \"$BLENDER_PATH\"|" "$GODOT_CFG"
|
||||
else
|
||||
# Append new path
|
||||
echo "filesystem/import/blender/blender_path = \"$BLENDER_PATH\"" >> "$GODOT_CFG"
|
||||
fi
|
||||
fi
|
||||
echo "Blender path configured in $GODOT_CFG"
|
||||
|
||||
- name: Linux Build
|
||||
shell: bash
|
||||
run: |
|
||||
set -Eeuo pipefail
|
||||
mkdir -v -p build/linux
|
||||
EXPORT_DIR="$(readlink -f build)"
|
||||
cd $PROJECT_PATH
|
||||
godot --headless --export-release "Linux/X11" "$EXPORT_DIR/linux/$EXPORT_NAME.x86_64"
|
||||
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: linux
|
||||
path: build/linux
|
||||
|
||||
create-release:
|
||||
name: Create Release
|
||||
runs-on: ubuntu-latest
|
||||
needs: [export-linux, export-windows]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download Windows Artifact
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: windows
|
||||
path: build/windows
|
||||
|
||||
- name: Download Linux Artifact
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: linux
|
||||
path: build/linux
|
||||
|
||||
- name: Extract version and body from CHANGELOG
|
||||
id: changelog
|
||||
uses: release-drafter/release-drafter@v5
|
||||
with:
|
||||
changelog-file: CHANGELOG.md
|
||||
template: |
|
||||
name: ${{ version }}
|
||||
body: |
|
||||
${{ description }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
# Extract the latest released version (skip Unreleased)
|
||||
LATEST=$(grep -E '^## \[[0-9]+\.[0-9]+\.[0-9]+\]' CHANGELOG.md | head -n1 | sed -E 's/^## \[([0-9]+\.[0-9]+\.[0-9]+)\].*/\1/')
|
||||
|
||||
# Create Release also creates an Tag
|
||||
# - name: Create git tag
|
||||
# uses: alazhar/gitea-action-autotag@v1
|
||||
# with:
|
||||
# tag: ${{ steps.changelog.outputs.version }}
|
||||
if [ -z "$LATEST" ]; then
|
||||
echo "No released version found in CHANGELOG.md"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Build
|
||||
id: build
|
||||
uses: mlm-games/godot-build-action@v1
|
||||
with:
|
||||
EXPORT_PRESET_NAME: ${{ matrix.preset }}
|
||||
echo "Released version found: $LATEST"
|
||||
echo "version=$LATEST" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Upload builds
|
||||
uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: godot-${{ matrix.preset }}-v${{ steps.changelog.outputs.version }}
|
||||
path: godot-${{ matrix.preset }}-v${{ steps.changelog.outputs.version }}.tar.gz
|
||||
# Extract the body: lines until the next ## header
|
||||
BODY=$(awk -v ver="$LATEST" '
|
||||
$0 ~ "^## \\[" ver "\\]" {found=1; next}
|
||||
found && $0 ~ "^## \\[" {exit}
|
||||
found {print}
|
||||
' CHANGELOG.md)
|
||||
|
||||
# Trim leading/trailing empty lines
|
||||
BODY=$(echo "$BODY" | sed '/^\s*$/d')
|
||||
|
||||
# Output body safely for GitHub Actions
|
||||
echo "body<<EOF" >> $GITHUB_OUTPUT
|
||||
echo "$BODY" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Zipping exports
|
||||
run: |
|
||||
zip -r windows-${{ steps.changelog.outputs.version }}.zip build/windows
|
||||
zip -r linux-${{ steps.changelog.outputs.version }}.zip build/linux
|
||||
|
||||
- name: Create Release
|
||||
uses: akkuman/gitea-release-action@v1
|
||||
with:
|
||||
server_url: ${{ SERVER_URL }}
|
||||
server_url: ${{ vars.SERVER_URL }}
|
||||
tag_name: ${{ steps.changelog.outputs.version }}
|
||||
name: "Release ${{ steps.changelog.outputs.version }}"
|
||||
body: ${{ steps.changelog.outputs.description }}
|
||||
name: "${{ steps.changelog.outputs.version }}"
|
||||
body: ${{ steps.changelog.outputs.body }}
|
||||
draft: false
|
||||
token: ${{ secrets.GITEA_TOKEN }}
|
||||
files: |
|
||||
godot-Windows Desktop-v${{ steps.changelog.outputs.version }}.tar.gz
|
||||
godot-Linux/X11-v${{ steps.changelog.outputs.version }}.tar.gz
|
||||
godot-macOS-v${{ steps.changelog.outputs.version }}.tar.gz
|
||||
draft: false
|
||||
windows-${{ steps.changelog.outputs.version }}.zip
|
||||
linux-${{ steps.changelog.outputs.version }}.zip
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
[preset.0]
|
||||
|
||||
name="Godot Experiments"
|
||||
name="Web"
|
||||
platform="Web"
|
||||
runnable=true
|
||||
advanced_options=false
|
||||
runnable=false
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="dist/Experements.html"
|
||||
exclude_filter="*.blend"
|
||||
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
|
||||
@@ -42,4 +46,123 @@ progressive_web_app/icon_180x180=""
|
||||
progressive_web_app/icon_512x512=""
|
||||
progressive_web_app/background_color=Color(0, 0, 0, 1)
|
||||
threads/emscripten_pool_size=8
|
||||
threads/godot_pool_size=4
|
||||
threads/godot_pool_size=4
|
||||
|
||||
[preset.1]
|
||||
|
||||
name="Linux/X11"
|
||||
platform="Linux"
|
||||
runnable=true
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter="*.blend"
|
||||
export_path="<null>"
|
||||
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}\""
|
||||
|
||||
[preset.2]
|
||||
|
||||
name="Windows"
|
||||
platform="Windows Desktop"
|
||||
runnable=true
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter="*.blend"
|
||||
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.2.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"
|
||||
codesign/enable=false
|
||||
codesign/timestamp=true
|
||||
codesign/timestamp_server_url=""
|
||||
codesign/digest_algorithm=1
|
||||
codesign/description=""
|
||||
codesign/custom_options=PackedStringArray()
|
||||
application/modify_resources=true
|
||||
application/icon=""
|
||||
application/console_wrapper_icon=""
|
||||
application/icon_interpolation=4
|
||||
application/file_version=""
|
||||
application/product_version=""
|
||||
application/company_name=""
|
||||
application/product_name=""
|
||||
application/file_description=""
|
||||
application/copyright=""
|
||||
application/trademarks=""
|
||||
application/export_angle=0
|
||||
application/export_d3d12=0
|
||||
application/d3d12_agility_sdk_multiarch=true
|
||||
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="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
|
||||
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
|
||||
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
|
||||
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
|
||||
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
|
||||
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
|
||||
Start-ScheduledTask -TaskName godot_remote_debug
|
||||
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
|
||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
|
||||
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}'"
|
||||
|
||||
@@ -24,6 +24,11 @@ config/icon="res://icon.svg"
|
||||
|
||||
BackToMain="*res://back_to_main.gd"
|
||||
|
||||
[filesystem]
|
||||
|
||||
import/blender/enabled.android=true
|
||||
import/blender/enabled.web=true
|
||||
|
||||
[input]
|
||||
|
||||
w={
|
||||
|
||||
Reference in New Issue
Block a user