From 3d5c31dab2806eff261a0a922c0486db4e707347 Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 09:24:42 +0200 Subject: [PATCH 01/22] Reduce number of tests run, to reduce cache size. Also rename actions. --- .../workflows/{python-package.yml => tox.yml} | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) rename .github/workflows/{python-package.yml => tox.yml} (87%) diff --git a/.github/workflows/python-package.yml b/.github/workflows/tox.yml similarity index 87% rename from .github/workflows/python-package.yml rename to .github/workflows/tox.yml index 4846d2c2..719e1010 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/tox.yml @@ -1,6 +1,6 @@ # This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python -name: Python package +name: Simple Tox Tests on: push: @@ -45,7 +45,7 @@ jobs: - if: ${{ steps.cache-tox-data.outputs.cache-hit != 'true' }} name: List the state of tox continue-on-error: true - run: ls -lha .tox/py310/ + run: ls -lha .tox/ - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 @@ -65,10 +65,6 @@ jobs: run: | tox -e ruff_check - - name: Fetch dataset - run: | - tox -e trainingdata - - name: Run tox unit tests run: | tox -e py310 @@ -77,13 +73,5 @@ jobs: run: | tox -e bandit - - name: Run inference - run: | - tox -e inference_CI - - - name: Run inference_multi_CI - run: | - tox -e inference_multi_CI - # To warn us when we get close to disk capacity again - run: df -h From bc501e4ea274d8954dc7738c542bafadd7bd9430 Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 10:21:20 +0200 Subject: [PATCH 02/22] List size of tox and pip cache --- .github/workflows/tox.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index 719e1010..c0176c89 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -75,3 +75,4 @@ jobs: # To warn us when we get close to disk capacity again - run: df -h + - run: du -hsc .tox ~/.cache/pip From 6eb28bc5a1535f25fa2c9c61b1be7f84bfa56efb Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 10:45:09 +0200 Subject: [PATCH 03/22] Readd jobs, but don't cache setup --- .github/workflows/tox.yml | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index c0176c89..bae57300 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -1,5 +1,4 @@ -# This workflow will install Python dependencies, run tests and lint with a variety of Python versions -# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python +# This workflow will install Python dependencies, run tests using tox name: Simple Tox Tests on: @@ -47,6 +46,7 @@ jobs: continue-on-error: true run: ls -lha .tox/ + # https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: @@ -57,22 +57,38 @@ jobs: run: | python -m pip install tox - - name: Run ruff format check + - name: Run ruff format check (<50M) run: | tox -e ruff_checkformat - - name: Run ruff check + - name: Run ruff check (<50M) run: | tox -e ruff_check - - name: Run tox unit tests + - name: Fetch dataset (175M) + run: | + tox -e trainingdata + + - name: Run tox unit tests (6G) run: | tox -e py310 - - name: Run tox security check + - name: Run tox security check (<50M) run: | tox -e bandit - # To warn us when we get close to disk capacity again + - name: Run inference + run: | + tox -e inference_CI + - name: Don't cache inference_CI tox dir + run: rm -rf .tox/inference_CI + + - name: Run inference_multi_CI + run: | + tox -e inference_multi_CI + - name: Don't cache inference_multi_CI tox dir + run: rm -rf .tox/inference_multi_CI + + # Show disk usage - run: df -h - run: du -hsc .tox ~/.cache/pip From 700af4db8cdf219ffe2799e086f63474c03c69b3 Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 11:04:04 +0200 Subject: [PATCH 04/22] Add save step for tox cache --- .github/workflows/tox.yml | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index bae57300..bc5e2a65 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -18,7 +18,6 @@ jobs: steps: # Clean out runner data we don't use, should free up ~15 GB - - run: df -h - name: "node-cleanup" run: | sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL @@ -28,8 +27,8 @@ jobs: - uses: actions/checkout@v4 - - name: Cache tox dir - id: cache-tox + - name: Restore tox dir cache + id: restore-tox uses: actions/cache@v4 env: cache-name: cache-tox-data @@ -41,11 +40,6 @@ jobs: ${{ runner.os }}-build- ${{ runner.os }}- - - if: ${{ steps.cache-tox-data.outputs.cache-hit != 'true' }} - name: List the state of tox - continue-on-error: true - run: ls -lha .tox/ - # https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 @@ -89,6 +83,15 @@ jobs: - name: Don't cache inference_multi_CI tox dir run: rm -rf .tox/inference_multi_CI + - name: Save tox dir cache + id: save-tox + uses: actions/cache/save@v4 + env: + cache-name: cache-tox-data + with: + path: .tox + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('pyproject.toml') }} + # Show disk usage - run: df -h - run: du -hsc .tox ~/.cache/pip From 4196ee17151a79f3a6d3183080ce7336341f24f9 Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 12:17:11 +0200 Subject: [PATCH 05/22] Add comment --- .github/workflows/tox.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index bc5e2a65..e7881596 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -27,6 +27,7 @@ jobs: - uses: actions/checkout@v4 + # https://github.com/actions/cache?tab=readme-ov-file - name: Restore tox dir cache id: restore-tox uses: actions/cache@v4 From 711ab9b84ae02906704816df1ea0daffd13c213d Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 13:14:07 +0200 Subject: [PATCH 06/22] Include tox.ini in cache hash. Keep cache of inference_CI. --- .github/workflows/tox.yml | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index e7881596..9f70f833 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -28,14 +28,14 @@ jobs: - uses: actions/checkout@v4 # https://github.com/actions/cache?tab=readme-ov-file - - name: Restore tox dir cache + - name: Restore tox dir cache and saves after run id: restore-tox uses: actions/cache@v4 env: cache-name: cache-tox-data with: path: .tox - key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('pyproject.toml') }} + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('pyproject.toml', 'tox.ini') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- @@ -75,8 +75,6 @@ jobs: - name: Run inference run: | tox -e inference_CI - - name: Don't cache inference_CI tox dir - run: rm -rf .tox/inference_CI - name: Run inference_multi_CI run: | @@ -84,15 +82,6 @@ jobs: - name: Don't cache inference_multi_CI tox dir run: rm -rf .tox/inference_multi_CI - - name: Save tox dir cache - id: save-tox - uses: actions/cache/save@v4 - env: - cache-name: cache-tox-data - with: - path: .tox - key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('pyproject.toml') }} - # Show disk usage - run: df -h - run: du -hsc .tox ~/.cache/pip From 2a13a33b6a14b2f2b91646c29d47b2d5be2d676f Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 13:42:33 +0200 Subject: [PATCH 07/22] Faster delete --- .github/workflows/tox.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index 9f70f833..3275636d 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -20,10 +20,16 @@ jobs: # Clean out runner data we don't use, should free up ~15 GB - name: "node-cleanup" run: | - sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL - sudo docker image prune --all --force + df -h + DOWNLOAD_URL="https://github.com/SUPERCILEX/fuc/releases/download/3.0.1/$ARCH-unknown-linux-gnu-rmz" + curl -L -o rmz "$DOWNLOAD_URL" + chmod +x rmz + sudo mv rmz /usr/bin/rmz + rmz --version + sudo rmz -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL + df -h sudo docker builder prune -a - - run: df -h + df -h - uses: actions/checkout@v4 From 57b95eb510a71b0f137f75a4ee29164986a6796b Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 13:54:45 +0200 Subject: [PATCH 08/22] Fix faster delete --- .github/workflows/tox.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index 3275636d..7dac3ee4 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -21,8 +21,8 @@ jobs: - name: "node-cleanup" run: | df -h - DOWNLOAD_URL="https://github.com/SUPERCILEX/fuc/releases/download/3.0.1/$ARCH-unknown-linux-gnu-rmz" - curl -L -o rmz "$DOWNLOAD_URL" + DOWNLOAD_URL="https://github.com/SUPERCILEX/fuc/releases/download/3.1.1/x86_64-unknown-linux-gnu-rmz" + curl --location --output rmz "$DOWNLOAD_URL" chmod +x rmz sudo mv rmz /usr/bin/rmz rmz --version From 7434f26591279a80df7659d27a32684d98b5cba6 Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 13:57:42 +0200 Subject: [PATCH 09/22] Fix faster delete --- .github/workflows/tox.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index 7dac3ee4..d4f57cec 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -26,7 +26,7 @@ jobs: chmod +x rmz sudo mv rmz /usr/bin/rmz rmz --version - sudo rmz -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL + sudo rmz /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL df -h sudo docker builder prune -a df -h From cfaf5f0e89d7988676588fed4d212e923b090d6b Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 14:01:34 +0200 Subject: [PATCH 10/22] Faster delete --- .github/workflows/tox.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index d4f57cec..3b832482 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -26,7 +26,20 @@ jobs: chmod +x rmz sudo mv rmz /usr/bin/rmz rmz --version - sudo rmz /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL + sudo rmz --force \ + /usr/local/lib/android \ + /opt/ghc \ + /opt/hostedtoolcache/CodeQL \ + "${HOME}/.rustup" \ + "${HOME}/.cargo" \ + "${HOME}/.dotnet" \ + /opt/containerd \ + /opt/hostedtoolcache \ + /opt/microsoft \ + /opt/az \ + /opt/pipx* \ + /opt/google \ + /opt/mssql-tools df -h sudo docker builder prune -a df -h From 5c036d7ee5128ab27a40ed948426023ed9ad771e Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 14:04:05 +0200 Subject: [PATCH 11/22] Faster delete --- .github/workflows/tox.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index 3b832482..8d1bc936 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -29,7 +29,6 @@ jobs: sudo rmz --force \ /usr/local/lib/android \ /opt/ghc \ - /opt/hostedtoolcache/CodeQL \ "${HOME}/.rustup" \ "${HOME}/.cargo" \ "${HOME}/.dotnet" \ @@ -39,7 +38,8 @@ jobs: /opt/az \ /opt/pipx* \ /opt/google \ - /opt/mssql-tools + /opt/hostedtoolcache/CodeQL \ + /opt/mssql-tools || true df -h sudo docker builder prune -a df -h From f7df0af4d35993d1eaeafe9a9eefebb81a57f064 Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 14:16:27 +0200 Subject: [PATCH 12/22] Ignore docker, doesn't help. Add comments. Use rmz for more removal. --- .github/workflows/tox.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index 8d1bc936..97e92ac9 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -18,7 +18,7 @@ jobs: steps: # Clean out runner data we don't use, should free up ~15 GB - - name: "node-cleanup" + - name: "Make space on runner by removing tools we don't need using rmz, a fast version of rm." run: | df -h DOWNLOAD_URL="https://github.com/SUPERCILEX/fuc/releases/download/3.1.1/x86_64-unknown-linux-gnu-rmz" @@ -38,11 +38,8 @@ jobs: /opt/az \ /opt/pipx* \ /opt/google \ - /opt/hostedtoolcache/CodeQL \ /opt/mssql-tools || true df -h - sudo docker builder prune -a - df -h - uses: actions/checkout@v4 @@ -94,12 +91,16 @@ jobs: - name: Run inference run: | tox -e inference_CI + # Keeping this makes our cache ~7G, causing it to be evicted often. Rather caching pip, so this goes OK fast. + - name: Don't cache inference_CI tox dir + run: rmz --force .tox/inference_CI - name: Run inference_multi_CI run: | tox -e inference_multi_CI + # Keeping this makes our cache ~7G, causing it to be evicted often. Rather caching pip, so this goes OK fast. - name: Don't cache inference_multi_CI tox dir - run: rm -rf .tox/inference_multi_CI + run: rmz --force .tox/inference_multi_CI # Show disk usage - run: df -h From ee64cd3bd7dbdb575d6bce3d57f3d52dccc6a937 Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 14:25:06 +0200 Subject: [PATCH 13/22] Quiet unzip of training data --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 9a2a247f..31b81a47 100644 --- a/tox.ini +++ b/tox.ini @@ -42,7 +42,7 @@ commands = # Store downloaded data, so we don't have to download it again next run. cp -af {envtmpdir}/main.zip {toxworkdir}/main.zip # Unpack and move data to correct location. - unzip {envtmpdir}/main.zip -d {envtmpdir}/ + unzip -qq {envtmpdir}/main.zip -d {envtmpdir}/ cp -af {envtmpdir}/bris-test-data-main/bris_random_data.zarr {toxworkdir}/ From f5669c9ba0dd9d0ca329f9f2fee8bbbaeb90910b Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 15:20:45 +0200 Subject: [PATCH 14/22] Disable inference_multi_CI --- .github/workflows/tox.yml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index 97e92ac9..619171d2 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -43,8 +43,8 @@ jobs: - uses: actions/checkout@v4 - # https://github.com/actions/cache?tab=readme-ov-file - - name: Restore tox dir cache and saves after run + # https://github.com/actions/cache + - name: Restore tox dir cache and save after run id: restore-tox uses: actions/cache@v4 env: @@ -88,20 +88,21 @@ jobs: run: | tox -e bandit - - name: Run inference + - name: Run inference_CI run: | tox -e inference_CI # Keeping this makes our cache ~7G, causing it to be evicted often. Rather caching pip, so this goes OK fast. - name: Don't cache inference_CI tox dir run: rmz --force .tox/inference_CI - - name: Run inference_multi_CI - run: | - tox -e inference_multi_CI - # Keeping this makes our cache ~7G, causing it to be evicted often. Rather caching pip, so this goes OK fast. - - name: Don't cache inference_multi_CI tox dir - run: rmz --force .tox/inference_multi_CI + # Takes too much time and space + # - name: Run inference_multi_CI + # run: | + # tox -e inference_multi_CI + # # Keeping this makes our cache ~7G, causing it to be evicted often. Rather caching pip, so this goes OK fast. + # - name: Don't cache inference_multi_CI tox dir + # run: rmz --force .tox/inference_multi_CI # Show disk usage - run: df -h - - run: du -hsc .tox ~/.cache/pip + - run: du -hsc .tox/* ~/.cache/pip From 318970d6b54936759c96d8947cc4d017c63c8db3 Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 15:46:28 +0200 Subject: [PATCH 15/22] Reenable cache for inference_CI --- .github/workflows/tox.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index 619171d2..56ecf5a7 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -91,9 +91,6 @@ jobs: - name: Run inference_CI run: | tox -e inference_CI - # Keeping this makes our cache ~7G, causing it to be evicted often. Rather caching pip, so this goes OK fast. - - name: Don't cache inference_CI tox dir - run: rmz --force .tox/inference_CI # Takes too much time and space # - name: Run inference_multi_CI From a5b02ff75fdf150340414a94808535538635365c Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 16:07:59 +0200 Subject: [PATCH 16/22] Lock pip cache to pyproject and tox.ini --- .github/workflows/{tox.yml => run_test.yml} | 3 +++ 1 file changed, 3 insertions(+) rename .github/workflows/{tox.yml => run_test.yml} (97%) diff --git a/.github/workflows/tox.yml b/.github/workflows/run_test.yml similarity index 97% rename from .github/workflows/tox.yml rename to .github/workflows/run_test.yml index 56ecf5a7..131f53a3 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/run_test.yml @@ -63,6 +63,9 @@ jobs: with: python-version: ${{ matrix.python-version }} cache: 'pip' # caching pip dependencies + cache-dependency-path: | + pyproject.toml + tox.ini - name: Install python dependencies run: | From ea4cf86b77a77c212354e0c0262acc5c5be98786 Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 16:09:36 +0200 Subject: [PATCH 17/22] Delete less --- .github/workflows/run_test.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/run_test.yml b/.github/workflows/run_test.yml index 131f53a3..d7165d01 100644 --- a/.github/workflows/run_test.yml +++ b/.github/workflows/run_test.yml @@ -26,6 +26,20 @@ jobs: chmod +x rmz sudo mv rmz /usr/bin/rmz rmz --version + + du -hsc /usr/local/lib/android \ + /opt/ghc \ + "${HOME}/.rustup" \ + "${HOME}/.cargo" \ + "${HOME}/.dotnet" \ + /opt/containerd \ + /opt/hostedtoolcache \ + /opt/microsoft \ + /opt/az \ + /opt/pipx* \ + /opt/google \ + /opt/mssql-tools + sudo rmz --force \ /usr/local/lib/android \ /opt/ghc \ From c1e5e0170957b9d4e25ef1dc2b43c4b594a7d9a3 Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 16:13:50 +0200 Subject: [PATCH 18/22] Delete less --- .github/workflows/run_test.yml | 27 +++------------------------ 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/.github/workflows/run_test.yml b/.github/workflows/run_test.yml index d7165d01..e1500d88 100644 --- a/.github/workflows/run_test.yml +++ b/.github/workflows/run_test.yml @@ -27,32 +27,11 @@ jobs: sudo mv rmz /usr/bin/rmz rmz --version - du -hsc /usr/local/lib/android \ - /opt/ghc \ - "${HOME}/.rustup" \ - "${HOME}/.cargo" \ - "${HOME}/.dotnet" \ - /opt/containerd \ - /opt/hostedtoolcache \ - /opt/microsoft \ - /opt/az \ - /opt/pipx* \ - /opt/google \ - /opt/mssql-tools - sudo rmz --force \ /usr/local/lib/android \ - /opt/ghc \ - "${HOME}/.rustup" \ - "${HOME}/.cargo" \ - "${HOME}/.dotnet" \ - /opt/containerd \ - /opt/hostedtoolcache \ - /opt/microsoft \ - /opt/az \ - /opt/pipx* \ - /opt/google \ - /opt/mssql-tools || true + || true + # Can be deleted for another 5G: + # /opt/hostedtoolcache df -h - uses: actions/checkout@v4 From 04cf518b07ba83ea21db943775689a24bbc1aec5 Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 16:22:11 +0200 Subject: [PATCH 19/22] Delete swift. Time it. --- .github/workflows/run_test.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/run_test.yml b/.github/workflows/run_test.yml index e1500d88..ff63ddaa 100644 --- a/.github/workflows/run_test.yml +++ b/.github/workflows/run_test.yml @@ -22,16 +22,14 @@ jobs: run: | df -h DOWNLOAD_URL="https://github.com/SUPERCILEX/fuc/releases/download/3.1.1/x86_64-unknown-linux-gnu-rmz" - curl --location --output rmz "$DOWNLOAD_URL" + time curl --location --output rmz "$DOWNLOAD_URL" chmod +x rmz sudo mv rmz /usr/bin/rmz rmz --version - sudo rmz --force \ - /usr/local/lib/android \ - || true - # Can be deleted for another 5G: - # /opt/hostedtoolcache + sudo time rmz --force \ + /usr/share/swift || true + # Can be deleted: https://dev.to/mathio/squeezing-disk-space-from-github-actions-runners-an-engineers-guide-3pjg df -h - uses: actions/checkout@v4 From db9dfb824d3698b3e2ad0574ec61adafd52696dd Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Tue, 19 Aug 2025 16:40:34 +0200 Subject: [PATCH 20/22] Add CACHEDIR.TAG to tox cache key to improve caching of tox envs --- .github/workflows/run_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run_test.yml b/.github/workflows/run_test.yml index ff63ddaa..a071dd8b 100644 --- a/.github/workflows/run_test.yml +++ b/.github/workflows/run_test.yml @@ -42,7 +42,7 @@ jobs: cache-name: cache-tox-data with: path: .tox - key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('pyproject.toml', 'tox.ini') }} + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('pyproject.toml', 'tox.ini', '.tox/**/CACHEDIR.TAG') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- From d91cfb02af5471d22a579b5e4c6e97bfe05c8ae2 Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Wed, 20 Aug 2025 08:55:29 +0200 Subject: [PATCH 21/22] Move inference runs to 'extensive_test' --- .github/workflows/run_extensive_test.yml | 75 ++++++++++++++++++++++++ .github/workflows/run_test.yml | 14 +---- 2 files changed, 76 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/run_extensive_test.yml diff --git a/.github/workflows/run_extensive_test.yml b/.github/workflows/run_extensive_test.yml new file mode 100644 index 00000000..429774e4 --- /dev/null +++ b/.github/workflows/run_extensive_test.yml @@ -0,0 +1,75 @@ +# This workflow will install Python dependencies, run tests using tox +name: Extensive Tox Tests + +on: workflow_dispatch + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.10"] + + steps: + # Clean out runner data we don't use, should free up ~15 GB + - name: "Make space on runner by removing tools we don't need using rmz, a fast version of rm." + run: | + df -h + DOWNLOAD_URL="https://github.com/SUPERCILEX/fuc/releases/download/3.1.1/x86_64-unknown-linux-gnu-rmz" + time curl --location --output rmz "$DOWNLOAD_URL" + chmod +x rmz + sudo mv rmz /usr/bin/rmz + rmz --version + + sudo time rmz --force \ + /usr/share/swift || true + # Can be deleted: https://dev.to/mathio/squeezing-disk-space-from-github-actions-runners-an-engineers-guide-3pjg + df -h + + - uses: actions/checkout@v4 + + # https://github.com/actions/cache + - name: Restore tox dir cache and save after run + id: restore-tox + uses: actions/cache@v4 + env: + cache-name: cache-tox-data + with: + path: .tox + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('pyproject.toml', 'tox.ini', '.tox/*/CACHEDIR.TAG') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + + # https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + cache: 'pip' # caching pip dependencies + cache-dependency-path: | + pyproject.toml + tox.ini + + - name: Install python dependencies + run: | + python -m pip install tox + + - name: Fetch dataset (175M) + run: | + tox -e trainingdata + + - name: Run inference_CI + run: | + tox -e inference_CI + + - name: Run inference_multi_CI + run: | + tox -e inference_multi_CI + + # Show disk usage + - run: df -h + - run: du -hsc .tox/* ~/.cache/pip diff --git a/.github/workflows/run_test.yml b/.github/workflows/run_test.yml index a071dd8b..c8cef847 100644 --- a/.github/workflows/run_test.yml +++ b/.github/workflows/run_test.yml @@ -42,7 +42,7 @@ jobs: cache-name: cache-tox-data with: path: .tox - key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('pyproject.toml', 'tox.ini', '.tox/**/CACHEDIR.TAG') }} + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('pyproject.toml', 'tox.ini', '.tox/*/CACHEDIR.TAG') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- @@ -82,18 +82,6 @@ jobs: run: | tox -e bandit - - name: Run inference_CI - run: | - tox -e inference_CI - - # Takes too much time and space - # - name: Run inference_multi_CI - # run: | - # tox -e inference_multi_CI - # # Keeping this makes our cache ~7G, causing it to be evicted often. Rather caching pip, so this goes OK fast. - # - name: Don't cache inference_multi_CI tox dir - # run: rmz --force .tox/inference_multi_CI - # Show disk usage - run: df -h - run: du -hsc .tox/* ~/.cache/pip From f1c8376a387b19c99d2f208b6e4e1bc469925055 Mon Sep 17 00:00:00 2001 From: Lars Falk-Petersen Date: Wed, 20 Aug 2025 09:00:46 +0200 Subject: [PATCH 22/22] Don't need to clean disk for simple tests. --- .github/workflows/run_test.yml | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/.github/workflows/run_test.yml b/.github/workflows/run_test.yml index c8cef847..e320da69 100644 --- a/.github/workflows/run_test.yml +++ b/.github/workflows/run_test.yml @@ -17,21 +17,6 @@ jobs: python-version: ["3.10"] steps: - # Clean out runner data we don't use, should free up ~15 GB - - name: "Make space on runner by removing tools we don't need using rmz, a fast version of rm." - run: | - df -h - DOWNLOAD_URL="https://github.com/SUPERCILEX/fuc/releases/download/3.1.1/x86_64-unknown-linux-gnu-rmz" - time curl --location --output rmz "$DOWNLOAD_URL" - chmod +x rmz - sudo mv rmz /usr/bin/rmz - rmz --version - - sudo time rmz --force \ - /usr/share/swift || true - # Can be deleted: https://dev.to/mathio/squeezing-disk-space-from-github-actions-runners-an-engineers-guide-3pjg - df -h - - uses: actions/checkout@v4 # https://github.com/actions/cache