# Proton (sniper) SDK This project builds Docker images based on <https://gitlab.steamos.cloud/steamrt/sniper/sdk>, with the addition of Proton build-dependencies. This is mostly just a CI script, which clones <https://github.com/ValveSoftware/Proton> and builds the same docker images as what `make protonsdk` does there. It does a bit of magic to create a set of commands usable by `kaniko` instead of docker, as this CI runs on Google Compute instances. ## Using this image Choose a suitable version number, for example 0.20230102.3-0, according to the `PROTONSDK_VERSION` in Proton's `docker/Makefile`. Then: docker pull registry.gitlab.steamos.cloud/proton/sniper/sdk:0.20230102.3-0 and use that image for your builds. At the moment the `registry.gitlab.steamos.cloud/proton/sniper/sdk:latest` tag will change frequently and will not always point to a usable SDK image, so please don't use that for anything. Other Docker images whose names start with `registry.gitlab.steamos.cloud/proton/sniper/sdk/` are built as a side-effect of building this image, but those should not be relied on. ## Corresponding source code Source code for all the packages that go into the Steam Runtime base image can be found in the appropriate subdirectory of <https://repo.steampowered.com/steamrt-images-sniper/snapshots/> (look in the sources/ directory). Source code for the packages added for the Proton SDK can be found in <https://repo.steampowered.com/proton-sdk/>. ## Information for maintainers ### Doing a test-build To trigger a new build and publish a new test image, update the `PROTON_COMMIT` variable in `.gitlab-ci.yml`, commit, push to `proton/sniper/sdk` as a branch with a name other than `master`, and wait. Using a branch named `wip/yourtopic` or `wip/yourname/yourtopic` is suggested, replacing *yourtopic* and *yourname* as appropriate. The image version tag that will be created is the SteamRT SDK image version that is used as a base, as defined using the `STEAMRT_VERSION` variable in `docker/Makefile` in the Proton source, plus the hard-coded suffix `-dev`. If an image with the same tag already exists, it will be overwritten. The `PROTONSDK_VERSION` variable in `docker/Makefile` is overridden by this project, and therefore is ignored. ### Doing a release build When you are happy with your test-build, merge it to `master`, tag the resulting commit and push the tag, for example: git tag -m "Proton SDK image v0.20230102.3-0" -a v0.20230102.3-0 git push origin v0.20230102.3-0 A new CI pipeline will run for the git tag. This time, the Docker image version tag that will be created is the git tag, with the "v" prefix (if any) removed. The tag is conventionally the same as the `PROTONSDK_VERSION` variable in Proton's `docker/Makefile`, which is the `STEAMRT_VERSION` plus a dash and a numeric suffix.