@@ -17,17 +17,12 @@ executors:
1717 machine :
1818 image : ubuntu-2404:current
1919orbs :
20- aws-cli :
circleci/[email protected] .2 20+ aws-cli :
circleci/[email protected] .3 2121 codecov :
codecov/[email protected] 22- node : circleci/node@7.0 .0
22+ node : circleci/node@7.1 .0
2323 github-cli :
circleci/[email protected] 24242525
26-
27-
28-
29-
30-
3126commands :
3227 install-lfs :
3328 steps :
@@ -66,33 +61,12 @@ commands:
6661 paths :
6762 - $GITHUB_WORKSPACE
6863 key : repos-<<parameters.extra_repos>>
69- fetch-verified-codemods :
70- steps :
71- - run :
72- command : |
73- uv run --frozen python -m tests.shared.codemod.commands fetch-verified-codemods --cli-api-key ${PROD_CLI_API_KEY}
74- cache-verified-codemod-repos :
75- steps :
76- - restore_cache :
77- keys :
78- - v1-verified-codemod-repos-{{ checksum "tests/integration/verified_codemods/codemod_data/repo_commits.json" }}-{{.Environment.CIRCLE_NODE_INDEX}}-{{.Environment.CIRCLE_NODE_TOTAL}}
79- - run :
80- command : |
81- uv run --frozen python -m tests.shared.codemod.commands clone-repos --verified-codemod-repos --token ${CODEGEN_BOT_GHE_TOKEN}
82- - save_cache :
83- paths :
84- - $GITHUB_WORKSPACE
85- key : v1-verified-codemod-repos-{{ checksum "tests/integration/verified_codemods/codemod_data/repo_commits.json" }}-{{.Environment.CIRCLE_NODE_INDEX}}-{{.Environment.CIRCLE_NODE_TOTAL}}
8664 build-wheels :
87- parameters :
88- base_packages :
89- type : boolean
90- default : false
9165 steps :
9266 - install-uv
9367 - restore_cache :
9468 keys :
95- - cibuildwheel-cache-<<pipeline.parameters.python_version>>-{{ .Environment.CIRCLE_JOB }}-{{ checksum "uv.lock" }}--{{ checksum "pyproject.toml" }}
69+ - cibuildwheel-cache-<<pipeline.parameters.python_version>>-{{ .Environment.CIRCLE_JOB }}-{{ checksum "uv.lock" }}--{{ checksum "pyproject.toml" }}-{{ arch }}
9670 - run :
9771 command : |
9872 uv run --frozen cibuildwheel --output-dir dist
@@ -102,7 +76,7 @@ commands:
10276 - save_cache :
10377 paths :
10478 - /home/circleci/.cache/cibuildwheel
105- key : cibuildwheel-cache-<<pipeline.parameters.python_version>>-{{ .Environment.CIRCLE_JOB }}-{{ checksum "uv.lock" }}--{{ checksum "pyproject.toml" }}
79+ key : cibuildwheel-cache-<<pipeline.parameters.python_version>>-{{ .Environment.CIRCLE_JOB }}-{{ checksum "uv.lock" }}--{{ checksum "pyproject.toml" }}-{{ arch }}
10680 setup-uv :
10781 steps :
10882 - install-lfs
@@ -121,27 +95,14 @@ commands:
12195 - ~/.cache/uv
12296 key : uv-cache-1-<<pipeline.parameters.python_version>>-{{ .Environment.CIRCLE_WORKING_DIRECTORY }}-{{ arch }}-{{ checksum "uv.lock" }}
12397 - setup-lfs
124- setup-pre-commit :
125- steps :
126- - restore_cache :
127- keys :
128- - pre-commit-cache-<<pipeline.parameters.python_version>>-{{ checksum ".pre-commit-config.yaml" }}
129- - run :
130- command : uv run --frozen pre-commit install-hooks
131- name : Install pre-commit hooks
132- - save_cache :
133- paths :
134- - ~/.cache/pre-commit
135- - ~/.cache/uv
136- key : pre-commit-cache-<<pipeline.parameters.python_version>>-{{ checksum ".pre-commit-config.yaml" }}
13798 upload-tests :
13899 steps :
139100 - store_test_results :
140101 path : build/test-results/test/TEST.xml
141- # - codecov/upload:
142- # binary: ../root/.local/bin/codecovcli
143- # files: build/test-results/test/TEST.xml
144- # report_type: test_results
102+ - codecov/upload :
103+ binary : ../root/.local/bin/codecovcli
104+ files : build/test-results/test/TEST.xml
105+ report_type : test_results
145106 run_ats :
146107 parameters :
147108 default_tests :
@@ -181,7 +142,7 @@ commands:
181142 TESTS_TO_RUN=$(cat codecov_ats/tests_to_run.txt)
182143 echo $TESTS_TO_RUN
183144 echo $TESTS_TO_RUN | circleci tests run --command "xargs uv run --frozen pytest --cov \
184- -o junit_suite_name="${CIRCLE_JOB}" \
145+ -o junit_suite_name="${CIRCLE_JOB}-${CIRCLE_NODE_INDEX} " \
185146 -n auto \
186147 -vv \
187148 --cov \
@@ -197,65 +158,18 @@ commands:
197158 cat codecov_ats/tests_to_run.txt | xargs uv run --frozen pytest \
198159 --cov \
199160 -vv \
200- -o junit_suite_name="${CIRCLE_JOB}" \
161+ -o junit_suite_name="${CIRCLE_JOB}-${CIRCLE_NODE_INDEX} " \
201162 -n auto \
202163 --cov-append \
203164 <<parameters.collect_args>>
204165 - upload-tests
205166 - codecov/upload :
206167 flags : <<parameters.codecov_flags>>
207168 plugins : pycoverage,compress-pycoverage
169+ files : coverage.codecov.json
208170 # Define a job to be invoked later in a workflow.
209171# See: https://circleci.com/docs/jobs-steps/#jobs-overview & https://circleci.com/docs/configuration-reference/#jobs
210172jobs :
211- unit-tests :
212- parallelism : 3
213- executor : default_image
214- resource_class : " 2xlarge"
215- steps :
216- - setup-uv
217- - node/install :
218- use-nvm-cache : true
219- - run_ats :
220- default_tests : " tests/unit"
221- collect_args : --timeout 50
222- integration-tests :
223- executor : default_image
224- resource_class : " large"
225- steps :
226- - setup-uv
227- - run :
228- command : |
229- uv run --frozen pytest -o junit_suite_name="${CIRCLE_JOB}" -n auto tests/integration/codegen
230- - upload-tests
231- doctests :
232- executor : default_image
233- steps :
234- - setup-uv
235- - run :
236- command : |
237- uv run --frozen pytest -o junit_suite_name="${CIRCLE_JOB}" -n auto docs
238- - upload-tests
239- codemod-tests :
240- parallelism : 8
241- executor : default_vm
242- resource_class : " 2xlarge+"
243- steps :
244- - install-uv
245- - setup-uv
246- - fetch-verified-codemods
247- - cache-verified-codemod-repos
248- - run_ats :
249- default_tests : " tests/integration/codemod/test_verified_codemods.py"
250- codecov_flags : " smart-tests-codemod"
251- collect_args : --cli-api-key ${PROD_CLI_API_KEY} --token ${CODEGEN_BOT_GHE_TOKEN}
252- ats_collect_args : --cli-api-key=${PROD_CLI_API_KEY},--token=${CODEGEN_BOT_GHE_TOKEN},
253- split_tests : false
254- - slack/notify :
255- event : fail
256- branch_pattern : " develop"
257- channel : " alerts-codemod-tests"
258- template : basic_fail_1
259173 oss-codemod-tests :
260174 parameters :
261175 sync_graph :
@@ -322,34 +236,19 @@ jobs:
322236 channel : " alerts-parse-tests"
323237 template : basic_fail_1
324238
325- pre-commit :
326- executor : default_image
327- resource_class : 2xlarge
328- steps :
329- - setup-uv
330- - node/install :
331- use-nvm-cache : true
332- - setup-pre-commit
333- - run :
334- command : uv run --frozen pre-commit run --all-files --show-diff-on-failure --color=always
335- name : run pre-commit
336239 linux-wheels :
337240 parameters :
338241 resource_class :
339242 type : string
340243 default : " large"
341- base_packages :
342- type : boolean
343- default : false
344244 working_directory : ~/linux-wheels
345245 machine :
346246 image : ubuntu-2404:2024.05.1
347247 docker_layer_caching : true
348248 resource_class : <<parameters.resource_class>>
349249 steps :
350250 - checkout
351- - build-wheels :
352- base_packages : << parameters.base_packages >>
251+ - build-wheels
353252 - persist_to_workspace :
354253 root : .
355254 paths :
@@ -366,21 +265,6 @@ jobs:
366265 root : .
367266 paths :
368267 - dist/
369- release-aws :
370- executor : default_image
371- steps :
372- - checkout
373- - attach_workspace :
374- at : .
375- - aws-cli/setup :
376- role_arn : $AWS_OIDC_ARN
377- - run :
378- name : Release
379- command : |
380- uv tool install keyring --with keyrings.codeartifact
381- export UV_PUBLISH_PASSWORD="$(aws codeartifact get-authorization-token --domain codegen --domain-owner 922078275900 --region us-east-1 --query authorizationToken --output text)"
382- export UV_PUBLISH_USERNAME=aws
383- uv publish
384268 release-pypi :
385269 executor : default_image
386270 steps :
@@ -403,119 +287,20 @@ jobs:
403287 channel : " release"
404288 template : success_tagged_deploy_1
405289workflows :
406- develop-checks :
407- jobs :
408- - hold-parse-tests :
409- type : approval
410- filters :
411- branches :
412- ignore : develop
413- - parse-tests :
414- name : Manual-Parse-Tests
415- filters :
416- branches :
417- ignore : develop
418- context :
419- - GHE
420- requires :
421- - hold-parse-tests
422- matrix :
423- parameters :
424- extra_repos : [true, false]
425- # - parse-tests:
426- # context:
427- # - GHE
428- # - slack
429- # filters:
430- # branches:
431- # only: develop
432- # extra_repos: true
433- - parse-tests :
434- name : oss-parse-tests
435- context :
436- - GHE
437- - slack
438- filters :
439- branches :
440- only : develop
441- extra_repos : false
442- - oss-codemod-tests :
443- name : oss-codemod-tests
444- context :
445- - GHE
446- - slack
447- filters :
448- branches :
449- only : develop
450- matrix :
451- parameters :
452- sync_graph : [true, false]
453- size : [small, large]
454- pr_checks :
455- jobs :
456- - unit-tests
457- - integration-tests
458- - hold-codemod-tests :
459- type : approval
460- filters :
461- branches :
462- ignore : develop
463- - hold-large-oss-codemod-tests :
464- type : approval
465- filters :
466- branches :
467- ignore : develop
468- - codemod-tests :
469- context :
470- - GHE
471- - Codemod
472- - slack
473- requires :
474- - hold-codemod-tests
475- - pre-commit
476- - doctests
477- # - oss-codemod-tests:
478- # filters:
479- # branches:
480- # ignore: develop
481- # context:
482- # - GHE
483- # - slack
484- # matrix:
485- # parameters:
486- # sync_graph: [true, false]
487- # size: [small]
488- - oss-codemod-tests :
489- name : large-oss-codemod-tests
490- context :
491- - GHE
492- - slack
493- matrix :
494- parameters :
495- sync_graph : [true, false]
496- size : [large]
497- requires :
498- - hold-large-oss-codemod-tests
499290 publish-packages :
500291 jobs :
501292 - linux-wheels :
502293 filters :
503294 tags :
504295 only : /^v.*/
505- base_packages : true
296+ matrix :
297+ parameters :
298+ resource_class : [large, arm.large]
299+
506300 - osx-wheels :
507301 filters :
508302 tags :
509303 only : /^v.*/
510- - release-aws :
511- filters :
512- tags :
513- only : /^v.*/
514- context :
515- - AWS
516- requires :
517- - linux-wheels
518- - osx-wheels
519304 - release-pypi :
520305 filters :
521306 tags :
0 commit comments