Clean Cloudflare R2 nightly build artifacts older than 10 days #10
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Clean Cloudflare R2 nightly build artifacts older than 10 days" | |
on: | |
schedule: | |
- cron: "0 0 * * *" # every day at 00:00 | |
workflow_dispatch: | |
jobs: | |
clean-cloudflare-r2: | |
runs-on: ubuntu-latest | |
environment: production | |
steps: | |
- name: install-aws-cli-action | |
uses: unfor19/install-aws-cli-action@v1 | |
- name: Delete object older than 10 days | |
run: | | |
# Get the list of objects in the 'latest' folder | |
OBJECTS=$(aws s3api list-objects --bucket ${{ secrets.CLOUDFLARE_R2_BUCKET_NAME }} --prefix "latest/" --query 'Contents[?LastModified<`'$(date -d "$current_date -10 days" -u +"%Y-%m-%dT%H:%M:%SZ")'`].{Key: Key}' --endpoint-url https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com | jq -c .) | |
# Create a JSON file for the delete operation | |
echo "{\"Objects\": $OBJECTS, \"Quiet\": false}" > delete.json | |
# Delete the objects | |
echo q | aws s3api delete-objects --bucket ${{ secrets.CLOUDFLARE_R2_BUCKET_NAME }} --delete file://delete.json --endpoint-url https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com | |
# Remove the JSON file | |
rm delete.json | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.CLOUDFLARE_R2_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.CLOUDFLARE_R2_SECRET_ACCESS_KEY }} | |
AWS_DEFAULT_REGION: auto | |
AWS_EC2_METADATA_DISABLED: "true" |