name: util | get docs changes on: workflow_call: outputs: changes_outside_docs: description: "Changes outside docs" value: ${{ jobs.get_docs_changes.outputs.changes_outside_docs }} env: EXCLUDED_FILE_PATTERNS: '^docs/|^README.md|^CONTRIBUTING.md|^LICENSE\.txt|\.editorconfig|\.gitignore|get_docs_changes.yml' jobs: get_docs_changes: name: docs changes runs-on: ubuntu-latest outputs: changes_outside_docs: ${{ steps.check_changes.outputs.changes_outside_docs }} steps: - name: Checkout code uses: actions/checkout@master with: fetch-depth: 0 - name: Check changes outside docs id: check_changes run: | echo "base.sha: ${{ github.event.pull_request.base.sha }}" echo "head.sha: ${{ github.event.pull_request.head.sha }}" merge_base_sha=$(git merge-base ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }}) echo "merge_base_sha: $merge_base_sha" changes_outside_docs=$( git diff --name-only $merge_base_sha ${{ github.event.pull_request.head.sha }} \ | grep -vE "${{ env.EXCLUDED_FILE_PATTERNS }}" || true ) echo $changes_outside_docs if [ -z "$changes_outside_docs" ]; then echo "No changes outside docs. Skipping tests." echo "changes_outside_docs=false" >> $GITHUB_OUTPUT else echo "Changes detected outside docs." echo "changes_outside_docs=true" >> $GITHUB_OUTPUT fi