From 2fb437d290525ea6f2908ff0bb27c42db8a61f3f Mon Sep 17 00:00:00 2001 From: Jan Nidzwetzki Date: Thu, 30 Nov 2023 10:59:17 +0100 Subject: [PATCH] Add CI check for loader changes Changes in the loader code require a restart of PostgreSQL during upgrades. This check creates awareness of these changes and allows the coordination of the update process early. --- .github/workflows/loader-check.yaml | 40 +++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/loader-check.yaml diff --git a/.github/workflows/loader-check.yaml b/.github/workflows/loader-check.yaml new file mode 100644 index 00000000000..d55801e9694 --- /dev/null +++ b/.github/workflows/loader-check.yaml @@ -0,0 +1,40 @@ +name: Check for loader changes +"on": + pull_request: + types: [opened, synchronize, reopened, edited] +jobs: + check_changelog_file: + name: Check for loader changes + runs-on: ubuntu-latest + steps: + - name: Checkout source + uses: actions/checkout@v3 + + - name: Check if the pull request changes the loader + shell: bash --norc --noprofile {0} + env: + GH_TOKEN: ${{ github.token }} + BODY: ${{ github.event.pull_request.body }} + PR_NUMBER: ${{ github.event.pull_request.number }} + run: | + # Get the list of modified files in this pull request + files=$(gh pr view $PR_NUMBER --json files --jq '.files.[].path') + + # Ignore loader changes if acknowledged + if echo "$BODY" | egrep -qsi "Acknowledge-check:[[:space:]]*loader-change"; then + exit 0 + fi + + # Check for loader changes + if echo "${files}" | grep -Eq "^src/loader/.+$"; then + echo "Warning: This PR changes the loader. Therefore, upgrading to the next TimescaleDB" + echo "version requires a restart of PostgreSQL. Please coordinate the release with the" + echo "cloud team before merging." + echo + echo "After the release is coordinated, add:" + echo + echo "Acknowledge-check: loader-change" + echo + echo "to the PR message to acknowledge this warning." + exit 1 + fi