feat: clean page deployments

This commit is contained in:
Baptiste Augrain 2025-04-14 22:14:39 +02:00
parent aaf0b6eb90
commit 776a5d2d23
No known key found for this signature in database
GPG Key ID: D0F9263E966FE50B
3 changed files with 37 additions and 5 deletions

View File

@ -8,6 +8,7 @@ on:
env:
GH_REPOSITORIES: VSCodium/vscodium VSCodium/vscodium-insiders
PACKAGE_NAME: codium
PAGE_NAME: vscodium-repo
PROJECT_NAME: VSCodium
PROJECT_URL: https://github.com/VSCodium/vscodium
R2_BUCKET_NAME: vscodium-repo
@ -86,11 +87,10 @@ jobs:
retention-days: 1
- name: Deploy site
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
command: pages deploy _site --project-name=vscodium-repo
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
run: ./scripts/deploy.sh
- name: Clean packages
env:

View File

@ -14,6 +14,7 @@ This project can be forked and reconfigured to generate repositories from any pa
- `GH_REPOSITORIES` (`VSCodium/vscodium VSCodium/vscodium-insiders`)
- `PACKAGE_NAME` (`codium`)
- `PAGE_NAME` (`vscodium-repo`)
- `PROJECT_NAME` (`VSCodium`)
- `PROJECT_URL` (`https://github.com/VSCodium/vscodium`)
- `R2_BUCKET_NAME` (`vscodium-repo`)

31
scripts/deploy.sh Executable file
View File

@ -0,0 +1,31 @@
#!/usr/bin/env bash
set -e
npx wrangler pages deploy _site --project-name="${PAGE_NAME}"
DEPLOYMENTS=$( npx wrangler pages deployment list "${PAGE_NAME}" --json )
readarray -t DEPLOYMENTS_TO_DELETE < <( echo "${DEPLOYMENTS}" | jq -r '.result | sort_by(.created_on) | reverse | .[3:] | .[].id' )
echo "Found ${#DEPLOYMENTS_TO_DELETE[@]} deployments to delete"
for DEPLOYMENT_ID in "${DEPLOYMENTS_TO_DELETE[@]}"; do
if [ -n "${DEPLOYMENT_ID}" ]; then
echo "Deleting deployment: ${DEPLOYMENT_ID}"
RESPONSE=$( curl -X DELETE \
-H "Authorization: Bearer ${CLOUDFLARE_API_TOKEN}" \
"https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/pages/projects/${PAGE_NAME}/deployments/${DEPLOYMENT_ID}" )
# Check if deletion was successful
if echo "${RESPONSE}" | jq -e '.success' >/dev/null; then
echo "Successfully deleted deployment: ${DEPLOYMENT_ID}"
else
echo "Failed to delete deployment: ${DEPLOYMENT_ID}"
ERROR_MESSAGE=$(echo "${RESPONSE}" | jq -r '.errors[].message')
echo "Error: ${ERROR_MESSAGE}"
exit 1
fi
fi
done