cryptiklemur/Build Steam game image
Download a Steam game with steamcmd and push it as a private OCI image to a registry you control.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jun 26, 2026
- License
- MIT
Pinned Snippet
uses: cryptiklemur/steam-game-image-action@b8518cf91bccdb64208c684f0d4a6d87263da410 # v1.0.6tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| steam-username | Steam account name that owns the game and matches the config.vdf session. | yes | — |
| steam-config-vdf | Base64-encoded steamcmd config.vdf for a logged-in session (a repo secret). | yes | — |
| app-id | Steam app id to download. | no | 294100 |
| branch | Steam branch to install (e.g. public, 1.5, 1.4). | no | public |
| branch-password | Password for a password-protected beta branch (optional). | no | "" |
| image | Target image ref WITHOUT a tag, e.g. ghcr.io/you/rimworld-game. | yes | — |
| registry | Registry host for auth (default ghcr.io). | no | ghcr.io |
| registry-username | Registry username (default the GitHub actor). | no | ${{ github.actor }} |
| registry-password | Registry token/password. For GHCR pass secrets.GITHUB_TOKEN (needs packages: write). | yes | — |
| base-image | Base image to append the game layer onto. Empty = auto (runtime-base if runnable, else a minimal base). | no | "" |
| runnable | true = append onto the xvfb/native-deps runtime base (launchable); false = minimal build/reference base. | no | true |
| runtime-base-image | Override the default public runtime base image. | no | ghcr.io/cryptiklemur/steam-game-image-action/runtime-base:latest |
| minimal-base-image | Base used when runnable=false. | no | debian:stable-slim |
| game-path | Path the game is placed at inside the image. | no | /game |
| platform | Image platform. | no | linux/amd64 |
| crane-version | go-containerregistry (crane) version to install. | no | 0.20.2 |
| skip-if-unchanged | true = compare the published buildid to the image's steam.buildid label and skip when unchanged. | no | true |
| include-paths | Space/newline-separated subpaths (relative to the game install dir) to include in the image. Empty (default) = the whole game (runnable). Set e.g. 'RimWorldLinux_Data/Managed' for a tiny build/reference image with just the managed assemblies. Pair a subset with runnable=false. | no | "" |
Outputs
| name | description |
|---|---|
| image-ref | Image ref to consume: image:version when built, image:latest-<branch> when the build was skipped. |
| version | The version tag used. |
| buildid | The Steam buildid that was built. |
| skipped | true if the build was skipped because the buildid was unchanged. |