-
Notifications
You must be signed in to change notification settings - Fork 0
122 lines (110 loc) · 3.77 KB
/
Copy pathci.yml
File metadata and controls
122 lines (110 loc) · 3.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
name: CI
on:
pull_request:
push:
jobs:
arch:
name: Arch checks
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.14"
- name: Install dependencies
run: uv sync --locked --all-extras
- name: Lint Arch surface
run: >
uv run ruff check
arch
db/cli.py
db/etl_snap.py
db/etl_aca_enrollment.py
db/etl_medicaid.py
db/etl_ssi.py
db/pe_source_inventory.py
db/schema.py
db/supabase_client.py
db/source_files.py
micro/us/census/download_cps.py
micro/us/entities.py
micro/us/hierarchy_validation.py
micro/us/hierarchical_pipeline.py
micro/us/pipeline.py
micro/us/policyengine.py
micro/us/targets.py
micro/us/validation_dashboard.py
calibration/constraints.py
calibration/targets.py
tests/test_arch_facts.py
tests/test_arch_namespace.py
tests/test_arch_normalization.py
tests/test_etl_snap.py
tests/test_etl_soi.py
tests/test_etl_aca_enrollment.py
tests/test_etl_medicaid.py
tests/test_etl_ssi.py
tests/test_source_files.py
tests/test_microplex_entities.py
tests/test_microplex_hierarchy_validation.py
tests/test_microplex_target_adapter.py
tests/test_microplex_pipeline.py
tests/test_microplex_policyengine.py
tests/test_download_cps.py
tests/test_hierarchical_pipeline.py
tests/test_supabase_client.py
- name: Test Arch surface
run: >
uv run pytest
tests/test_arch_facts.py
tests/test_arch_namespace.py
tests/test_arch_normalization.py
tests/test_etl_snap.py
tests/test_etl_soi.py
tests/test_etl_aca_enrollment.py
tests/test_etl_medicaid.py
tests/test_etl_ssi.py
tests/test_source_files.py
tests/test_calibration.py
tests/test_microplex_entities.py
tests/test_microplex_hierarchy_validation.py
tests/test_microplex_target_adapter.py
tests/test_microplex_pipeline.py
tests/test_microplex_policyengine.py
tests/test_download_cps.py
tests/test_hierarchical_pipeline.py
tests/test_supabase_client.py
-q
- name: Build target input database
run: |
uv run arch --db /tmp/arch-targets-ci.db init
uv run arch --db /tmp/arch-targets-ci.db load all
uv run arch --db /tmp/arch-targets-ci.db stats
- name: Build wheel
run: |
rm -rf dist
uv build
- name: Test wheel install
run: |
wheel_path="$(find dist -name '*.whl' -print -quit)"
uv venv /tmp/arch-wheel-smoke --python 3.14
uv pip install --python /tmp/arch-wheel-smoke/bin/python "$wheel_path"
cd /tmp
/tmp/arch-wheel-smoke/bin/python - <<'PY'
import arch
import arch.targets
from micro.us.district import DistrictMicroplex
from micro.us.pipeline import run_pipeline
from micro.us.targets import load_microplex_targets
from microplex import ConditionalMAF
assert arch.__name__ == "arch"
assert DistrictMicroplex is not None
assert run_pipeline is not None
assert load_microplex_targets is not None
assert ConditionalMAF is not None
PY
/tmp/arch-wheel-smoke/bin/arch --help >/dev/null