Skip to content

Releases

v2.0.0 — three breaking changes, each with its reason

Choose a tag to compare

@jlumbroso jlumbroso released this 17 Sep 06:49

Breaking changes

  1. swap-storage now defaults to false. Closes #12 — reported and diagnosed by @zaikunzhang, whose proposed documentation fallback became the new FAQ. Removing swap can kill a job under memory pressure with no error pointing back at the cleanup step; a default should not break something that elementary.
  2. tool-cache is renamed preinstalled-runtimes. The old name still works until v3.0.0 and prints a deprecation warning. (Its default is unchanged: false, as it has been since 2022.) The new name says what actually breaks when you enable it: the runtimes that actions/setup-node, setup-python, setup-go, and setup-ruby rely on.
  3. Specific options now override general ones. dotnet: false exempts .NET from every removal path, including large-packages. Fixes #33 — reported by @ashleney; the overlap was first reported by @gmij in #6, and @ax3l explained the overlapping removal paths and a workaround. The policy is explicit, and this release applies it to .NET; future subject options add and test their own exemptions.

Upgrading from v1 to v2

Most workflows need no change.

  • If you set tool-cache:, rename it to preinstalled-runtimes:. The old name still works until v3.0.0 and prints a warning.
  • If you relied on swap being removed by default, add swap-storage: true. It now defaults to false, because removing swap can kill a job under memory pressure with no error pointing back here (#12).
  • If you set dotnet: false and were surprised that .NET was still removed, that is fixed — a specific option now overrides a general one (#33).

Also in this release

A README FAQ ("what are the possible side-effects of these settings?"), CONTRIBUTING.md, and a workflow example for running cleanup conditionally (#22). The reasons behind every design decision live in docs/adr/ — including ADR-0007, the record of this release's default change, written the day it was decided.

v1.3.2 — security fix and the decision records

Choose a tag to compare

@sherd-of-lumbroso sherd-of-lumbroso released this 17 Sep 04:41

Fixes the template-injection pattern in input handling (#51, by @nbuckwalt).

Also adds docs/adr/ — the reasoning behind this action: why it exists, what it inherited from apache/flink and ShubhamTatvamasi, what it deliberately does not do, and what is still open.

No behaviour changes. The swap-storage default change ships in the next release.

v1.3.1

Choose a tag to compare

@jlumbroso jlumbroso released this 27 Oct 03:17
54081f1

What's Changed

  • Remove haskell from different directory by @Napster134 in #20

New Contributors

  • @Napster134 made their first contribution in #20

Full Changelog: v1.3.0...v1.3.1

v1.3.0

Choose a tag to compare

@jlumbroso jlumbroso released this 29 Sep 04:56

What's Changed

  • Add Docker image removal option by @rake5k in #5
  • Allow fails in Remove large packages by @kfir4444 in #8
  • Fix for google-cloud-sdk renamed to google-cloud-cli by @andreped in #18
  • Fix errors related to executing dotnet by @ywt114 in #16
  • Fix large packages aspnetcore #9 by @hirnidrin in #11

New Contributors

Full Changelog: v1.2.0...v1.3.0

Fixed the `hhvm` missing dependency

Choose a tag to compare

@jlumbroso jlumbroso released this 08 Dec 20:52
76866db

Thanks to @gruve-p, This fixes issue #1, which failed because the hhvm package was removed from the distro.

Don't hesitate to open issues or submit pull requests!

New `tool-cache` option, v1.1.0

Choose a tag to compare

@jlumbroso jlumbroso released this 27 Jun 21:38

This version introduces the tool-cache option suggested by @miketimofeev, which removes the ~6GB tools cache (Node, Go, Python, Ruby, ...) that is preinstalled in GitHub Actions runners. This brings the total amount of space this extension can free to 31 GB.

Unlike the other options, since tool-cache can uninstall tools that are likely to be useful, it defaults to false, and must be explicitly set to true. In other words, this action:

name: Free Disk Space (Ubuntu)
on: push

jobs:
  free-disk-space:
    runs-on: ubuntu-latest
    steps:

    - name: Free Disk Space (Ubuntu)
      uses: jlumbroso/free-disk-space@main
      with:
        # this might remove tools that are actually needed,
        # when set to "true" but frees about 6 GB
        tool-cache: true
        
        # all of these default to true, but feel free to set to
        # "false" if necessary for your workflow
        android: true
        dotnet: true
        haskell: true
        large-packages: true
        swap-storage: true

is equivalent to this:

name: Free Disk Space (Ubuntu)
on: push

jobs:
  free-disk-space:
    runs-on: ubuntu-latest
    steps:

    - name: Free Disk Space (Ubuntu)
      uses: jlumbroso/free-disk-space@main
      with:
        # this might remove tools that are actually needed,
        # when set to "true" but frees about 6 GB
        tool-cache: true

Please don't hesitate to suggest/request additional options.

Initial release, v1.0.0

Choose a tag to compare

@jlumbroso jlumbroso released this 22 Jun 15:47

This is the initial release of the "Free Disk Space" GitHub Action.

In this first version, it can clear up to 25 GB on a GitHub Actions Ubuntu runner. We will try to expand on the options to allow for freeing more disk space, and eventually to handle other runners besides Ubuntu/Linux.

This is the typical configuration:

name: Free Disk Space (Ubuntu)
on: push

jobs:
  free-disk-space:
    runs-on: ubuntu-latest
    steps:

    - name: Free Disk Space (Ubuntu)
      uses: jlumbroso/free-disk-space@main
      with:
        # all of these default to true, but feel free to set to
        # false if necessary for your workflow
        android: true
        dotnet: true
        haskell: true
        large-packages: true
        swap-storage: true