diff --git a/README.md b/README.md index ce98dae..b17e190 100644 --- a/README.md +++ b/README.md @@ -23,3 +23,37 @@ Requires `nix`, `jq`, `curl`, `sed`, `gunzip`, `tar` and `coreutils` to be in th ``` For more details see the [action.yaml](./action.yml) file. + +**How it looks:** + +[!example comment generated by this action](./example-comment.png) + +
Example output as text: + +# Flake output sizes + +**Definitions:** + +- `Name`: the name of the package/configuration. +- `Size`: the closure size (size on disk/NAR size + all transitive dependencies). +- `NAR Size`: the size of the build output (package without the dependencies). +- `[NAR] Size Change`: the amount changed compared to the main branch. + +**Tips on reading this data:** + +- For NixOS configurations you generally care only about the `Size` (closure size/size on disk). + - Reduce the `Size` by disabling unneeded services/default packages. +- For Packages you care about both the `Size` and the `NAR Size`. + - Reduce the `NAR Size` by reducing the size of the build outputs, e.g. don't copy unnecessary data to the $out dir, optimize binaries for size, etc. + - Reduce the `Size` by reducing the dependencies (e.g. `buildInputs`). + - Don't worry too much about size, some dependencies are deduplicated, e.g. `glibc` adds ~40MiB to the `Size`, but is generally shared by ~every binary on the system, so, chances are, you are already including it from somewhere else and statically linking with e.g. `musl` is not gonna improve things. +# NixOS Configurations + +| Name | Size | Size Change | NAR Size | NAR Size Change | +|------|-----:|------------:|---------:|----------------:| +| `gemini` | 11Gi | -2.4Mi | 28Ki | 0 | +| `leo` | 1.6Gi | 0 | 25Ki | 0 | +| `libra` | 9.4Gi | -2.4Mi | 28Ki | 0 | +| `taurus` | 7.6Gi | 0 | 34Ki | 0 | + +
diff --git a/example-comment.png b/example-comment.png new file mode 100644 index 0000000..0c95a9b Binary files /dev/null and b/example-comment.png differ