Compare commits

...

15 Commits

Author SHA1 Message Date
03e1f55bb2 Merge branch 'infra/exporter-image' into customized-moa
All checks were successful
Build Godot Engine / Compile Linux (All Targets) (push) Successful in 16m31s
Build Godot Engine / Compile Windows (All Targets) (push) Successful in 20m21s
Build Godot Engine / Publish Builds (push) Successful in 16s
2026-01-20 10:43:10 +01:00
2edba73674 Fix bin selector for linux upload
All checks were successful
Build Godot Engine / Compile Windows (All Targets) (push) Successful in 22m48s
Build Godot Engine / Compile Linux (All Targets) (push) Successful in 19m3s
Build Godot Engine / Publish Builds (push) Successful in 38s
2026-01-01 13:48:05 +01:00
6dd4226698 Only upload the actual bins
Some checks failed
Build Godot Engine / Compile Linux (All Targets) (push) Failing after 35m2s
Build Godot Engine / Compile Windows (All Targets) (push) Successful in 21m18s
Build Godot Engine / Publish Builds (push) Has been skipped
2025-12-31 20:06:24 +01:00
c0a85cd70b Attempt building from cache
Some checks failed
Build Godot Engine / Compile Windows (All Targets) (push) Has been cancelled
Build Godot Engine / Compile Linux (All Targets) (push) Has been cancelled
Build Godot Engine / Publish Builds (push) Has been cancelled
2025-12-31 19:39:47 +01:00
ed2b28d7b1 Remove llvm from linux build
Some checks failed
Build Godot Engine / Compile Linux (All Targets) (push) Failing after 18m49s
Build Godot Engine / Compile Windows (All Targets) (push) Failing after 1m22s
Build Godot Engine / publish (push) Has been skipped
2025-12-31 19:11:46 +01:00
b92507e2cd Force new image pull
Some checks failed
Build Godot Engine / Compile Linux (All Targets) (push) Failing after 1m11s
Build Godot Engine / Compile Windows (All Targets) (push) Failing after 1m9s
Build Godot Engine / publish (push) Has been skipped
2025-12-31 19:07:58 +01:00
5fcb49df2a Remove image push and trigger new build workflow
Some checks failed
Build Godot Engine / Compile Linux (All Targets) (push) Failing after 29s
Build Godot Engine / Compile Windows (All Targets) (push) Failing after 1m48s
Build Godot Engine / publish (push) Has been skipped
2025-12-31 19:06:05 +01:00
69bc09b362 Try running new build
Some checks failed
Publish Export Image / push_to_registry (push) Failing after 1m11s
2025-12-31 19:03:48 +01:00
d180c7bcbd Build on pushes to infra branch
Some checks failed
Publish Export Image / push_to_registry (push) Failing after 56s
2025-12-31 12:21:58 +01:00
a79cab1d7b Build using podman 2025-12-31 12:20:41 +01:00
912224d35e Trigger on this infra branch 2025-12-30 16:49:40 +01:00
63ab6e3f58 Run on workstation
Some checks failed
Build Godot Engine / Build linuxbsd editor (push) Has been cancelled
Build Godot Engine / Build linuxbsd template_debug (push) Has been cancelled
Build Godot Engine / Build linuxbsd template_release (push) Has been cancelled
Build Godot Engine / Build windows template_debug (push) Has been cancelled
Build Godot Engine / Build windows editor (push) Has been cancelled
Build Godot Engine / Build windows template_release (push) Has been cancelled
Build Godot Engine / publish (push) Has been cancelled
2025-12-30 16:41:49 +01:00
f75b2e00df add workflow dispatch
Some checks failed
Build Godot Engine / Build windows template_debug (push) Has been cancelled
Build Godot Engine / Build windows editor (push) Has been cancelled
Build Godot Engine / Build windows template_release (push) Has been cancelled
Build Godot Engine / publish (push) Has been cancelled
Build Godot Engine / Build linuxbsd editor (push) Has been cancelled
Build Godot Engine / Build linuxbsd template_release (push) Has been cancelled
Build Godot Engine / Build linuxbsd template_debug (push) Has been cancelled
2025-12-30 16:41:03 +01:00
d6febaaa11 Add main branch
Some checks failed
Build Godot Engine / Build linuxbsd editor (push) Has been cancelled
Build Godot Engine / Build linuxbsd template_release (push) Has been cancelled
Build Godot Engine / Build windows template_debug (push) Has been cancelled
Build Godot Engine / Build windows editor (push) Has been cancelled
Build Godot Engine / Build windows template_release (push) Has been cancelled
Build Godot Engine / publish (push) Has been cancelled
Build Godot Engine / Build linuxbsd template_debug (push) Has been cancelled
2025-12-30 16:37:44 +01:00
e3e3ae0955 Add exporter image registry
Some checks failed
Build Godot Engine / Build linuxbsd editor (push) Has been cancelled
Build Godot Engine / Build linuxbsd template_release (push) Has been cancelled
Build Godot Engine / Build windows template_debug (push) Has been cancelled
Build Godot Engine / Build windows editor (push) Has been cancelled
Build Godot Engine / Build windows template_release (push) Has been cancelled
Build Godot Engine / publish (push) Has been cancelled
Build Godot Engine / Build linuxbsd template_debug (push) Has started running
2025-12-30 16:36:36 +01:00
2 changed files with 148 additions and 88 deletions

View File

@ -1,117 +1,150 @@
name: Build Godot Engine
on:
workflow_dispatch:
push:
branches: [ "customized-moa" ]
branches: [ "customized-moa", "infra/exporter-image" ]
create:
tags:
- 'v*'
jobs:
# --- BUILD JOBS (Parallel Matrix) ---
build-engine:
name: Build ${{ matrix.platform }} ${{ matrix.target }}
runs-on: heavy-linux
strategy:
fail-fast: false
matrix:
include:
# Windows (Double Precision)
- platform: windows
target: editor
production: yes
artifact_name: godot-windows-editor
builder: windows
- platform: windows
target: template_debug
production: no
artifact_name: godot-windows-debug
builder: windows
- platform: windows
target: template_release
production: yes
artifact_name: godot-windows-release
builder: windows
# Linux (Double Precision)
- 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
# =================================================================
# 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
with:
submodules: recursive
- name: Make scripts executable
run: chmod +x .gitea/workflows/scripts/*.sh
- 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 (${{ matrix.platform }})
uses: docker://quay.io/buildah/stable
env:
# Registry Config
USERNAME: ${{ gitea.repository_owner }}
PASSWORD: ${{ secrets.ORG_ACTIONS_TOKEN }}
REGISTRY: registry.forge.northernlighthouseinteractive.com
OWNER: ${{ gitea.repository_owner }}
# Which builder image to use? (windows or linux)
BUILDER_TYPE: ${{ matrix.builder }}
IMAGE_TAG: latest
- name: Compile Editor
run: |
echo "Compiling Linux Editor..."
scons platform=linux target=editor precision=double production=yes arch=x86_64 -j$(nproc)
# SCons Arguments
PLATFORM: ${{ matrix.platform }}
TARGET: ${{ matrix.target }}
PRODUCTION: ${{ matrix.production }}
with:
entrypoint: /bin/sh
args: .gitea/workflows/scripts/build-with-buildah.sh
- 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: ${{ matrix.artifact_name }}
# Uploads executables (Windows) and binaries (Linux has no extension)
name: linux-build-artifacts
path: bin/godot.*
# --- PUBLISH JOB (Runs after all builds finish) ---
publish:
needs: build-engine
runs-on: ubuntu-latest
# =================================================================
# 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
runs-on: heavy-linux
# We use the SAME Linux builder because it has MinGW for cross-compilation
container:
image: registry.forge.northernlighthouseinteractive.com/northern-lighthouse/godot-builder-windows:8740f6e
credentials:
username: ${{ gitea.repository_owner }}
password: ${{ secrets.ORG_ACTIONS_TOKEN }}
volumes:
- /mnt/scons_cache:/root/.scons_cache
steps:
- name: Checkout Source
uses: actions/checkout@v3
with:
submodules: recursive
- name: Download All Artifacts
- name: Setup Cache
run: |
export SCONS_CACHE=/root/.scons_cache
export SCONS_CACHE_LIMIT=5000
- name: Compile Editor
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)
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: windows-build-artifacts
path: bin/godot.*
# =================================================================
# JOB 3: PUBLISH
# =================================================================
publish:
name: Publish Builds
needs: [compile-linux, compile-windows]
runs-on: ubuntu-latest
steps:
- name: Download Linux
uses: actions/download-artifact@v3
with:
path: dist
name: linux-build-artifacts
path: .
- 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 }}
- name: Download Windows
uses: actions/download-artifact@v3
with:
entrypoint: /bin/sh
args: .gitea/workflows/scripts/publish.sh
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 ...

27
Dockerfile Normal file
View File

@ -0,0 +1,27 @@
# 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/*