Skip to content

Detect deletion of slides #1

Detect deletion of slides

Detect deletion of slides #1

name: Verify Deleted Slide Entries
on:
push:
branches:
- main
pull_request:
types:
- opened
- synchronize
jobs:
verify-deleted-slides:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Install dependencies
run: |
# Install your dependencies here.
- name: Check if it's a pull request event
id: is-pull-request
run: |
if [ -n "$GITHUB_EVENT_NAME" ] && [ "$GITHUB_EVENT_NAME" == "pull_request" ]; then
echo "::set-output name=is_pull_request::true"
else
echo "::set-output name=is_pull_request::false"
fi
- name: Get base branch
id: base-branch
run: |
is_pull_request="${{ steps.is-pull-request.outputs.is_pull_request }}"
if [ "$is_pull_request" == "true" ]; then
base_branch=$(jq -r .pull_request.base.ref "$GITHUB_EVENT_PATH")
echo "::set-output name=base_branch::$base_branch"
else
echo "::set-output name=base_branch::"
fi
- name: List deleted slides
id: deleted-slides
run: |
base_branch="${{ steps.base-branch.outputs.base_branch }}"
if [ -n "$base_branch" ]; then
deleted_slides=$(git diff --name-only $base_branch...HEAD --diff-filter=D)
echo "::set-output name=deleted_slides::$deleted_slides"
else
echo "::set-output name=deleted_slides::"
fi
- name: Check for entries in book.toml
run: |
deleted_slides="${{ steps.deleted-slides.outputs.deleted_slides }}"
for slide in $deleted_slides; do
slide_filename=$(basename -- "$slide")
slide_name="${slide_filename%.*}"
entry_exists=$(grep -c "\[slide.$slide_name\]" book.toml)
if [ $entry_exists -eq 0 ]; then
echo "Error: Entry for slide $slide_name not found in book.toml"
exit 1
fi
done