From 8678ef61bad23a38f28d0a6080b5471894614287 Mon Sep 17 00:00:00 2001 From: Conrad Kramer Date: Thu, 19 Mar 2026 02:13:12 -0700 Subject: [PATCH] Shard macOS Namespace caches by lane --- .forgejo/workflows/build-apple.yml | 44 ++++++++++--------- services/forgejo-nsc/deploy/dispatcher.yaml | 12 +++-- .../forgejo-nsc/internal/config/config.go | 16 +++++-- 3 files changed, 45 insertions(+), 27 deletions(-) diff --git a/.forgejo/workflows/build-apple.yml b/.forgejo/workflows/build-apple.yml index 7fce5ca..5231f7e 100644 --- a/.forgejo/workflows/build-apple.yml +++ b/.forgejo/workflows/build-apple.yml @@ -74,30 +74,32 @@ jobs: run: | set -euo pipefail cache_root="${NSC_CACHE_PATH:-${HOME}/.cache/burrow}" + shared_root="${NSC_SHARED_CACHE_PATH:-${cache_root}/shared}" + lane_root="${NSC_LANE_CACHE_PATH:-${cache_root}/lane/${{ matrix.cache-id }}}" mkdir -p \ - "${cache_root}/cargo" \ - "${cache_root}/cargo-target/${{ matrix.cache-id }}" \ - "${cache_root}/rustup" \ - "${cache_root}/sccache" \ - "${cache_root}/homebrew" \ - "${cache_root}/apple/PackageCache" \ - "${cache_root}/apple/SourcePackages" \ - "${cache_root}/apple/DerivedData/${{ matrix.cache-id }}" + "${shared_root}/cargo" \ + "${shared_root}/rustup" \ + "${shared_root}/sccache" \ + "${shared_root}/homebrew" \ + "${shared_root}/apple/PackageCache" \ + "${shared_root}/apple/SourcePackages" \ + "${lane_root}/cargo-target" \ + "${lane_root}/DerivedData" rm -rf \ - "${cache_root}/cargo-target/${{ matrix.cache-id }}" \ - "${cache_root}/apple/DerivedData/${{ matrix.cache-id }}" + "${lane_root}/cargo-target" \ + "${lane_root}/DerivedData" mkdir -p \ - "${cache_root}/cargo-target/${{ matrix.cache-id }}" \ - "${cache_root}/apple/DerivedData/${{ matrix.cache-id }}" - echo "CARGO_HOME=${cache_root}/cargo" >> "${GITHUB_ENV}" - echo "CARGO_TARGET_DIR=${cache_root}/cargo-target/${{ matrix.cache-id }}" >> "${GITHUB_ENV}" - echo "RUSTUP_HOME=${cache_root}/rustup" >> "${GITHUB_ENV}" - echo "SCCACHE_DIR=${cache_root}/sccache" >> "${GITHUB_ENV}" - echo "HOMEBREW_CACHE=${cache_root}/homebrew" >> "${GITHUB_ENV}" - echo "APPLE_PACKAGE_CACHE=${cache_root}/apple/PackageCache" >> "${GITHUB_ENV}" - echo "APPLE_SOURCE_PACKAGES=${cache_root}/apple/SourcePackages" >> "${GITHUB_ENV}" - echo "APPLE_DERIVED_DATA=${cache_root}/apple/DerivedData/${{ matrix.cache-id }}" >> "${GITHUB_ENV}" - df -h "${cache_root}" || true + "${lane_root}/cargo-target" \ + "${lane_root}/DerivedData" + echo "CARGO_HOME=${shared_root}/cargo" >> "${GITHUB_ENV}" + echo "CARGO_TARGET_DIR=${lane_root}/cargo-target" >> "${GITHUB_ENV}" + echo "RUSTUP_HOME=${shared_root}/rustup" >> "${GITHUB_ENV}" + echo "SCCACHE_DIR=${shared_root}/sccache" >> "${GITHUB_ENV}" + echo "HOMEBREW_CACHE=${shared_root}/homebrew" >> "${GITHUB_ENV}" + echo "APPLE_PACKAGE_CACHE=${shared_root}/apple/PackageCache" >> "${GITHUB_ENV}" + echo "APPLE_SOURCE_PACKAGES=${shared_root}/apple/SourcePackages" >> "${GITHUB_ENV}" + echo "APPLE_DERIVED_DATA=${lane_root}/DerivedData" >> "${GITHUB_ENV}" + df -h "${shared_root}" "${lane_root}" || true - name: Install Rust shell: bash diff --git a/services/forgejo-nsc/deploy/dispatcher.yaml b/services/forgejo-nsc/deploy/dispatcher.yaml index 0ce95c0..1dc01b8 100644 --- a/services/forgejo-nsc/deploy/dispatcher.yaml +++ b/services/forgejo-nsc/deploy/dispatcher.yaml @@ -41,9 +41,15 @@ namespace: size_gb: 40 macos_cache_path: "/Users/runner/.cache/burrow" macos_cache_volumes: - - tag: "burrow-forgejo-macos-cache-v2" - mount_point: "/Users/runner/.cache/burrow" - size_gb: 160 + - tag: "burrow-forgejo-macos-shared-v1" + mount_point: "/Users/runner/.cache/burrow/shared" + size_gb: 80 + - tag: "burrow-forgejo-macos-macos-v1" + mount_point: "/Users/runner/.cache/burrow/lane/macos" + size_gb: 80 + - tag: "burrow-forgejo-macos-ios-simulator-v1" + mount_point: "/Users/runner/.cache/burrow/lane/ios-simulator" + size_gb: 80 runner: name_prefix: "nscloud-" diff --git a/services/forgejo-nsc/internal/config/config.go b/services/forgejo-nsc/internal/config/config.go index b0d2ebc..5750196 100644 --- a/services/forgejo-nsc/internal/config/config.go +++ b/services/forgejo-nsc/internal/config/config.go @@ -193,9 +193,19 @@ func (c *Config) Validate() error { if len(c.Namespace.MacosCacheVolumes) == 0 { c.Namespace.MacosCacheVolumes = []CacheVolumeConfig{ { - Tag: "burrow-forgejo-macos-cache-v2", - MountPoint: c.Namespace.MacosCachePath, - SizeGb: 160, + Tag: "burrow-forgejo-macos-shared-v1", + MountPoint: c.Namespace.MacosCachePath + "/shared", + SizeGb: 80, + }, + { + Tag: "burrow-forgejo-macos-macos-v1", + MountPoint: c.Namespace.MacosCachePath + "/lane/macos", + SizeGb: 80, + }, + { + Tag: "burrow-forgejo-macos-ios-simulator-v1", + MountPoint: c.Namespace.MacosCachePath + "/lane/ios-simulator", + SizeGb: 80, }, } }