Skip to content

Documentation augmentation #27261

Documentation augmentation

Documentation augmentation #27261

name: Request dispatched PR Build
on:
pull_request:
types: [ opened, reopened, synchronize, edited, labeled ]
# The PR dispatch workflow runs should not cancel each other!
# When opening a PR with labels (e.g., dependabot), we receive one "opened"
# and one or more "labeled" events. If we would cancel the workflow run
# for "opened" when receiving a "labeled", the PR build in
# graylog-project-internal would not be triggered.
#concurrency:
# group: ${{ github.workflow }}-${{ github.ref }}
# cancel-in-progress: true
jobs:
dispatchedPR:
name: Dispatch wait and check
runs-on: ubuntu-latest
steps:
- name: Check if PR edit changed deps string
if: ${{ github.event.action == 'edited' }}
id: pr-string-changed
continue-on-error: true
run: |
old_pr_string=$(grep -P '^/(jenkins-pr-deps|jpd|prd)' <<< "$OLD_PR_BODY" | \
grep -ioP '(Graylog2/\S+?#|https?://github.com/Graylog2/\S+?/pull/)[0-9]+' || true)
new_pr_string=$(grep -P '^/(jenkins-pr-deps|jpd|prd)' <<< "$NEW_PR_BODY" | \
grep -ioP '(Graylog2/\S+?#|https?://github.com/Graylog2/\S+?/pull/)[0-9]+' || true)
if [ "$old_pr_string" != "$new_pr_string" ]; then
echo "PR deps string change detected: \"$old_pr_string\" -> \"$new_pr_string\""
echo "Re-triggering PR build..."
exit 0
fi
exit 1
env:
OLD_PR_BODY: "${{ github.event.changes.body.from }}"
NEW_PR_BODY: "${{ github.event.pull_request.body }}"
- name: Check e2e-tests label
id: e2e-tests
run: |
has_label="$(jq -r '.labels[].name | select(. == "e2e-tests")' <<< "$PR_EVENT")"
{
if [ -n "$has_label" ]; then
echo "run=true"
else
echo "run=false"
fi
} | tee -a "$GITHUB_OUTPUT"
env:
PR_EVENT: "${{ toJSON(github.event.pull_request) }}"
- name: Dispatch job to graylog-project-internal
if: ${{ (github.event.action != 'edited' && (github.event.action != 'labeled' || github.event.label.name == 'e2e-tests')) || steps.pr-string-changed.outcome == 'success' }}
run: >
gh workflow run -R Graylog2/graylog-project-internal pr-build.yml --ref master
-f caller_repo=${{ github.repository }}
-f caller_pr_nr=${{ github.event.number }}
-f caller_base_branch=${{ github.base_ref || github.ref_name }}
-f caller_head_branch=${{ github.head_ref }}
-f head_sha=${{ github.event.pull_request.head.sha }}
-f initial_actor="${{ github.actor }}/${{ github.triggering_actor }}"
-f e2e_tests=${{ steps.e2e-tests.outputs.run }}
env:
GITHUB_TOKEN: ${{ secrets.PAT_GRAYLOG_PROJECT_INTERNAL_WORKFLOW_RW }}
- name: Give dispatched build time to add its status
run: sleep 20
# This is mostly cosmetic. If this workflow finishes before the dispatched
# build creates the status on the PR, the build will show up green for a while.