Documentation augmentation #27261
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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. |