From 5e49f21adf6f21123649472bd9afd1099939b8a6 Mon Sep 17 00:00:00 2001 From: samypr100 <3933065+samypr100@users.noreply.github.com> Date: Wed, 18 Sep 2024 09:34:25 -0400 Subject: [PATCH] docs: add warning note on self-hosted github runners (#5757) ## Summary Related discussion: #5731 This adds a warning section for caching on non-ephemeral (e.g. ec2) self hosted github runners. ## Test Plan Prettier was ran on the file. --------- Co-authored-by: Zanie Blue --- docs/guides/integration/github.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/guides/integration/github.md b/docs/guides/integration/github.md index aa9ac578a..8ca9fcfc0 100644 --- a/docs/guides/integration/github.md +++ b/docs/guides/integration/github.md @@ -265,6 +265,30 @@ Its effect on performance is dependent on the packages being installed. If using `uv pip`, use `requirements.txt` instead of `uv.lock` in the cache key. +!!! note + + [post-job-hook]: https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/running-scripts-before-or-after-a-job + + When using non-ephemeral, self-hosted runners the default cache directory can grow unbounded. + In this case, it may not be optimal to share the cache between jobs. Instead, move the cache + inside the GitHub Workspace and remove it once the job finishes using a + [Post Job Hook][post-job-hook]. + + ```yaml + install_job: + env: + # Configure a relative location for the uv cache + UV_CACHE_DIR: ${{ github.workspace }}/.cache/uv + ``` + + Using a post job hook requires setting the `ACTIONS_RUNNER_HOOK_JOB_STARTED` environment + variable on the self-hosted runner to the path of a cleanup script such as the one shown below. + + ```sh title="clean-uv-cache.sh" + #!/usr/bin/env sh + uv cache clean + ``` + ## Using `uv pip` If using the `uv pip` interface instead of the uv project interface, uv requires a virtual