CI: artifacts
actions/upload-artifact and actions/download-artifact v4 and later work. ermite stores the artifacts; the runner serves them to the jobs.
ermite run artifacts <repo> <run>
ermite run download <repo> <run> [--name N]… [--dir D]
The run page lists them with download links.
Rules
- A job sees only the artifacts of its own run. A re-run that uploads again replaces the earlier one.
- Never served anonymously, even for a public repository:
repo:readto list and download,ci:writeto delete. - Contents use the shared blob store:
$ERMITE_DATA_DIR/blobs/objects/ci/by default, or the configured S3 bucket/prefix. Metadata stays in kv. Removed when they expire, or with their run or repository. - Legacy artifacts under
$ERMITE_DATA_DIR/ci/artifactsremain readable until expiry, with no copy or migration. Keep that tree until its last artifact expires. Changing backends does not move blob-backed artifacts; keep the backend stable while they are live. - An upload not finished when its job ends is dropped.
Limits
| Setting | Default |
|---|---|
ERMITE_CI_ARTIFACT_MAX (one artifact) |
5GiB |
ERMITE_CI_ARTIFACT_QUOTA (per repository) |
10GiB |
ERMITE_CI_ARTIFACT_RETENTION (max retention-days) |
90d |
Also: 32 unfinished uploads per job, 1000 artifacts per run. ERMITE_CI_ARTIFACTS=0 turns artifacts off.
Not supported
- Artifacts v3 (
@actions/artifactv1). - The REST endpoints
/actions/runs/{id}/artifactsand/actions/artifacts/{id}/zip:download-artifactwithrun-idandgithub-tokengets a 404.