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