Skip to content
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

Switch tests in ci to use Python Breeze #26612

Merged
merged 1 commit into from
Oct 3, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Switch tests in ci to use Python Breeze
This is the last big change in "Rewrite Breeze to Python".

Fixes: #23538
  • Loading branch information
potiuk committed Oct 3, 2022

Verified

This commit was signed with the committer’s verified signature.
mislav Mislav Marohnić
commit 9bf2d71f979454a991da4a7aeee371681a35a486
19 changes: 13 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -160,6 +160,7 @@ jobs:
default-constraints-branch: ${{ steps.selective-checks.outputs.default-constraints-branch }}
docs-filter: ${{ steps.selective-checks.outputs.docs-filter }}
skip-pre-commits: ${{ steps.selective-checks.outputs.skip-pre-commits }}
debug-resources: ${{ steps.selective-checks.outputs.debug-resources }}
source-head-repo: ${{ steps.source-run-info.outputs.source-head-repo }}
pull-request-labels: ${{ steps.source-run-info.outputs.pr-labels }}
in-workflow-build: ${{ steps.source-run-info.outputs.in-workflow-build }}
@@ -1059,10 +1060,11 @@ ${{ hashFiles('.pre-commit-config.yaml') }}"
- name: "Test Offline SQL generation"
run: ./scripts/ci/testing/run_offline_sql_test.sh
- name: "Tests: ${{needs.build-info.outputs.test-types}}"
run: ./scripts/ci/testing/ci_run_airflow_testing.sh
run: breeze testing tests --run-in-parallel
env:
PR_LABELS: "${{ needs.build-info.outputs.pull-request-labels }}"
IMAGE_TAG: ${{ env.IMAGE_TAG_FOR_THE_BUILD }}
DEBUG_RESOURCES: ${{ needs.build-info.outputs.debug-resources }}
- name: "Upload airflow logs"
uses: actions/upload-artifact@v3
if: failure()
@@ -1130,10 +1132,11 @@ ${{ hashFiles('.pre-commit-config.yaml') }}"
- name: "Test downgrade"
run: ./scripts/ci/testing/run_downgrade_test.sh
- name: "Tests: ${{needs.build-info.outputs.test-types}}"
run: ./scripts/ci/testing/ci_run_airflow_testing.sh
run: breeze testing tests --run-in-parallel
env:
PR_LABELS: "${{ needs.build-info.outputs.pull-request-labels }}"
IMAGE_TAG: ${{ env.IMAGE_TAG_FOR_THE_BUILD }}
DEBUG_RESOURCES: ${{ needs.build-info.outputs.debug-resources }}
- name: "Upload airflow logs"
uses: actions/upload-artifact@v3
if: failure()
@@ -1201,10 +1204,11 @@ ${{ hashFiles('.pre-commit-config.yaml') }}"
- name: "Test downgrade"
run: ./scripts/ci/testing/run_downgrade_test.sh
- name: "Tests: ${{needs.build-info.outputs.test-types}}"
run: ./scripts/ci/testing/ci_run_airflow_testing.sh
run: breeze testing tests --run-in-parallel
env:
PR_LABELS: "${{ needs.build-info.outputs.pull-request-labels }}"
IMAGE_TAG: ${{ env.IMAGE_TAG_FOR_THE_BUILD }}
DEBUG_RESOURCES: ${{ needs.build-info.outputs.debug-resources }}
- name: "Upload airflow logs"
uses: actions/upload-artifact@v3
if: failure()
@@ -1270,10 +1274,11 @@ ${{ hashFiles('.pre-commit-config.yaml') }}"
- name: "Test downgrade"
run: ./scripts/ci/testing/run_downgrade_test.sh
- name: "Tests: ${{needs.build-info.outputs.test-types}}"
run: ./scripts/ci/testing/ci_run_airflow_testing.sh
run: breeze testing tests --run-in-parallel
env:
PR_LABELS: "${{ needs.build-info.outputs.pull-request-labels }}"
IMAGE_TAG: ${{ env.IMAGE_TAG_FOR_THE_BUILD }}
DEBUG_RESOURCES: ${{ needs.build-info.outputs.debug-resources }}
- name: "Upload airflow logs"
uses: actions/upload-artifact@v3
if: failure()
@@ -1309,7 +1314,6 @@ ${{ hashFiles('.pre-commit-config.yaml') }}"
RUNS_ON: ${{ needs.build-info.outputs.runs-on }}
MYSQL_VERSION: ${{needs.build-info.outputs.default-mysql-version}}
POSTGRES_VERSION: ${{needs.build-info.outputs.default-postgres-version}}
TEST_TYPES: "Quarantined"
PYTHON_MAJOR_MINOR_VERSION: ${{ needs.build-info.outputs.default-python-version }}
if: needs.build-info.outputs.run-tests == 'true'
steps:
@@ -1345,9 +1349,12 @@ ${{ hashFiles('.pre-commit-config.yaml') }}"
env:
IMAGE_TAG: ${{ env.IMAGE_TAG_FOR_THE_BUILD }}
- name: "Tests: Quarantined"
run: ./scripts/ci/testing/ci_run_quarantined_tests.sh
run: breeze testing tests --run-in-parallel || true
env:
PR_LABELS: "${{ needs.build-info.outputs.pull-request-labels }}"
IMAGE_TAG: ${{ env.IMAGE_TAG_FOR_THE_BUILD }}
TEST_TYPES: "Quarantined"
DEBUG_RESOURCES: ${{ needs.build-info.outputs.debug-resources }}
- name: "Upload Quarantine test results"
uses: actions/upload-artifact@v3
if: always()
7 changes: 4 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -798,16 +798,17 @@ repos:
files: newsfragments/.*\.rst
entry: ./scripts/ci/pre_commit/pre_commit_newsfragments.py
pass_filenames: true
# We sometimes won't have newsfragments in the repo, so always run it so `check-hooks-apply` passes
# This is fast, so not too much downside
always_run: true
- id: update-breeze-cmd-output
name: Update output of breeze commands in BREEZE.rst
entry: ./scripts/ci/pre_commit/pre_commit_breeze_cmd_line.py
language: python
files: ^BREEZE\.rst$|^dev/breeze/.*$|^\.pre-commit-config\.yaml$
require_serial: true
pass_filenames: false
additional_dependencies: ['rich>=12.4.4', 'rich-click>=1.5']
# We sometimes won't have newsfragments in the repo, so always run it so `check-hooks-apply` passes
# This is fast, so not too much downside
always_run: true
- id: check-example-dags-urls
name: Check that example dags url include provider versions
entry: ./scripts/ci/pre_commit/pre_commit_update_example_dags_paths.py
21 changes: 18 additions & 3 deletions BREEZE.rst
Original file line number Diff line number Diff line change
@@ -689,8 +689,24 @@ API, Providers. This how our CI runs them - running each group in parallel to ot
replicate this behaviour.

Another interesting use of the ``breeze testing tests`` command is that you can easily specify sub-set of the
tests for Providers. ``breeze testing tests --test-type "Providers[airbyte,http]`` for example will only run
tests for airbyte and http providers.
tests for Providers.

For example this will only run provider tests for airbyte and http providers:

.. code-block:: bash

breeze testing tests --test-type "Providers[airbyte,http]``

You can also run parallel tests with ``--run-in-parallel`` flag - by default it will run all tests types
in parallel, but you can specify the test type that you want to run with space separated list of test
types passed to ``--test-types`` flag.

For example this will run API and WWW tests in parallel:

.. code-block:: bash

breeze testing tests --test-types "API WWW" --run-in-parallel


Here is the detailed set of options for the ``breeze testing tests`` command.

@@ -747,7 +763,6 @@ You can:
* Enter the interactive kubernetes test environment with ``breeze k8s shell`` and ``breeze k8s k9s`` command
* Run multi-cluster-operations ``breeze k8s list-all-clusters`` and
``breeze k8s delete-all-clusters`` commands as well as running complete tests in parallel
via ``breeze k8s run-complete-tests`` and export logs from all clusters to a temp directory
via ``breeze k8s dump-logs`` command

This is described in detail in `Testing Kubernetes <TESTING.rst#running-tests-with-kubernetes>`_.
Loading