From 05fe9509463c3bdee3c708b2974a8a73b5efead7 Mon Sep 17 00:00:00 2001 From: aaronabbott Date: Mon, 18 May 2026 19:06:08 +0000 Subject: [PATCH] ci: Enable GitHub Merge Queue support Part of open-telemetry/community#3436 For merge queues, we need to trigger github actions on merge_group events as mentioned in the docs. This updates workflows so they will trigger. Consistent with core PR: https://github.com/open-telemetry/opentelemetry-python/pull/5209 --- .github/workflows/changelog.yml | 2 ++ .github/workflows/check-links.yml | 15 ++++++++++++--- .github/workflows/ci.yml | 1 + .../src/generate_workflows_lib/ci.yml.j2 | 1 + .../src/generate_workflows_lib/misc.yml.j2 | 4 +++- .github/workflows/misc.yml | 4 +++- 6 files changed, 22 insertions(+), 5 deletions(-) diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index a016259291..c920c1c8c5 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -9,6 +9,7 @@ on: types: [opened, synchronize, reopened, labeled, unlabeled] branches: - main + merge_group: permissions: contents: read @@ -17,6 +18,7 @@ jobs: changelog: runs-on: ubuntu-latest if: | + github.event_name != 'merge_group' && !contains(github.event.pull_request.labels.*.name, 'Skip Changelog') && github.actor != 'otelbot[bot]' diff --git a/.github/workflows/check-links.yml b/.github/workflows/check-links.yml index 6a895980ba..e3ace69f2d 100644 --- a/.github/workflows/check-links.yml +++ b/.github/workflows/check-links.yml @@ -13,6 +13,12 @@ on: - '**/*.rst' - '.github/workflows/check-links.yml' - '.github/workflows/check_links_config.json' + merge_group: + paths: + - '**/*.md' + - '**/*.rst' + - '.github/workflows/check-links.yml' + - '.github/workflows/check_links_config.json' permissions: contents: read @@ -21,6 +27,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} cancel-in-progress: true +env: + DIFF_RANGE: ${{ github.event_name == 'merge_group' && format('{0}...{1}', github.event.merge_group.base_sha, github.event.merge_group.head_sha) || format('origin/{0}...HEAD', github.base_ref) }} + jobs: check-links: runs-on: ubuntu-latest @@ -53,14 +62,14 @@ jobs: ${{ steps.changed-files.outputs.all_changed_files }} \ || { echo "Check that anchor links are lowercase"; exit 1; } - - name: Check new links only on pull requests - if: steps.changed-files.outputs.any_changed == 'true' && github.event_name == 'pull_request' + - name: Check new links + if: steps.changed-files.outputs.any_changed == 'true' && (github.event_name == 'pull_request' || github.event_name == 'merge_group') run: | # Extract URLs only from added lines in the diff to avoid # rate limiting when checking all links in large files like # CHANGELOG.md. Only new/changed links are checked on PRs; # pushes to main still check all links in changed files. - git diff "origin/${{ github.base_ref }}...HEAD" -- \ + git diff "$DIFF_RANGE" -- \ ${{ steps.changed-files.outputs.all_changed_files }} \ | grep '^+' | grep -v '^+++' \ | grep -oP 'https?://[^\s\)\]\"'"'"'`>]+' \ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a1963283de..5096769099 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,6 +8,7 @@ on: branches: - 'main' pull_request: + merge_group: permissions: contents: read diff --git a/.github/workflows/generate_workflows_lib/src/generate_workflows_lib/ci.yml.j2 b/.github/workflows/generate_workflows_lib/src/generate_workflows_lib/ci.yml.j2 index 746adf13b6..4d785f304b 100644 --- a/.github/workflows/generate_workflows_lib/src/generate_workflows_lib/ci.yml.j2 +++ b/.github/workflows/generate_workflows_lib/src/generate_workflows_lib/ci.yml.j2 @@ -8,6 +8,7 @@ on: branches: - 'main' pull_request: + merge_group: permissions: contents: read diff --git a/.github/workflows/generate_workflows_lib/src/generate_workflows_lib/misc.yml.j2 b/.github/workflows/generate_workflows_lib/src/generate_workflows_lib/misc.yml.j2 index 7be174ba56..c6887a5ba8 100644 --- a/.github/workflows/generate_workflows_lib/src/generate_workflows_lib/misc.yml.j2 +++ b/.github/workflows/generate_workflows_lib/src/generate_workflows_lib/misc.yml.j2 @@ -41,7 +41,9 @@ jobs: {%- endif %} {%- if job_data == "docs" %} if: | - github.event.pull_request.user.login != 'otelbot[bot]' && github.event_name == 'pull_request' + github.event_name == 'merge_group' || + (github.event_name == 'pull_request' && + github.event.pull_request.user.login != 'otelbot[bot]') {%- endif %} steps: - name: Checkout repo @ SHA - ${% raw %}{{ github.sha }}{% endraw %} diff --git a/.github/workflows/misc.yml b/.github/workflows/misc.yml index 8974f41b12..e4bbb9d47d 100644 --- a/.github/workflows/misc.yml +++ b/.github/workflows/misc.yml @@ -70,7 +70,9 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 30 if: | - github.event.pull_request.user.login != 'otelbot[bot]' && github.event_name == 'pull_request' + github.event_name == 'merge_group' || + (github.event_name == 'pull_request' && + github.event.pull_request.user.login != 'otelbot[bot]') steps: - name: Checkout repo @ SHA - ${{ github.sha }} uses: actions/checkout@v4