-
Notifications
You must be signed in to change notification settings - Fork 571
Infra: Enable Merge Queue with required CI gates #3832
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
335383f
13c9aab
2d89d15
ddd2c47
edc2f40
5620dd2
c30c0f8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -25,6 +25,7 @@ name: "ASF Allowlist Check" | |
|
|
||
| on: | ||
| pull_request: | ||
| merge_group: | ||
| push: | ||
| branches: | ||
| - main | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,3 @@ | ||
| # | ||
| # Licensed to the Apache Software Foundation (ASF) under one | ||
| # or more contributor license agreements. See the NOTICE file | ||
|
|
@@ -24,19 +24,7 @@ | |
| branches: | ||
| - 'main' | ||
| pull_request: | ||
| paths: | ||
| - '**' # Include all files and directories in the repository by default. | ||
| - '!.github/workflows/**' # Exclude all workflow files | ||
| - '.github/workflows/python-ci.yml' # except the current file. | ||
| - '!.github/ISSUE_TEMPLATE/**' # Exclude files and directories that don't impact tests or code like templates, metadata, and documentation. | ||
| - '!.gitignore' | ||
| - '!.asf.yml' | ||
| - '!mkdocs/**' | ||
| - '!.gitattributes' | ||
| - '!README.md' | ||
| - '!CONTRIBUTING.md' | ||
| - '!LICENSE' | ||
| - '!NOTICE' | ||
|
Comment on lines
-27
to
-39
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. i think this is a ok trade off to enable merge queue. merge queue requires checks to always run |
||
| merge_group: | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
@@ -127,3 +115,17 @@ | |
| run: uv sync --directory . --only-group dev --no-install-project | ||
| - name: Mirror wheel CIBW_TEST_COMMAND | ||
| run: uv run --directory . pytest tests/avro/test_decoder.py | ||
|
|
||
| python-ci-required: | ||
| if: ${{ always() }} | ||
| needs: [lint-and-unit-test, windows-unit-test, cibw-dev-env-smoke-test] | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Verify Python CI jobs succeeded | ||
| env: | ||
| RESULTS: ${{ join(needs.*.result, ' ') }} | ||
| run: | | ||
| read -ra results <<< "$RESULTS" | ||
| for result in "${results[@]}"; do | ||
| test "$result" = "success" | ||
| done | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -24,6 +24,7 @@ on: | |
| branches: ["main"] | ||
| pull_request: | ||
| branches: ["**"] | ||
| merge_group: | ||
|
|
||
| permissions: {} | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -62,6 +62,13 @@ lives under `pyiceberg/`, organized by concern rather than by engine: | |
| - Use existing test fixtures when possible. | ||
| - We have a strong bias towards integration testing over mocks. Mocks should be avoided whenever possible and should only be used if similar, existing tests are using mocks. | ||
|
|
||
| ### Required CI and Merge Queue | ||
|
|
||
| - Keep the `required_status_checks.contexts` list in `.asf.yaml` synchronized whenever a required job/check is added, renamed, or removed. Each entry is a job/check context name, not a workflow filename. | ||
| - Verify that every required context reports for both `pull_request` and `merge_group`. Its producer workflow must run on both events. | ||
| - When a workflow uses an aggregate required job, such as `python-ci-required`, keep `if: always()` and its `needs` list in sync with every job whose result should block merging. | ||
| - Do not use `pull_request` path filters in workflows that produce required contexts. A skipped workflow does not report its required context, which blocks pull requests and causes Merge Queue entries to time out. | ||
|
|
||
|
Comment on lines
+65
to
+71
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. added some rules here so agents can understand the links between files |
||
| ## Commands | ||
|
|
||
| - **Install / set up dev env:** `make install` (installs `uv`, syncs all extras, builds Cython, installs pre-commit hooks) | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed so merge queue is the source of truth