Skip to content

Commit 647ac15

Browse files
eacodegenbagel897
andauthored
Migrate CI to CircleCI(#8)
# Motivation Old CI used GHA and relied on secrets that are private # Content Move codemod testing to CircleCI and Add OSS repo testing --------- Co-authored-by: bagel897 <[email protected]>
1 parent 2fd7bb4 commit 647ac15

File tree

7 files changed

+106
-187
lines changed

7 files changed

+106
-187
lines changed

.circleci/config.yml

Lines changed: 100 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,26 @@ commands:
4646
command: |
4747
curl -LsSf https://astral.sh/uv/install.sh | sh
4848
source $HOME/.local/bin/env
49-
cache-extra-repos:
49+
clone-repos:
50+
parameters:
51+
extra_repos:
52+
type: boolean
53+
default: true
5054
steps:
5155
- restore_cache:
5256
keys:
53-
- extra-repos
57+
- repos-<<parameters.extra_repos>>
5458
- run:
5559
command: |
56-
uv run --frozen gs codemod clone-repos --extra-repos --token ${CODEGEN_BOT_GHE_TOKEN} --clean-cache
60+
EXTRA_REPOS_ARG=""
61+
if [ "<<parameters.extra_repos>>" = "true" ]; then
62+
EXTRA_REPOS_ARG="--extra-repos"
63+
fi
64+
uv run --frozen gs codemod clone-repos ${EXTRA_REPOS_ARG} --token ${CODEGEN_BOT_GHE_TOKEN} --clean-cache
5765
- save_cache:
5866
paths:
5967
- $GITHUB_WORKSPACE
60-
key: extra-repos
68+
key: repos-<<parameters.extra_repos>>
6169
fetch-verified-codemods:
6270
steps:
6371
- run:
@@ -242,6 +250,33 @@ jobs:
242250
branch_pattern: "develop"
243251
channel: "alerts-codemod-tests"
244252
template: basic_fail_1
253+
oss-codemod-tests:
254+
parameters:
255+
sync_graph:
256+
type: boolean
257+
default: true
258+
size:
259+
type: string
260+
default: "small"
261+
parallelism: 2
262+
executor: default_vm
263+
resource_class: xlarge
264+
steps:
265+
- install-uv
266+
- setup-uv
267+
- clone-repos:
268+
extra_repos: false
269+
- run_ats:
270+
default_tests: "tests/codemod/test_codemods.py"
271+
codecov_flags: "smart-tests-codemod-oss"
272+
collect_args: --size=<<parameters.size>> --sync-graph=<<parameters.sync_graph>> --token ${CODEGEN_BOT_GHE_TOKEN}
273+
ats_collect_args: --size=<<parameters.size>>,--sync-graph=<<parameters.sync_graph>>,--token=${CODEGEN_BOT_GHE_TOKEN},
274+
split_tests: false
275+
- slack/notify:
276+
event: fail
277+
branch_pattern: "develop"
278+
channel: "alerts-codemod-tests"
279+
template: basic_fail_1
245280
parse-tests:
246281
parameters:
247282
extra_repos:
@@ -257,10 +292,15 @@ jobs:
257292
install-pnpm: true
258293
install-yarn: true
259294
use-nvm-cache: true
260-
- cache-extra-repos
295+
- clone-repos:
296+
extra_repos: <<parameters.extra_repos>>
261297
- run:
262298
command: |
263-
PYTEST_ARGS='--extra-repos=<<parameters.extra_repos>> --token ${CODEGEN_BOT_GHE_TOKEN} -o junit_suite_name="${CIRCLE_JOB}" tests/codemod/test_parse.py'
299+
EXTRA_REPOS_ARG=""
300+
if [ "<<parameters.extra_repos>>" = "true" ]; then
301+
EXTRA_REPOS_ARG="--extra-repos"
302+
fi
303+
PYTEST_ARGS="${EXTRA_REPOS_ARG} --token ${CODEGEN_BOT_GHE_TOKEN} -o junit_suite_name=\"${CIRCLE_JOB}\" tests/codemod/test_parse.py"
264304
echo "Running tests with args: $PYTEST_ARGS"
265305
TESTS_TO_RUN=$(PYTEST_ARGS=${PYTEST_ARGS} ./.circleci/collect.sh)
266306
echo $TESTS_TO_RUN | circleci tests run --command "ulimit -s unlimited; xargs uv run --frozen pytest -n auto ${PYTEST_ARGS}"
@@ -370,26 +410,76 @@ workflows:
370410
- GHE
371411
requires:
372412
- hold-parse-tests
413+
matrix:
414+
parameters:
415+
extra_repos: [true, false]
416+
- parse-tests:
417+
context:
418+
- GHE
419+
- slack
420+
filters:
421+
branches:
422+
only: develop
423+
extra_repos: true
373424
- parse-tests:
425+
name: oss-parse-tests
426+
context:
427+
- GHE
428+
- slack
429+
filters:
430+
branches:
431+
only: develop
432+
extra_repos: false
433+
- oss-codemod-tests:
434+
name: oss-codemod-tests
374435
context:
375436
- GHE
376437
- slack
377438
filters:
378439
branches:
379440
only: develop
441+
matrix:
442+
parameters:
443+
sync_graph: [true, false]
444+
size: [small, large]
380445
pr_checks:
381446
jobs:
382-
- unit-tests:
383-
context:
384-
- Codecov
447+
- unit-tests
448+
- hold-codemod-tests:
449+
type: approval
450+
- hold-large-oss-codemod-tests:
451+
type: approval
385452
- codemod-tests:
386453
context:
387-
- Codecov
388454
- GHE
389455
- Codemod
390456
- slack
457+
requires:
458+
- hold-codemod-tests
391459
- pre-commit
392460
- doctests
461+
- oss-codemod-tests:
462+
filters:
463+
branches:
464+
ignore: develop
465+
context:
466+
- GHE
467+
- slack
468+
matrix:
469+
parameters:
470+
sync_graph: [true, false]
471+
size: [small]
472+
- oss-codemod-tests:
473+
name: large-oss-codemod-tests
474+
context:
475+
- GHE
476+
- slack
477+
matrix:
478+
parameters:
479+
sync_graph: [true, false]
480+
size: [large]
481+
requires:
482+
- hold-large-oss-codemod-tests
393483
publish-packages:
394484
jobs:
395485
- linux-wheels:

.github/actions/report/action.yml

Lines changed: 0 additions & 21 deletions
This file was deleted.

.github/actions/setup-oss-repos/action.yml

Lines changed: 0 additions & 27 deletions
This file was deleted.

.github/codecov.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ flag_management:
5454
statuses:
5555
- type: 'project'
5656
- type: 'patch'
57+
- name: smart-tests-codemod-oss
58+
carryforward: true
59+
carryforward_mode: 'labels'
60+
statuses:
61+
- type: 'project'
62+
- type: 'patch'
5763
comment:
5864
layout: "condensed_header, condensed_files"
5965
hide_project_coverage: true

.github/workflows/cache-warm-up.yml

Lines changed: 0 additions & 63 deletions
This file was deleted.

.github/workflows/unit-tests.yml

Lines changed: 0 additions & 64 deletions
This file was deleted.

uv.lock

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)