From e50efa69f9f18a85e901c40917adb8e73be1eceb Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Thu, 23 Oct 2025 10:50:36 +0200 Subject: [PATCH 1/3] Improve our PR match logic --- .github/workflows/preview-build.yml | 64 +++++++++++++++++++---------- 1 file changed, 42 insertions(+), 22 deletions(-) diff --git a/.github/workflows/preview-build.yml b/.github/workflows/preview-build.yml index 4d8cb3c83..04b51f7b1 100644 --- a/.github/workflows/preview-build.yml +++ b/.github/workflows/preview-build.yml @@ -79,39 +79,59 @@ jobs: pull-requests: none id-token: none outputs: - content-source-match: ${{ steps.event-check.outputs.content-source-match != '' && steps.event-check.outputs.content-source-match || steps.match.outputs.content-source-match }} - content-source-next: ${{ steps.event-check.outputs.content-source-next != '' && steps.event-check.outputs.content-source-next || steps.match.outputs.content-source-next }} - content-source-current: ${{ steps.event-check.outputs.content-source-current != '' && steps.event-check.outputs.content-source-current || steps.match.outputs.content-source-current }} - content-source-edge: ${{ steps.event-check.outputs.content-source-edge != '' && steps.event-check.outputs.content-source-edge || steps.match.outputs.content-source-edge }} - content-source-speculative: ${{ steps.event-check.outputs.content-source-speculative != '' && steps.event-check.outputs.content-source-speculative || steps.match.outputs.content-source-speculative }} + content-source-match: ${{ format('{0}{1}{2}', steps.pr-check.outputs.content-source-match, steps.push-check.outputs.content-source-match, steps.merge-group-check.outputs.content-source-match) }} + content-source-next: ${{ format('{0}{1}{2}', steps.pr-check.outputs.content-source-next, steps.push-check.outputs.content-source-next, steps.merge-group-check.outputs.content-source-next) }} + content-source-current: ${{ format('{0}{1}{2}', steps.pr-check.outputs.content-source-current, steps.push-check.outputs.content-source-current, steps.merge-group-check.outputs.content-source-current) }} + content-source-edge: ${{ format('{0}{1}{2}', steps.pr-check.outputs.content-source-edge, steps.push-check.outputs.content-source-edge, steps.merge-group-check.outputs.content-source-edge) }} + content-source-speculative: ${{ format('{0}{1}{2}', steps.pr-check.outputs.content-source-speculative, steps.push-check.outputs.content-source-speculative, steps.merge-group-check.outputs.content-source-speculative) }} steps: - - name: Not a push event - id: event-check - if: contains(fromJSON('["merge_group", "pull_request", "pull_request_target"]'), github.event_name) - # we always want to run for pull requests, but we do not want to indicate its either content source + - name: Find merge-group base branch + if: contains(fromJSON('["merge_group"]'), github.event_name) + id: merge-group-base-branch + run: | + BASE_BRANCH=$(basename "${{ github.event.merge_group.base_ref }}") + echo "base_ref=${BASE_BRANCH}" >> $GITHUB_OUTPUT + - name: Match for merge-group events + id: pr-check + if: contains(fromJSON('["pull_request", "pull_request_target"]'), github.event_name) + uses: elastic/docs-builder/actions/assembler-match@main + with: + ref_name: ${{ steps.merge-group-base-branch.outputs.base_ref }} + repository: ${{ github.repository }} + + - name: Match for PR events + id: pr-check + if: contains(fromJSON('["pull_request", "pull_request_target"]'), github.event_name) + uses: elastic/docs-builder/actions/assembler-match@main + with: + ref_name: ${{ github.base_ref }} + repository: ${{ github.repository }} + - name: Match for PR events debug + if: contains(fromJSON('["pull_request", "pull_request_target"]'), github.event_name) run: | - echo "content-source-match=true" >> $GITHUB_OUTPUT - echo "content-source-next=false" >> $GITHUB_OUTPUT - echo "content-source-current=false" >> $GITHUB_OUTPUT - echo "content-source-edge=false" >> $GITHUB_OUTPUT - echo "content-source-speculative=false" >> $GITHUB_OUTPUT + echo "ref=${{ github.base_ref }}" + echo "repo=${{ github.repository }}" + - name: Match for push events - id: match + id: push-check if: contains(fromJSON('["push"]'), github.event_name) uses: elastic/docs-builder/actions/assembler-match@main with: ref_name: ${{ github.ref_name }} repository: ${{ github.repository }} - - name: Debug + - name: Match for push events debug + if: contains(fromJSON('["push"]'), github.event_name) run: | - echo "Non sensitive data, echo'ing here temporarily to validate this job before connecting it further into the build job" - echo "content-source-match=${{ steps.event-check.outputs.content-source-match != '' && steps.event-check.outputs.content-source-match || steps.match.outputs.content-source-match }}" - echo "content-source-next=${{ steps.event-check.outputs.content-source-next != '' && steps.event-check.outputs.content-source-next || steps.match.outputs.content-source-next }}" - echo "content-source-current=${{ steps.event-check.outputs.content-source-current != '' && steps.event-check.outputs.content-source-current || steps.match.outputs.content-source-current }}" - echo "content-source-current=${{ steps.event-check.outputs.content-source-edge != '' && steps.event-check.outputs.content-source-edge || steps.match.outputs.content-source-edge }}" - echo "content-source-speculative=${{ steps.event-check.outputs.content-source-speculative != '' && steps.event-check.outputs.content-source-speculative || steps.match.outputs.content-source-speculative }}" echo "ref=${{ github.ref_name }}" echo "repo=${{ github.repository }}" + + - name: Debug outputs + run: | + echo "content-source-match: ${{ format('{0}{1}{2}', steps.pr-check.outputs.content-source-match, steps.push-check.outputs.content-source-match, steps.merge-group-check.outputs.content-source-match) }}" + echo "content-source-next: ${{ format('{0}{1}{2}', steps.pr-check.outputs.content-source-next, steps.push-check.outputs.content-source-next, steps.merge-group-check.outputs.content-source-next) }}" + echo "content-source-current: ${{ format('{0}{1}{2}', steps.pr-check.outputs.content-source-current, steps.push-check.outputs.content-source-current, steps.merge-group-check.outputs.content-source-current) }}" + echo "content-source-edge: ${{ format('{0}{1}{2}', steps.pr-check.outputs.content-source-edge, steps.push-check.outputs.content-source-edge, steps.merge-group-check.outputs.content-source-edge) }}" + echo "content-source-speculative: ${{ format('{0}{1}{2}', steps.pr-check.outputs.content-source-speculative, steps.push-check.outputs.content-source-speculative, steps.merge-group-check.outputs.content-source-speculative) }}" check: runs-on: ubuntu-latest From 7a4b6fb63198ad6f22e0d2658e1f3174dc7c9327 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Thu, 23 Oct 2025 11:01:04 +0200 Subject: [PATCH 2/3] duplicate id --- .github/workflows/preview-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/preview-build.yml b/.github/workflows/preview-build.yml index 04b51f7b1..63e5af7e2 100644 --- a/.github/workflows/preview-build.yml +++ b/.github/workflows/preview-build.yml @@ -92,7 +92,7 @@ jobs: BASE_BRANCH=$(basename "${{ github.event.merge_group.base_ref }}") echo "base_ref=${BASE_BRANCH}" >> $GITHUB_OUTPUT - name: Match for merge-group events - id: pr-check + id: merge-group-check if: contains(fromJSON('["pull_request", "pull_request_target"]'), github.event_name) uses: elastic/docs-builder/actions/assembler-match@main with: From 8c4b5d6f909a0622e8701902aa98569330fc6ee1 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Thu, 23 Oct 2025 11:08:08 +0200 Subject: [PATCH 3/3] wrong if check on merge group --- .github/workflows/preview-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/preview-build.yml b/.github/workflows/preview-build.yml index 63e5af7e2..d5e5ba446 100644 --- a/.github/workflows/preview-build.yml +++ b/.github/workflows/preview-build.yml @@ -93,7 +93,7 @@ jobs: echo "base_ref=${BASE_BRANCH}" >> $GITHUB_OUTPUT - name: Match for merge-group events id: merge-group-check - if: contains(fromJSON('["pull_request", "pull_request_target"]'), github.event_name) + if: contains(fromJSON('["merge_group"]'), github.event_name) uses: elastic/docs-builder/actions/assembler-match@main with: ref_name: ${{ steps.merge-group-base-branch.outputs.base_ref }}