Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 120 additions & 0 deletions .github/workflows/ci-ps2dev-migration-probe.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
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 \
mpc1 \
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
Loading
Loading