Harshit Nagar
Harshit Nagar

Reputation: 438

What is the difference between github container registry and github artifact space?

I uploaded many GitHub artifacts, causing the GitHub free storage space (50 GB) to run out.
Most of these artifacts were copies or had very small changes.

Assuming that these were stored in layers as diffs from parent images (like docker images are stored), it was unlikely that 50 GB of space would run out.

Are GitHub artifacts stored as individual files every time a workflow is run ?
Are GitHub packages stored in the same way ?
Is the storage for packages and artifacts the same ?

Upvotes: 2

Views: 1621

Answers (1)

VonC
VonC

Reputation: 1329672

GitHub's artifacts are usually linked with:

  • release: artifacts could be another term for "assets": files associated with a particular GitHub release (see Update a release asset for instance).
  • or workflow artifacts: An artifact is a file or collection of files produced during a workflow run. It allows you to persist data after a job has completed, and share that data with another job in the same workflow.
    As Edward Thomson (from GitHub) notes: "because they're meant to be used to move data between jobs in a workflow, workflow assets are not permanent".

GitHub Container Registry is dedicated to store and manage Docker and OCI images.

Only the latter benefit from incremental storage through layers.
The former would be uploaded as a all for each file.

From the comments below:

  • A workflow where one authenticates to GHCR (GitHub Container Registry) and push to the registry an image (docker push ghcr.io/OWNER/IMAGE_NAME:tag) will benefit from an incremental layer-by-layer storage.
  • This differ from a regular asset upload, where the artifact is stored as a all.

Upvotes: 2

Related Questions