Fetches the latest ps2build release and installs it into an existing PS2DEV toolchain root
  • TypeScript 100%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
techwritescode c3e004893d Cache installed components, validated against real versions
Previously every "ps2build update <component>" ran unconditionally
on every CI invocation, even when nothing changed - real network
fetches + reinstalls for every named component, every run.

Now (when explicit components: are given): restores a best-effort
cache of the whole PS2DEV root (keyed by platform/arch/component
list, always falling back to the most recent prior save via a prefix
restoreKey - there's no stable content hash to key on up front since
"latest" changes over time), then runs "ps2build update <component>
--check" per component and only performs a real update for whatever
that check reports as stale or missing. A component already current
is skipped entirely - no network fetch, no reinstall. Saves a fresh
cache afterward under an always-unique (run-id-suffixed) key.

Gracefully degrades to today's unconditional-fetch behavior when the
runner's cache backend isn't available, or when the bare
(no-components) update path is used - neither of those changes.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-09-08 17:35:10 -05:00
dist Cache installed components, validated against real versions 2026-09-08 17:35:10 -05:00
src Cache installed components, validated against real versions 2026-09-08 17:35:10 -05:00
.gitignore Migrate to typescript 2026-09-05 00:30:22 -05:00
action.yml Add optional components input to selectively install via ps2build update 2026-09-06 13:05:10 -05:00
LICENSE Initial commit: setup-sdk 2026-09-02 09:24:59 -05:00
package-lock.json Cache installed components, validated against real versions 2026-09-08 17:35:10 -05:00
package.json Cache installed components, validated against real versions 2026-09-08 17:35:10 -05:00
README.md Migrate to typescript 2026-09-05 00:30:22 -05:00
tsconfig.json Migrate to typescript 2026-09-05 00:30:22 -05:00

setup-sdk

One-shot bootstrap: takes a blank machine or container to "ready to compile a PS2 game." Downloads ps2build directly, then runs ps2build update - which bootstraps the compiler toolchain, ninja, srxfixup, and the sdk-core/sdk-world package tiers itself, each fetched from its own independent, always-current release.

If you're developing the SDK itself (building sdk-core/sdk-world from source), use setup-toolchain + setup-ps2build directly instead - you don't want a prebuilt copy of the SDK sitting around while you build your own.

Forgejo/GitHub Action

- uses: https://git.techwritescode.dev/ps2/setup-sdk@master
  with:
    ps2dev: /opt/ps2dev
    version: latest   # optional - pins ps2build's own initial version only
    force: 'false'    # optional