This project was created as temporary solution to problem I saw a lot of people to have but it seems people at github have no intention of fixing and neither do I. I recommend looking at other projects or you could use this as starting point for your own action.
You could also +1 this issue
or take a look at this comment from the same issue actions/upload-artifact#290 (comment)
Action responsible for deleting old artifacts by setting expire duration.
Hopefuly this is just temporary solution till github implements this functionality natively.
Required for how long the artifacts should be kept.
Most of the human readable formats are supported 10 minutes
, 1hr 20mins
, 1week
.
Take a look at parse-duration for more information.
Serialized list of deleted artifacts. Empty []
when nothing is deleted
Run this action as cron. This won't delete artifacts of running workflows because they are persisted after workflow completion.
name: 'Delete old artifacts'
on:
schedule:
- cron: '0 * * * *' # every hour
jobs:
delete-artifacts:
runs-on: ubuntu-latest
steps:
- uses: kolpav/purge-artifacts-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
expire-in: 7days # Setting this to 0 will delete all artifacts
Only purge artifacts that start with tmp_
as a prefix.
with:
onlyPrefix: tmp_
Exclude any artifacts that start with prod_
as a prefix
with:
exceptPrefix: prod_
If you reach size limit, you can temporarily change to on: push
and run it immediately.
Even if the action succeeded, it will take a few more minutes for the artifacts to actually disappear.
I would take a look at other maintained projects and contribute to them.