Files
godot/.gitea/workflows/scripts/build-with-buildah.sh
Olof Pettersson 1375e0ceea
Some checks failed
Build Godot Engine / Build Windows ${{ matrix.name }} (godot-windows-debug, Debug Template, no, template_debug) (push) Failing after 22m43s
Build Godot Engine / Build Windows ${{ matrix.name }} (godot-windows-release, Release Template, yes, template_release) (push) Has been cancelled
Build Godot Engine / Build Windows ${{ matrix.name }} (godot-windows-editor, Editor, yes, editor) (push) Has been cancelled
Remove with correct driver
2025-12-02 14:20:05 +01:00

55 lines
1.9 KiB
Bash

#!/bin/sh
set -e # Exit on error
# --- 1. CONFIGURATION ---
# We read these from Environment Variables passed by the workflow
# This makes the script reusable for Windows, Linux, etc.
FULL_IMAGE_URL="$REGISTRY/$OWNER/$IMAGE_NAME:$IMAGE_TAG"
echo "------------------------------------------------"
echo "Task Runner: Starting Buildah Orchestration"
echo "Target: $PLATFORM / $TARGET"
echo "Image: $FULL_IMAGE_URL"
echo "------------------------------------------------"
# --- 2. LOGIN ---
echo "Logging into registry..."
# Note: We use --password-stdin for security so the secret isn't in process list
echo "$PASSWORD" | buildah login -u "$USERNAME" --password-stdin --tls-verify=false --storage-driver=vfs "$REGISTRY"
# --- 3. CREATE CONTAINER ---
echo "Pulling image and creating working container..."
# We capture the Container ID (CTR)
CTR=$(buildah from --tls-verify=false --storage-driver=vfs "$FULL_IMAGE_URL")
# --- 4. CONFIGURE CONTAINER ---
# FIX: buildah run doesn't have --working-dir.
# We use 'buildah config' to set it on the container instance instead.
buildah config --storage-driver=vfs --workingdir /src "$CTR"
# --- 5. EXECUTE BUILD ---
echo "Running SCons inside container..."
# Explaining the flags:
# -v "$PWD":/src -> Mounts the host workspace (your code) into the container at /src
# -w /src -> Sets working directory to /src
# --env ... -> Passes variables needed strictly for the build (optional)
# scons ... -> The actual compile command
buildah run \
--volume "$PWD":/src \
--storage-driver=vfs \
"$CTR" \
scons platform="$PLATFORM" \
target="$TARGET" \
d3d12=no \
arch=x86_64 \
precision=double \
production="$PRODUCTION" \
use_llvm=yes \
use_mingw=yes \
-j$(nproc)
# --- 6. CLEANUP ---
echo "Build successful. Removing container..."
buildah rm --storage-driver=vfs \ "$CTR"