Merge branch 'main' of https://git.valmo.dev/projectbraf/braf
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 2m33s

This commit is contained in:
2026-07-29 21:49:08 -03:00
2 changed files with 48 additions and 30 deletions
+38 -19
View File
@@ -7,8 +7,8 @@ on:
env:
STEAM_APP_ID: "107410"
HOST_REPO: /home/valmo/braf
HOST_CACHE: /home/valmo/braf-ci-cache/dev-workshop
HOST_REPO: /data/valmo/braf
HOST_CACHE: /data/valmo/braf-ci-cache/dev-workshop
BRAF_CI_STAGE_DIR: dist/dev/@braf_dev
jobs:
@@ -29,9 +29,9 @@ jobs:
run: |
set -euo pipefail
mkdir -p "$HOST_CACHE"
docker run --rm -i \
--user root \
-e BRAF_CI_STAGE_DIR \
-e GIT_BEFORE \
-e GIT_SHA \
@@ -46,7 +46,7 @@ jobs:
-v "$HOST_REPO:/repo" \
-v "$HOST_CACHE:/cache" \
-v /var/run/docker.sock:/var/run/docker.sock \
docker.gitea.com/runner-images:ubuntu-latest \
valmo/braf-mikero:3.23.8.60 \
bash -s <<'BRAF_CI'
set -euo pipefail
@@ -65,22 +65,25 @@ jobs:
}
install_mikero() {
if [[ ! -x /cache/mikero-tools/bin/makepbo ]]; then
rm -rf /tmp/mikero-tools-action /cache/mikero-tools
mkdir -p /tmp/mikero-tools-action /cache/mikero-tools
curl -fsSL \
https://github.com/arma-actions/mikero-tools/archive/refs/heads/master.tar.gz \
-o /tmp/mikero-tools-action.tar.gz
tar -zxf /tmp/mikero-tools-action.tar.gz \
--strip-components=1 \
-C /tmp/mikero-tools-action
tar -xf /tmp/mikero-tools-action/linux/*.tar \
--strip-components=1 \
-C /cache/mikero-tools
export WINEPREFIX=/cache/mikero-wine
export WINEARCH=win64
export WINEDEBUG=-all
if ! command -v pboProject >/dev/null; then
echo "pboProject is missing from valmo/braf-mikero image." >&2
return 1
fi
export PATH="/cache/mikero-tools/bin:$PATH"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:-}:/cache/mikero-tools/lib"
if ! command -v winetricks >/dev/null; then
apt-get install -y winetricks
fi
if [[ ! -f "$WINEPREFIX/drive_c/windows/system32/mfc140u.dll" ]]; then
echo "Initializing the persistent Mikero Wine runtime."
xvfb-run -a winetricks -q vcrun2015
fi
sed -i "s#exec /usr/lib/wine/wine64#exec xvfb-run -a /usr/bin/wine#" /usr/local/bin/pboProject
}
is_zero_sha() {
@@ -179,7 +182,23 @@ jobs:
git_auth lfs fetch origin "$GIT_SHA" --include="$include" --exclude="*"
git lfs checkout "${changed_addons[@]}"
else
echo "Only workshop metadata changed; using cached PBOs."
echo "Only workshop metadata changed; seeding any missing PBO cache entries."
mapfile -t changed_addons < <(
git ls-tree -d --name-only "$GIT_SHA" |
awk "/^braf_/ {print}" |
while read -r addon; do
if git cat-file -e "$GIT_SHA:$addon/config.cpp" 2>/dev/null; then
printf "%s\n" "$addon"
fi
done
)
include=""
for addon in "${changed_addons[@]}"; do
include+="${include:+,}${addon}/**"
done
echo "Fetching LFS for cache seed: $include"
git_auth lfs fetch origin "$GIT_SHA" --include="$include" --exclude="*"
git lfs checkout "${changed_addons[@]}"
fi
build_args=(
+10 -11
View File
@@ -352,14 +352,11 @@ def run_pboproject(addon: str, source_root: Path, output_dir: Path) -> None:
"+O" if addon in obfuschatedList else "-O",
]
else:
source = repo_root() / addon
fallback = output_dir / f"{addon}.pbo"
print(
"Mikero pboProject is not available; writing raw DEV PBO "
f"for {addon} at {fallback}"
raise RuntimeError(
"Mikero pboProject is required to build DEV Workshop PBOs. "
"The installed DePbo makepbo tool only creates a raw archive and "
"must not be published as a BRAF build."
)
write_raw_pbo(addon, source, fallback)
return
print(f"::group::Building {addon}")
print(" ".join(cmd))
@@ -467,12 +464,14 @@ def main() -> int:
source_root = Path(args.source_root).resolve()
elif args.dry_run:
source_root = (cache_dir / "mikero-source" / "braf").resolve()
elif not (shutil.which("pboproject") or shutil.which("pboProject")):
source_root = root
else:
elif shutil.which("pboproject") or shutil.which("pboProject"):
source_root_addons = requested_addons if requested_addons is not None else addons
source_root = prepare_mikero_source_root(root, cache_dir, source_root_addons).resolve()
else:
raise RuntimeError(
"Mikero pboProject is not installed. Refusing to stage or publish "
"raw PBO archives as a DEV Workshop build."
)
current_hashes = {addon: addon_digest(root / addon) for addon in addons}
manifest = load_manifest(manifest_path)
manifest_addons = manifest.setdefault("addons", {})