Skip to content

ci: store workflow artifacts on self-hosted MinIO (DevinoSolutions/artifact) - #1

Merged
AminDhouib merged 1 commit into
mainfrom
chore/self-hosted-artifacts
Sep 11, 2026
Merged

ci: store workflow artifacts on self-hosted MinIO (DevinoSolutions/artifact)#1
AminDhouib merged 1 commit into
mainfrom
chore/self-hosted-artifacts

Conversation

@AminDhouib

Copy link
Copy Markdown
Member

Moves every actions/upload-artifact / actions/download-artifact step to
DevinoSolutions/artifact, a drop-in
replacement that stores artifacts on Devino's own MinIO (storage.devino.ca) instead
of GitHub's metered artifact storage.

Why: the org is on the free plan (500 MB artifact quota) with a $0 hard-stop Actions
budget, so once the quota is exceeded every artifact upload is rejected. Self-hosted
runners do not avoid this; the upstream action always writes to GitHub's blob store.

What changed

  • uses: lines swapped to DevinoSolutions/artifact/upload@v1 / download@v1; all inputs are compatible.
  • Jobs that upload/download now request id-token: write, because the action authenticates to MinIO with the job's GitHub OIDC token (no secrets). Where a job had no permissions block, permissions: write-all is added, which equals the repo's current default token scopes plus id-token.
  • retention-days is honoured via bucket lifecycle rules (rounded up to 1/3/5/7/14/30 days; anything above 30 keeps the 90-day default).

Artifacts are listed in each job's step summary as s3://gh-artifacts/<owner>/<repo>/<run_id>/<name>.tgz and can be fetched with mc or browsed at minio-console.devino.ca.

@AminDhouib
AminDhouib merged commit d515f4f into main Sep 11, 2026
3 checks passed
@AminDhouib
AminDhouib deleted the chore/self-hosted-artifacts branch September 11, 2026 21:14
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.

1 participant