From d3a098d7bd198cb43b41c14677abb4c3e4e88637 Mon Sep 17 00:00:00 2001 From: Joey Orlando Date: Fri, 20 Jan 2023 13:23:06 +0100 Subject: [PATCH] add small script + github action to check that public docs updated (#1177) This PR adds a new GitHub Action which will run on PRs against `dev` and `main`. The GitHub action will not run if the label of "no public docs" has been applied to the PR in question: Otherwise, it will check to see if any changes were made to either the `engine` or `grafana-plugin` directories. If so, it will then check whether changes were also made to the `docs` directory. If not, it will fail the job and block the build. --- .github/verify-public-docs-updated.sh | 23 +++++++++++++++++++ .../workflows/verify-public-docs-updated.yml | 20 ++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100755 .github/verify-public-docs-updated.sh create mode 100644 .github/workflows/verify-public-docs-updated.yml diff --git a/.github/verify-public-docs-updated.sh b/.github/verify-public-docs-updated.sh new file mode 100755 index 00000000..6210871b --- /dev/null +++ b/.github/verify-public-docs-updated.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +ENGINE_DIR="engine" +UI_DIR="grafana-plugin" +PUBLIC_DOCS_DIR="docs" + +DIRS_CHANGED=$(git diff HEAD~1 --name-only | xargs dirname | sort | uniq) # https://stackoverflow.com/a/73149899/3902555 + +if [[ $DIRS_CHANGED =~ $ENGINE_DIR ]] || [[ $DIRS_CHANGED =~ $UI_DIR ]]; then + echo "Changes were made to the ${ENGINE_DIR} and/or ${UI_DIR} directories" + + # check if we have any changes to the public docs directory as well. If not, + if [[ ! $DIRS_CHANGED =~ $PUBLIC_DOCS_DIR ]]; then + echo "Changes were not made to the public documentation (${PUBLIC_DOCS_DIR} directory). Either update the documentation accordingly with your changes, or add the 'no public docs' label if changes to the public docs are not necessary for your PR." + exit 1 + else + echo "Changes were also made to the public documentation. Thank you!" + exit 0 + fi + +else + echo "Changes were not made to either the ${ENGINE_DIR} or ${UI_DIR} directories" +fi diff --git a/.github/workflows/verify-public-docs-updated.yml b/.github/workflows/verify-public-docs-updated.yml new file mode 100644 index 00000000..657082a3 --- /dev/null +++ b/.github/workflows/verify-public-docs-updated.yml @@ -0,0 +1,20 @@ +name: Verify public documentation updated + +on: + pull_request: + types: [assigned, opened, synchronize, reopened, labeled, unlabeled] + branches: + - main + - dev + +jobs: + verify-public-docs-updated: + name: Verify public documentation updated + # Don't run this job if the "no public docs" label is applied to the PR + # https://github.com/orgs/community/discussions/26712#discussioncomment-3253012 + if: "!contains(github.event.pull_request.labels.*.name, 'no public docs')" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Public documentation checker + run: ./.github/verify-public-docs-updated.sh