diff --git a/.gitea/workflows/dev.yaml b/.gitea/workflows/dev.yaml index 0c7f4dd..190d4b3 100644 --- a/.gitea/workflows/dev.yaml +++ b/.gitea/workflows/dev.yaml @@ -6,7 +6,38 @@ on: types: [opened,synchronize] jobs: + check-file-changes: + runs-on: ubuntu-latest + outputs: + should_run: ${{ steps.filter.outputs.should_run }} + steps: + - name: 🚚 Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: 📑 Check changed files + id: filter + run: | + CHANGED_FILES=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} || git diff --name-only HEAD~1 HEAD) + + MD_ONLY=true + for file in $CHANGED_FILES; do + if [[ ! $file =~ \.md$ ]]; then + MD_ONLY=false + break + fi + done + + if [ "$MD_ONLY" = false ] || [ -z "$CHANGED_FILES" ]; then + echo "should_run=true" >> $GITHUB_OUTPUT + else + echo "should_run=false" >> $GITHUB_OUTPUT + fi + build-and-deploy: + needs: check-file-changes + if: ${{ needs.check-file-changes.outputs.should_run == 'true' || github.event_name == 'workflow_dispatch' }} runs-on: ubuntu-latest permissions: contents: read