Skip to content

Commit 66cd694

Browse files
committed
ci: integrate alembic check
1 parent 19122e7 commit 66cd694

File tree

5 files changed

+56
-4
lines changed

5 files changed

+56
-4
lines changed

.pre-commit-config.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,13 @@ repos:
170170
additional_dependencies: ['rich>=12.4.4', 'ruff==0.11.2']
171171
files: ^providers/.*/src/airflow/providers/.*\.py$
172172
require_serial: true
173+
- id: check-model-changes
174+
name: Check if model changes require DB migration
175+
entry: ./scripts/ci/pre_commit/check_model_changes.py
176+
language: python
177+
additional_dependencies: ['rich>=12.4.4']
178+
files: ^airflow-core/src/airflow/models/.*\.py$
179+
require_serial: true
173180
- id: update-black-version
174181
name: Update black versions everywhere (manual)
175182
entry: ./scripts/ci/pre_commit/update_black_version.py

contributing-docs/08_static_code_checks.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,8 @@ require Breeze Docker image to be built locally.
197197
+-----------------------------------------------------------+--------------------------------------------------------+---------+
198198
| check-min-python-version | Check minimum Python version | |
199199
+-----------------------------------------------------------+--------------------------------------------------------+---------+
200+
| check-model-changes | Check if model changes require DB migration | |
201+
+-----------------------------------------------------------+--------------------------------------------------------+---------+
200202
| check-newsfragments-are-valid | Check newsfragments are valid | |
201203
+-----------------------------------------------------------+--------------------------------------------------------+---------+
202204
| check-no-airflow-deprecation-in-providers | Do not use DeprecationWarning in providers | |

dev/breeze/doc/images/output_static-checks.svg

Lines changed: 4 additions & 4 deletions
Loading

dev/breeze/src/airflow_breeze/pre_commit_ids.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
"check-links-to-example-dags-do-not-use-hardcoded-versions",
6363
"check-merge-conflict",
6464
"check-min-python-version",
65+
"check-model-changes",
6566
"check-newsfragments-are-valid",
6667
"check-no-airflow-deprecation-in-providers",
6768
"check-no-providers-in-core-examples",
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/usr/bin/env python
2+
# Licensed to the Apache Software Foundation (ASF) under one
3+
# or more contributor license agreements. See the NOTICE file
4+
# distributed with this work for additional information
5+
# regarding copyright ownership. The ASF licenses this file
6+
# to you under the Apache License, Version 2.0 (the
7+
# "License"); you may not use this file except in compliance
8+
# with the License. You may obtain a copy of the License at
9+
#
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing,
13+
# software distributed under the License is distributed on an
14+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
# KIND, either express or implied. See the License for the
16+
# specific language governing permissions and limitations
17+
# under the License.
18+
19+
from __future__ import annotations
20+
21+
import sys
22+
from pathlib import Path
23+
24+
sys.path.insert(0, str(Path(__file__).parent.resolve()))
25+
from common_precommit_utils import (
26+
initialize_breeze_precommit,
27+
run_command_via_breeze_shell,
28+
validate_cmd_result,
29+
)
30+
31+
initialize_breeze_precommit(__name__, __file__)
32+
result = run_command_via_breeze_shell(
33+
[
34+
"bash",
35+
"-c",
36+
"airflow db migrate --to-revision heads && cd airflow-core/src/airflow && alembic check",
37+
],
38+
backend="sqlite",
39+
warn_image_upgrade_needed=True,
40+
)
41+
42+
validate_cmd_result(result, include_ci_env_check=True)

0 commit comments

Comments
 (0)