Skip to content

ci: add ps2dev latest migration probe workflow #6

ci: add ps2dev latest migration probe workflow

ci: add ps2dev latest migration probe workflow #6

name: CI-ps2dev-migration-probe
on:
pull_request:
paths:
- '.github/workflows/ci-ps2dev-migration-probe.yml'
- '.github/workflows/compilation.yml'
- 'Makefile'
- '**/*.mk'
workflow_dispatch:
jobs:
build-probe:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- container_image: ps2max/dev:v20250725-2
label: ps2max-dev-v20250725-2
- container_image: ps2dev/ps2dev:latest
label: ps2dev-latest
container: ${{ matrix.container_image }}
steps:
- name: git checkout
uses: actions/checkout@v6
- name: Install diagnostic host dependencies (Alpine only)
run: |
if command -v apk >/dev/null 2>&1; then
# Consolidated ps2dev Alpine prerequisites: build tools, scripting, packaging, and gcc runtime libs.
apk add --no-cache \
bash \
make \
git \
zip \
unzip \
tar \
gzip \
xz \
python3 \
py3-pip \
py3-yaml \
gmp \
mpfr4 \
libmpc1 \
perl \
cmake \
pkgconf \
coreutils \
findutils \
grep \
sed \
gawk \
diffutils
fi
- name: Mark workspace safe and fetch history
run: |
if command -v git >/dev/null 2>&1; then
git config --global --add safe.directory "$GITHUB_WORKSPACE"
git fetch --prune --unshallow || true
else
echo "git not available before dependency install"
fi
- name: Capture fingerprint and SDK snapshot
run: |
set +e
{
echo "===== /etc/os-release ====="
cat /etc/os-release || true
echo "===== uname -a ====="
uname -a || true
echo "===== env | sort ====="
env | sort || true
echo "===== PS2 vars ====="
echo "PS2DEV=${PS2DEV}"
echo "PS2SDK=${PS2SDK}"
echo "GSKIT=${GSKIT}"
echo "PATH=${PATH}"
echo "===== host tools ====="
which sh bash make git zip unzip tar gzip xz python3 perl cmake pkg-config gawk sed grep find || true
echo "===== cross tools ====="
which mips64r5900el-ps2-elf-gcc || true
which mipsel-none-elf-gcc || true
echo "===== cross tool versions ====="
mips64r5900el-ps2-elf-gcc --version || true
mipsel-none-elf-gcc --version || true
echo "===== PS2SDK tree ====="
ls -la "$PS2DEV" || true
ls -la "$PS2SDK" || true
ls -la "$GSKIT" || true
echo "===== Defs.make ====="
if test -f "$PS2SDK/Defs.make"; then
sed -n '1,160p' "$PS2SDK/Defs.make"
else
echo "Missing: $PS2SDK/Defs.make"
fi
echo "===== Makefile variables ====="
if test -f Makefile; then
grep -E '^(PS2DEV|PS2SDK|GSKIT|EE_|IOP_|DVP_|CC|CFLAGS|LDFLAGS|LIBS)\s*[:?+]?=' Makefile || true
fi
} | tee env-fingerprint.log
find "$PS2SDK" -maxdepth 4 \( -name '*.a' -o -name '*.h' -o -name '*.irx' -o -name '*.elf' \) -print 2>/dev/null | sort > ps2sdk-snapshot.log || true
- name: Build (same command as production workflow)
run: |
make --trace clean release 2>&1 | tee build.log
- name: Upload diagnostics
if: ${{ always() }}
uses: actions/upload-artifact@v6
with:
name: diagnostics-${{ matrix.label }}
path: |
env-fingerprint.log
ps2sdk-snapshot.log
build.log