Skip to content

Clean up preview site #29

Clean up preview site

Clean up preview site #29

name: Clean up preview site
on: workflow_dispatch
jobs:
delete:
name: Clean up preview site
runs-on: ubuntu-latest
env:
CI: true
PREVIEW_DIR: preview
DAYS_OLD: 12
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
ref: gh-pages
fetch-depth: 0
- name: Delete old preview directories
run: |
set -x
DATE_FROM_DAYS_AGO=`date --date="${{env.DAYS_OLD}} days ago" +"%Y"-"%m"-"%d" || date -v-${{env.DAYS_OLD}}d +"%Y"-"%m"-"%d"`;
echo "Days ago:"
echo $DATE_FROM_DAYS_AGO
echo "Preview dirs:"
echo $(find ${{ env.PREVIEW_DIR }} -mindepth 1 -maxdepth 1 -type d -print)
echo "Before commit:"
echo $(git log --before=$DATE_FROM_DAYS_AGO | tail -1)
for i in $(find ${{ env.PREVIEW_DIR }} -mindepth 1 -maxdepth 1 -type d -print); do
echo "Git log before date:"
echo $(git log --before=$DATE_FROM_DAYS_AGO $i | tail -1)
if [[ $(git log --before=${DATE_FROM_DAYS_AGO} $i | tail -1) ]]; then
echo "Deleting directory $i"
rm -rf $i
fi
done
if [[ $(git status --porcelain --untracked-files=no | wc -l) -eq 0 ]]; then
echo "No directories to clean up"
exit 0
fi
# git config --local user.name 'GitHub Actions'
# git config --local user.email '[email protected]'
# git add ${{ env.PREVIEW_DIR }}
# git commit --quiet -m "Clean up old preview directories"
# git push
shell: bash
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}