Merge branch 'main' of https://git.valmo.dev/projectbraf/braf
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 2m33s
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 2m33s
This commit is contained in:
@@ -7,8 +7,8 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
STEAM_APP_ID: "107410"
|
STEAM_APP_ID: "107410"
|
||||||
HOST_REPO: /home/valmo/braf
|
HOST_REPO: /data/valmo/braf
|
||||||
HOST_CACHE: /home/valmo/braf-ci-cache/dev-workshop
|
HOST_CACHE: /data/valmo/braf-ci-cache/dev-workshop
|
||||||
BRAF_CI_STAGE_DIR: dist/dev/@braf_dev
|
BRAF_CI_STAGE_DIR: dist/dev/@braf_dev
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
@@ -29,9 +29,9 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
mkdir -p "$HOST_CACHE"
|
|
||||||
|
|
||||||
docker run --rm -i \
|
docker run --rm -i \
|
||||||
|
--user root \
|
||||||
-e BRAF_CI_STAGE_DIR \
|
-e BRAF_CI_STAGE_DIR \
|
||||||
-e GIT_BEFORE \
|
-e GIT_BEFORE \
|
||||||
-e GIT_SHA \
|
-e GIT_SHA \
|
||||||
@@ -46,7 +46,7 @@ jobs:
|
|||||||
-v "$HOST_REPO:/repo" \
|
-v "$HOST_REPO:/repo" \
|
||||||
-v "$HOST_CACHE:/cache" \
|
-v "$HOST_CACHE:/cache" \
|
||||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
-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'
|
bash -s <<'BRAF_CI'
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
@@ -65,22 +65,25 @@ jobs:
|
|||||||
}
|
}
|
||||||
|
|
||||||
install_mikero() {
|
install_mikero() {
|
||||||
if [[ ! -x /cache/mikero-tools/bin/makepbo ]]; then
|
export WINEPREFIX=/cache/mikero-wine
|
||||||
rm -rf /tmp/mikero-tools-action /cache/mikero-tools
|
export WINEARCH=win64
|
||||||
mkdir -p /tmp/mikero-tools-action /cache/mikero-tools
|
export WINEDEBUG=-all
|
||||||
curl -fsSL \
|
|
||||||
https://github.com/arma-actions/mikero-tools/archive/refs/heads/master.tar.gz \
|
if ! command -v pboProject >/dev/null; then
|
||||||
-o /tmp/mikero-tools-action.tar.gz
|
echo "pboProject is missing from valmo/braf-mikero image." >&2
|
||||||
tar -zxf /tmp/mikero-tools-action.tar.gz \
|
return 1
|
||||||
--strip-components=1 \
|
|
||||||
-C /tmp/mikero-tools-action
|
|
||||||
tar -xf /tmp/mikero-tools-action/linux/*.tar \
|
|
||||||
--strip-components=1 \
|
|
||||||
-C /cache/mikero-tools
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export PATH="/cache/mikero-tools/bin:$PATH"
|
if ! command -v winetricks >/dev/null; then
|
||||||
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:-}:/cache/mikero-tools/lib"
|
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() {
|
is_zero_sha() {
|
||||||
@@ -179,7 +182,23 @@ jobs:
|
|||||||
git_auth lfs fetch origin "$GIT_SHA" --include="$include" --exclude="*"
|
git_auth lfs fetch origin "$GIT_SHA" --include="$include" --exclude="*"
|
||||||
git lfs checkout "${changed_addons[@]}"
|
git lfs checkout "${changed_addons[@]}"
|
||||||
else
|
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
|
fi
|
||||||
|
|
||||||
build_args=(
|
build_args=(
|
||||||
|
|||||||
+10
-11
@@ -352,14 +352,11 @@ def run_pboproject(addon: str, source_root: Path, output_dir: Path) -> None:
|
|||||||
"+O" if addon in obfuschatedList else "-O",
|
"+O" if addon in obfuschatedList else "-O",
|
||||||
]
|
]
|
||||||
else:
|
else:
|
||||||
source = repo_root() / addon
|
raise RuntimeError(
|
||||||
fallback = output_dir / f"{addon}.pbo"
|
"Mikero pboProject is required to build DEV Workshop PBOs. "
|
||||||
print(
|
"The installed DePbo makepbo tool only creates a raw archive and "
|
||||||
"Mikero pboProject is not available; writing raw DEV PBO "
|
"must not be published as a BRAF build."
|
||||||
f"for {addon} at {fallback}"
|
|
||||||
)
|
)
|
||||||
write_raw_pbo(addon, source, fallback)
|
|
||||||
return
|
|
||||||
|
|
||||||
print(f"::group::Building {addon}")
|
print(f"::group::Building {addon}")
|
||||||
print(" ".join(cmd))
|
print(" ".join(cmd))
|
||||||
@@ -467,12 +464,14 @@ def main() -> int:
|
|||||||
source_root = Path(args.source_root).resolve()
|
source_root = Path(args.source_root).resolve()
|
||||||
elif args.dry_run:
|
elif args.dry_run:
|
||||||
source_root = (cache_dir / "mikero-source" / "braf").resolve()
|
source_root = (cache_dir / "mikero-source" / "braf").resolve()
|
||||||
elif not (shutil.which("pboproject") or shutil.which("pboProject")):
|
elif shutil.which("pboproject") or shutil.which("pboProject"):
|
||||||
source_root = root
|
|
||||||
else:
|
|
||||||
source_root_addons = requested_addons if requested_addons is not None else addons
|
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()
|
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}
|
current_hashes = {addon: addon_digest(root / addon) for addon in addons}
|
||||||
manifest = load_manifest(manifest_path)
|
manifest = load_manifest(manifest_path)
|
||||||
manifest_addons = manifest.setdefault("addons", {})
|
manifest_addons = manifest.setdefault("addons", {})
|
||||||
|
|||||||
Reference in New Issue
Block a user