Compare commits

..

4 Commits

Author SHA1 Message Date
1e568533ba New attempt
Some checks failed
Build Godot Engine / Build linuxbsd template_debug (push) Failing after 19s
Build Godot Engine / Build linuxbsd editor (push) Failing after 19s
Build Godot Engine / Build linuxbsd template_release (push) Failing after 18s
Build Godot Engine / Build windows template_debug (push) Failing after 22s
Build Godot Engine / Build windows editor (push) Failing after 22s
Build Godot Engine / Build windows template_release (push) Failing after 22s
Build Godot Engine / publish (push) Has been skipped
2025-12-22 19:27:44 +01:00
200cb5fbb1 Remove pipe filter
Some checks failed
Build Godot Engine / Build linuxbsd template_debug (push) Failing after 18s
Build Godot Engine / Build linuxbsd editor (push) Failing after 20s
Build Godot Engine / Build linuxbsd template_release (push) Failing after 18s
Build Godot Engine / Build windows template_debug (push) Failing after 23s
Build Godot Engine / Build windows editor (push) Failing after 24s
Build Godot Engine / Build windows template_release (push) Failing after 24s
Build Godot Engine / publish (push) Has been skipped
2025-12-22 19:26:05 +01:00
971b9cab41 Native git checkout
Some checks failed
Build Godot Engine / Build linuxbsd template_debug (push) Failing after 22s
Build Godot Engine / Build linuxbsd editor (push) Failing after 19s
Build Godot Engine / Build linuxbsd template_release (push) Failing after 19s
Build Godot Engine / Build windows template_debug (push) Failing after 22s
Build Godot Engine / Build windows editor (push) Failing after 21s
Build Godot Engine / Build windows template_release (push) Failing after 23s
Build Godot Engine / publish (push) Has been skipped
2025-12-22 19:23:55 +01:00
63660c3158 Attempt running on podman
Some checks failed
Build Godot Engine / Build linuxbsd template_debug (push) Failing after 48s
Build Godot Engine / Build linuxbsd editor (push) Failing after 19s
Build Godot Engine / Build linuxbsd template_release (push) Failing after 23s
Build Godot Engine / Build windows template_debug (push) Failing after 49s
Build Godot Engine / Build windows editor (push) Failing after 24s
Build Godot Engine / Build windows template_release (push) Failing after 30s
Build Godot Engine / publish (push) Has been skipped
2025-12-22 19:18:20 +01:00
2 changed files with 115 additions and 146 deletions

View File

@ -1,150 +1,146 @@
name: Build Godot Engine
on:
workflow_dispatch:
push:
branches: [ "customized-moa", "infra/exporter-image" ]
branches: [ "customized-moa" ]
create:
tags:
- 'v*'
jobs:
# =================================================================
# JOB 1: LINUX COMPILATION (Consolidated)
# =================================================================
compile-linux:
name: Compile Linux (All Targets)
# Target your specific powerful node here
runs-on: heavy-linux
# Run inside the Fedora Builder image we created with Kaniko
container:
image: registry.forge.northernlighthouseinteractive.com/northern-lighthouse/godot-builder-linux:8740f6e
credentials:
username: ${{ gitea.repository_owner }}
password: ${{ secrets.ORG_ACTIONS_TOKEN }}
# Optional: Mount a host volume for SCons cache to speed up repeat builds drastically
volumes:
- /mnt/scons_cache:/root/.scons_cache
steps:
- name: Checkout Source
uses: actions/checkout@v3
- name: Setup Cache
# If you mapped the volume above, configure SCons to use it
run: |
echo "Setting up SCons Cache..."
export SCONS_CACHE=/root/.scons_cache
export SCONS_CACHE_LIMIT=5000
- name: Compile Editor
run: |
echo "Compiling Linux Editor..."
scons platform=linux target=editor precision=double production=yes arch=x86_64 -j$(nproc)
- name: Compile Templates
run: |
echo "Compiling Linux Templates..."
scons platform=linux target=template_release precision=double production=yes arch=x86_64 -j$(nproc)
scons platform=linux target=template_debug precision=double production=yes arch=x86_64 -j$(nproc)
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: linux-build-artifacts
path: bin/godot.*
# =================================================================
# JOB 2: WINDOWS COMPILATION (Consolidated)
# =================================================================
compile-windows:
name: Compile Windows (All Targets)
# You can target a DIFFERENT node here to run in parallel!
# e.g., runs-on: verdantforest
# --- BUILD JOBS (Parallel Matrix) ---
build-engine:
name: Build ${{ matrix.platform }} ${{ matrix.target }}
runs-on: heavy-linux
# We use the SAME Linux builder because it has MinGW for cross-compilation
# 1. NEW: Define the container dynamically per matrix entry
container:
image: registry.forge.northernlighthouseinteractive.com/northern-lighthouse/godot-builder-windows:8740f6e
image: registry.forge.northernlighthouseinteractive.com/${{ gitea.repository_owner }}/godot-builder-${{ matrix.builder }}:latest
# Pull credentials (if your registry is private)
credentials:
username: ${{ gitea.repository_owner }}
password: ${{ secrets.ORG_ACTIONS_TOKEN }}
volumes:
- /mnt/scons_cache:/root/.scons_cache
# Set resource limits for the JOB container
options: --cpus 24 --memory 30g
strategy:
fail-fast: false
matrix:
include:
# Windows
- platform: windows
target: editor
production: yes
artifact_name: godot-windows-editor
builder: windows
extra_flags: "use_mingw=yes d3d12=no"
- platform: windows
target: template_debug
production: no
artifact_name: godot-windows-debug
builder: windows
extra_flags: "use_mingw=yes d3d12=no"
- platform: windows
target: template_release
production: yes
artifact_name: godot-windows-release
builder: windows
extra_flags: "use_mingw=yes d3d12=no"
# Linux
- platform: linuxbsd
target: editor
production: yes
artifact_name: godot-linux-editor
builder: linux
- platform: linuxbsd
target: template_debug
production: no
artifact_name: godot-linux-debug
builder: linux
- platform: linuxbsd
target: template_release
production: yes
artifact_name: godot-linux-release
builder: linux
steps:
- name: Checkout Source
uses: actions/checkout@v3
- name: Setup Cache
- name: Checkout Source (Native Git)
run: |
export SCONS_CACHE=/root/.scons_cache
export SCONS_CACHE_LIMIT=5000
echo "Initializing Git..."
git config --global --add safe.directory '*'
git init
# 1. Clean the Server URL using shell commands
# We strip both http:// and https:// to be safe
SERVER_DOMAIN=$(echo "${{ gitea.server_url }}" | sed 's|https://||' | sed 's|http://||')
# 2. Add Remote with Token Auth
# We use the $SERVER_DOMAIN variable we just created
git remote add origin "https://${{ gitea.actor }}:${{ secrets.ORG_ACTIONS_TOKEN }}@$SERVER_DOMAIN/${{ gitea.repository }}.git"
# 3. Fetch specific commit
echo "Fetching commit ${{ gitea.sha }}..."
git fetch --depth 1 origin ${{ gitea.sha }}
git checkout FETCH_HEAD
# 4. Handle Submodules
echo "Updating submodules..."
# Configure git to use credentials for submodules on the same domain
git config --global url."https://${{ gitea.actor }}:${{ secrets.ORG_ACTIONS_TOKEN }}@$SERVER_DOMAIN/".insteadOf "https://$SERVER_DOMAIN/"
git submodule update --init --recursive
- name: Compile Editor
# 2. UPDATED: No more 'buildah' script. Run SCons directly.
- name: Compile (${{ matrix.platform }})
run: |
echo "Compiling Windows Editor..."
# production=yes handles the optimization flags automatically
scons platform=windows target=editor precision=double production=yes arch=x86_64 use_mingw=yes use_llvm=yes d3d12=no -j$(nproc)
- name: Compile Templates
run: |
echo "Compiling Windows Templates..."
scons platform=windows target=template_release precision=double production=yes arch=x86_64 use_mingw=yes use_llvm=yes d3d12=no -j$(nproc)
scons platform=windows target=template_debug precision=double production=yes arch=x86_64 use_mingw=yes use_llvm=yes d3d12=no -j$(nproc)
echo "Starting Native Build..."
# Use the injected limit, fallback to nproc if missing
THREADS=${MAX_CORES:-$(nproc)}
echo "Building for ${{ matrix.platform }} (Target: ${{ matrix.target }}) with $THREADS threads."
# Base SCons command
# Note: We construct flags dynamically based on the matrix variables
scons platform=${{ matrix.platform }} \
target=${{ matrix.target }} \
arch=x86_64 \
precision=double \
production=${{ matrix.production }} \
${{ matrix.extra_flags }} \
-j$THREADS
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: windows-build-artifacts
name: ${{ matrix.artifact_name }}
path: bin/godot.*
# =================================================================
# JOB 3: PUBLISH
# =================================================================
# --- PUBLISH JOB ---
publish:
name: Publish Builds
needs: [compile-linux, compile-windows]
needs: build-engine
runs-on: ubuntu-latest
steps:
- name: Download Linux
- name: Checkout Source
uses: actions/checkout@v3
with:
submodules: recursive
- name: Download All Artifacts
uses: actions/download-artifact@v3
with:
name: linux-build-artifacts
path: .
path: dist
- name: Download Windows
uses: actions/download-artifact@v3
- name: Make script executable
run: chmod +x .gitea/workflows/scripts/publish.sh
- name: Package and Publish
uses: docker://alpine:latest
env:
API_URL: https://registry.forge.northernlighthouseinteractive.com/api/packages/${{ gitea.repository_owner }}/generic
TOKEN: ${{ secrets.ORG_ACTIONS_TOKEN }}
ACTOR: ${{ gitea.repository_owner }}
VERSION: ${{ gitea.sha }}-${{ gitea.run_number }}
with:
name: windows-build-artifacts
path: bin/godot.*
# - name: Package and Publish
# uses: docker://alpine:latest
# env:
# API_URL: https://registry.forge.northernlighthouseinteractive.com/api/packages/${{ gitea.repository_owner }}/generic
# TOKEN: ${{ secrets.ORG_ACTIONS_TOKEN }}
# ACTOR: ${{ gitea.repository_owner }}
# VERSION: ${{ gitea.sha }}-${{ gitea.run_number }}
# with:
# entrypoint: /bin/sh
# args: .gitea/workflows/scripts/publish.sh
# - name: Publish Artifacts
# env:
# API_URL: https://registry.forge.northernlighthouseinteractive.com/api/packages/${{ gitea.repository_owner }}/generic
# TOKEN: ${{ secrets.ORG_ACTIONS_TOKEN }}
# ACTOR: ${{ gitea.repository_owner }}
# VERSION: ${{ gitea.sha }}-${{ gitea.run_number }}
# run: |
# echo "Publishing artifacts..."
# apk add curl zip
# curl --fail --user "${{ACTOR}}:${{TOKEN}}" \
# --upload-file "godot-editor-windows.zip" \
# "${{API_URL}}/godot-editor-windows/${{VERSION}}/godot-editor-windows.zip"
# ... Your existing publish script logic here ...
entrypoint: /bin/sh
args: .gitea/workflows/scripts/publish.sh

View File

@ -1,27 +0,0 @@
# Dockerfile
FROM ubuntu:24.04
# Prevent interactive prompts during build
ENV DEBIAN_FRONTEND=noninteractive
# 1. Install Node.js (Required for Gitea/GitHub Actions)
# 2. Install Godot Runtime Dependencies (Required for export)
# 3. Install Git/Curl (Useful utilities)
RUN apt-get update && apt-get install -y \
nodejs \
npm \
git \
curl \
libfontconfig1 \
libx11-6 \
libxcursor1 \
libxext6 \
libxfixes3 \
libxi6 \
libxinerama1 \
libxrandr2 \
libxrender1 \
libgl1 \
ca-certificates \
unzip \
&& rm -rf /var/lib/apt/lists/*