Skip to content

ci: cap release build artifact retention at 1 day - #5

Open
pmudry wants to merge 1 commit into
mainfrom
ci/limit-artifact-retention
Open

ci: cap release build artifact retention at 1 day#5
pmudry wants to merge 1 commit into
mainfrom
ci/limit-artifact-retention

Conversation

@pmudry

@pmudry pmudry commented Jul 30, 2026

Copy link
Copy Markdown

Follow-up to the org-wide Actions storage quota being exhausted, which broke upload-artifact in unrelated repos (dc-isc GitHub Pages deploys were failing with Artifact storage quota has been hit).

Why

Both release jobs upload a build artifact with the default 90-day retention, then publish the same files from desktop/dist to the GitHub Release in the very next step:

artifact path release path
windows desktop/dist/ISCSteam*.exe, latest.yml, *.blockmap identical
linux desktop/dist/ISCSteam*.AppImage, latest-linux.yml identical

Release assets do not count against the org Actions storage quota, but artifacts do. This repo had accumulated 3.2 GB across 27 live artifacts — the single largest consumer in ISC-HEI, against a 2 GB org-wide quota on the Team plan.

Those 27 artifacts have already been deleted; this change stops them coming back (~350 MB per tagged release).

What

retention-days: 1 on both upload-artifact steps. The artifacts are still produced, so manual workflow_dispatch runs — where the release step is skipped by if: startsWith(github.ref, refs/tags/) — stay downloadable for debugging. They just no longer linger for 90 days.

No change to release publishing: every asset users download is untouched.

Note for the reviewer

If a 1-day window is too tight for debugging a dispatch build over a weekend, retention-days: 7 is a one-word change and still cuts storage by ~92% versus the default.

A stricter alternative, if you would rather these never accrue on tagged builds, is to skip the upload entirely when a release is being published:

- name: Upload build artifact
  if: ${{ !startsWith(github.ref, refs/tags/) }}

I did not apply that here to keep the diff minimal.

The windows and linux release jobs each uploaded a build artifact with the
default 90-day retention, while publishing the very same files from
desktop/dist to the GitHub Release in the following step. Releases do not
count against the org Actions storage quota but artifacts do, so these
duplicates accumulated 3.2 GB across 27 artifacts and exhausted the org-wide
2 GB quota, breaking artifact upload in unrelated repositories.

The artifacts are still produced so that manual workflow_dispatch runs (where
the release step is skipped) remain downloadable, but they now expire after a
day.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants