From d782b0b426ccbc8e0d99c0f50d137b6d4294cb45 Mon Sep 17 00:00:00 2001 From: Ben Teichman Date: Thu, 12 Feb 2026 12:19:29 -0500 Subject: [PATCH 1/8] poc: attempt to create a simple, standard set of jobs & commands --- src/commands/std/std_authenticate_yarn.yml | 10 ++++ src/commands/std/std_checkout.yml | 8 +++ src/commands/std/std_clone_repo.yml | 13 +++++ src/commands/std/std_restore_cache.yml | 29 +++++++++++ src/commands/std/std_save_cache.yml | 51 +++++++++++++++++++ src/jobs/std/std_build.yml | 28 ++++++++++ src/jobs/std/std_docker_publish.yml | 20 ++++++++ .../std/std_install_node_and_yarn_cache.yml | 49 ++++++++++++++++++ src/jobs/std/std_lint.yml | 25 +++++++++ src/jobs/std/std_sonarcloud_scan.yml | 14 +++++ src/jobs/std/std_test_dependencies.yml | 21 ++++++++ src/jobs/std/std_test_openapi_schema.yml | 26 ++++++++++ src/jobs/std/std_test_types.yml | 21 ++++++++ src/jobs/std/std_test_unit.yml | 32 ++++++++++++ 14 files changed, 347 insertions(+) create mode 100644 src/commands/std/std_authenticate_yarn.yml create mode 100644 src/commands/std/std_checkout.yml create mode 100644 src/commands/std/std_clone_repo.yml create mode 100644 src/commands/std/std_restore_cache.yml create mode 100644 src/commands/std/std_save_cache.yml create mode 100644 src/jobs/std/std_build.yml create mode 100644 src/jobs/std/std_docker_publish.yml create mode 100644 src/jobs/std/std_install_node_and_yarn_cache.yml create mode 100644 src/jobs/std/std_lint.yml create mode 100644 src/jobs/std/std_sonarcloud_scan.yml create mode 100644 src/jobs/std/std_test_dependencies.yml create mode 100644 src/jobs/std/std_test_openapi_schema.yml create mode 100644 src/jobs/std/std_test_types.yml create mode 100644 src/jobs/std/std_test_unit.yml diff --git a/src/commands/std/std_authenticate_yarn.yml b/src/commands/std/std_authenticate_yarn.yml new file mode 100644 index 00000000..be6d0116 --- /dev/null +++ b/src/commands/std/std_authenticate_yarn.yml @@ -0,0 +1,10 @@ +steps: + - run: + name: Authenticate Yarn + working_directory: /home/circleci/code + command: | + cat \<< EOF > ~/.yarnrc.yml + npmRegistries: + "https://registry.yarnpkg.com": + npmAuthToken: ${NPM_TOKEN} + EOF diff --git a/src/commands/std/std_checkout.yml b/src/commands/std/std_checkout.yml new file mode 100644 index 00000000..7050ded8 --- /dev/null +++ b/src/commands/std/std_checkout.yml @@ -0,0 +1,8 @@ +steps: + - run: + name: Checkout Repository + working_directory: /home/circleci + command: | + git clone "https://${GITHUB_USERNAME}:${GITHUB_TOKEN}@github.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}" code + cd code + git checkout "${CIRCLE_SHA1}" diff --git a/src/commands/std/std_clone_repo.yml b/src/commands/std/std_clone_repo.yml new file mode 100644 index 00000000..369af649 --- /dev/null +++ b/src/commands/std/std_clone_repo.yml @@ -0,0 +1,13 @@ +parameters: + repo_name: + type: string + directory: + type: string + branch: + type: string +steps: + - run: + name: Clone Repository + working_directory: /home/circleci + command: | + git clone --branch << parameters.branch >> "https://${GITHUB_USERNAME}:${GITHUB_TOKEN}@github.com/${CIRCLE_PROJECT_USERNAME}/<< parameters.repo_name >>" << parameters.directory >> diff --git a/src/commands/std/std_restore_cache.yml b/src/commands/std/std_restore_cache.yml new file mode 100644 index 00000000..892b1222 --- /dev/null +++ b/src/commands/std/std_restore_cache.yml @@ -0,0 +1,29 @@ +parameters: + cache_name: + type: string + default_branch: + type: string + default: master + use_lockfile: + type: boolean + default: false +steps: + when: + condition: << parameters.use_lockfile >> + steps: + - restore_cache: + name: Restore << parameters.cache_name >> Cache + keys: + - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--lockfile--{{ checksum "/home/circleci/code/yarn.lock" }} + - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}--{{ .Revision }} + - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}-- + - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--<< parameters.default_branch >>-- + unless: + condition: << parameters.use_lockfile >> + steps: + - restore_cache: + name: Restore << parameters.cache_name >> Cache + keys: + - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}--{{ .Revision }} + - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}-- + - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--<< parameters.default_branch >>-- diff --git a/src/commands/std/std_save_cache.yml b/src/commands/std/std_save_cache.yml new file mode 100644 index 00000000..25feebf3 --- /dev/null +++ b/src/commands/std/std_save_cache.yml @@ -0,0 +1,51 @@ +parameters: + cache_name: + type: string + cache_version: + type: string + path: + type: string + use_lockfile: + type: boolean + default: false + path_2: + type: string + default: "" +steps: + - unless: + condition: << parameters.path_2 >> + steps: + - save_cache: + name: Save << parameters.cache_name >> Cache + key: << parameters.cache_name >-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}--{{ .Revision }} + paths: + - << parameters.path > + - when: + condition: << parameters.path_2 >> + steps: + - save_cache: + name: Save << parameters.cache_name >> Cache + key: << parameters.cache_name >-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}--{{ .Revision }} + paths: + - << parameters.path > + - << parameters.path_2 > + - with: + condition: << parameters.use_lockfile >> + steps: + - unless: + condition: << parameters.path_2 >> + steps: + - save_cache: + name: Save << parameters.cache_name >> Cache + key: << parameters.cache_name >-cache-{{ .Environment.CACHE_VERSION }}--lockfile--{{ checksum "/home/circleci/code/yarn.lock" }} + paths: + - << parameters.path > + - with: + condition: << parameters.path_2 >> + steps: + - save_cache: + name: Save << parameters.cache_name >> Cache + key: << parameters.cache_name >-cache-{{ .Environment.CACHE_VERSION }}--lockfile--{{ checksum "/home/circleci/code/yarn.lock" }} + paths: + - << parameters.path > + - << parameters.path_2 > diff --git a/src/jobs/std/std_build.yml b/src/jobs/std/std_build.yml new file mode 100644 index 00000000..ff258d4a --- /dev/null +++ b/src/jobs/std/std_build.yml @@ -0,0 +1,28 @@ +parameters: + executor: + type: executor +executor: << parameters.executor >> +working_directory: /home/circleci/code +steps: + - std_checkout + - std_restore_cache: + cache_name: node + use_lockfile: true + - std_restore_cache: + cache_name: build + - run: + name: Build + command: | + yarn build + - run: + name: Collect OpenAPI Schemas + working_directory: /home/circleci/code/apps + command: | + mkdir -p /tmp/openapi-schemas + cp -v --parents */openapi.next.json /tmp/openapi-schemas + - store_artifacts: + path: /tmp/openapi-schemas + destination: / + - std_save_cache: + cache_name: build + path: /home/circleci/code/.turbo/cache diff --git a/src/jobs/std/std_docker_publish.yml b/src/jobs/std/std_docker_publish.yml new file mode 100644 index 00000000..89661309 --- /dev/null +++ b/src/jobs/std/std_docker_publish.yml @@ -0,0 +1,20 @@ +parameters: + executor: + type: executor +executor: << parameters.executor >> +working_directory: /home/circleci/code +environment: + ECR_URL: << pipeline.parameters.ecr-url >> +steps: + - setup_remote_docker + - std_checkout + - std_restore_cache: + cache_name: node + use_lockfile: true + - std_restore_cache: + cache_name: build + - run: + name: Docker Publish + command: | + docker buildx create --use --bootstrap --name buildy-trying + yarn docker:publish diff --git a/src/jobs/std/std_install_node_and_yarn_cache.yml b/src/jobs/std/std_install_node_and_yarn_cache.yml new file mode 100644 index 00000000..3524f2ec --- /dev/null +++ b/src/jobs/std/std_install_node_and_yarn_cache.yml @@ -0,0 +1,49 @@ +parameters: + executor: + type: executor +executor: << parameters.executor >> +steps: + - run: + name: Sparse Clone for Install + working_directory: /home/circleci + command: | + git clone --sparse "https://${GITHUB_USERNAME}:${GITHUB_TOKEN}@github.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}" code + cd code + git checkout "${CIRCLE_SHA1}" + - run: + name: Checkout Critical Files for Install + working_directory: /home/circleci/code + command: | + git sparse-checkout set --no-cone .yarn/ .yalc/ /.yarnrc.yml /yarn.lock /package.json + + # get patterns for package.json files in workspace + globs=$(cat package.json | jq '.workspaces[] | . + "/package.json"' -r) + + for glob in ${globs}; do + git sparse-checkout add "${glob}" + done + - std_authenticate_yarn + - std_restore_cache: + cache_name: yarn + cache_version: << parameters.cache_version >> + use_lockfile: true + - std_restore_cache: + cache_name: node + cache_version: << parameters.cache_version >> + use_lockfile: true + - run: + name: Install Dependencies + working_directory: /home/circleci/code + command: | + yarn install --immutable + - std_save_cache: + cache_name: yarn + cache_version: << parameters.cache_version >> + path: /home/circleci/code/.yarn/cache + path_2: /home/circleci/code/.yarn/install-state.gz + use_lockfile: true + - std_save_cache: + cache_name: node + cache_version: << parameters.cache_version >> + path: /home/circleci/code/node_modules + use_lockfile: true diff --git a/src/jobs/std/std_lint.yml b/src/jobs/std/std_lint.yml new file mode 100644 index 00000000..dee7b54f --- /dev/null +++ b/src/jobs/std/std_lint.yml @@ -0,0 +1,25 @@ +parameters: + executor: + type: executor +executor: << parameters.executor >> +working_directory: /home/circleci/code +steps: + - std_checkout + - std_restore_cache: + cache_name: node + use_lockfile: true + - std_restore_cache: + cache_name: lint + - run: + name: Run Linting + command: | + yarn lint:report + - store_artifacts: + path: reports/lint.report.xml + destination: lint.report.xml + - store_test_results: + path: reports/lint.report.xml + - std_save_cache: + cache_name: lint + path: /home/circleci/code/.eslintcache + path_2: /home/circleci/code/node_modules/.cache/prettier diff --git a/src/jobs/std/std_sonarcloud_scan.yml b/src/jobs/std/std_sonarcloud_scan.yml new file mode 100644 index 00000000..7602e6c3 --- /dev/null +++ b/src/jobs/std/std_sonarcloud_scan.yml @@ -0,0 +1,14 @@ +parameters: + executor: + type: executor +executor: << parameters.executor >> +working_directory: /home/circleci/code +steps: + - std_checkout + - std_restore_cache: + cache_name: node + use_lockfile: true + - attach_workspace: + at: /home/circleci/code + - sonarcloud/scan: + cache_version: 1 diff --git a/src/jobs/std/std_test_dependencies.yml b/src/jobs/std/std_test_dependencies.yml new file mode 100644 index 00000000..2f16059f --- /dev/null +++ b/src/jobs/std/std_test_dependencies.yml @@ -0,0 +1,21 @@ +parameters: + executor: + type: executor +executor: << parameters.executor >> +working_directory: /home/circleci/code +steps: + - std_checkout + - std_restore_cache: + cache_name: node + use_lockfile: true + - std_restore_cache: + cache_name: build + - std_restore_cache: + cache_name: test-dependencies + - run: + name: Run Dependency Tests + command: | + yarn test:dependencies + - std_save_cache: + cache_name: test-dependencies + path: /home/circleci/code/.turbo/cache diff --git a/src/jobs/std/std_test_openapi_schema.yml b/src/jobs/std/std_test_openapi_schema.yml new file mode 100644 index 00000000..e2437264 --- /dev/null +++ b/src/jobs/std/std_test_openapi_schema.yml @@ -0,0 +1,26 @@ +parameters: + executor: + type: executor +executor: << parameters.executor >> +working_directory: /home/circleci/code +steps: + - setup_remote_docker + - std_checkout + - std_clone_repo: + repo_name: openapi-schemas + directory: schemas + branch: master + - std_restore_cache: + cache_name: node + use_lockfile: true + - std_restore_cache: + cache_name: build + - run: + name: Restore OpenAPI Schemas + working_directory: /home/circleci/schemas + command: | + cp -v --parents apps/*/openapi.json /home/circleci/code + - run: + name: Test OpenAPI Schema + command: | + yarn schema:validate diff --git a/src/jobs/std/std_test_types.yml b/src/jobs/std/std_test_types.yml new file mode 100644 index 00000000..353f954f --- /dev/null +++ b/src/jobs/std/std_test_types.yml @@ -0,0 +1,21 @@ +parameters: + executor: + type: executor +executor: << parameters.executor >> +working_directory: /home/circleci/code +steps: + - std_checkout + - std_restore_cache: + cache_name: node + use_lockfile: true + - std_restore_cache: + cache_name: build + - std_restore_cache: + cache_name: test-types + - run: + name: Check Types + command: | + yarn test:types + - std_save_cache: + cache_name: test-types + path: /home/circleci/code/.turbo/cache diff --git a/src/jobs/std/std_test_unit.yml b/src/jobs/std/std_test_unit.yml new file mode 100644 index 00000000..a8801c92 --- /dev/null +++ b/src/jobs/std/std_test_unit.yml @@ -0,0 +1,32 @@ +parameters: + executor: + type: executor +executor: << parameters.executor >> +working_directory: /home/circleci/code +steps: + - std_checkout + - std_restore_cache: + cache_name: node + use_lockfile: true + - std_restore_cache: + cache_name: build + - std_restore_cache: + cache_name: vitest + - run: + name: Run Unit Tests + command: | + yarn build + yarn test:unit --experimental.fsModuleCache + - store_artifacts: + path: unit.report.xml + - store_artifacts: + path: sonar + - store_test_results: + path: unit.report.xml + - persist_to_workspace: + root: /home/circleci/code + paths: + - sonar/unit-coverage + - std_save_cache: + cache_name: vitest + path: /home/circleci/code/node_modules/.experimental-vitest-cache From 2facb13ef60ea3a5a35c216aeb78a9a37b0fde66 Mon Sep 17 00:00:00 2001 From: Ben Teichman Date: Thu, 12 Feb 2026 12:24:43 -0500 Subject: [PATCH 2/8] fix: use when instead of with --- src/commands/std/std_save_cache.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/std/std_save_cache.yml b/src/commands/std/std_save_cache.yml index 25feebf3..bfd87ece 100644 --- a/src/commands/std/std_save_cache.yml +++ b/src/commands/std/std_save_cache.yml @@ -29,7 +29,7 @@ steps: paths: - << parameters.path > - << parameters.path_2 > - - with: + - when: condition: << parameters.use_lockfile >> steps: - unless: @@ -40,7 +40,7 @@ steps: key: << parameters.cache_name >-cache-{{ .Environment.CACHE_VERSION }}--lockfile--{{ checksum "/home/circleci/code/yarn.lock" }} paths: - << parameters.path > - - with: + - when: condition: << parameters.path_2 >> steps: - save_cache: From 2a9bc9541db64212ffb4cd0ec3c05bd20bdba246 Mon Sep 17 00:00:00 2001 From: Ben Teichman Date: Thu, 12 Feb 2026 12:25:09 -0500 Subject: [PATCH 3/8] fix: steps array --- src/commands/std/std_restore_cache.yml | 38 +++++++++++++------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/commands/std/std_restore_cache.yml b/src/commands/std/std_restore_cache.yml index 892b1222..ae4d47d8 100644 --- a/src/commands/std/std_restore_cache.yml +++ b/src/commands/std/std_restore_cache.yml @@ -8,22 +8,22 @@ parameters: type: boolean default: false steps: - when: - condition: << parameters.use_lockfile >> - steps: - - restore_cache: - name: Restore << parameters.cache_name >> Cache - keys: - - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--lockfile--{{ checksum "/home/circleci/code/yarn.lock" }} - - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}--{{ .Revision }} - - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}-- - - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--<< parameters.default_branch >>-- - unless: - condition: << parameters.use_lockfile >> - steps: - - restore_cache: - name: Restore << parameters.cache_name >> Cache - keys: - - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}--{{ .Revision }} - - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}-- - - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--<< parameters.default_branch >>-- + - when: + condition: << parameters.use_lockfile >> + steps: + - restore_cache: + name: Restore << parameters.cache_name >> Cache + keys: + - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--lockfile--{{ checksum "/home/circleci/code/yarn.lock" }} + - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}--{{ .Revision }} + - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}-- + - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--<< parameters.default_branch >>-- + - unless: + condition: << parameters.use_lockfile >> + steps: + - restore_cache: + name: Restore << parameters.cache_name >> Cache + keys: + - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}--{{ .Revision }} + - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}-- + - << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--<< parameters.default_branch >>-- From 2e3cac1aceaa443d5b80fbcf6724698891a368c8 Mon Sep 17 00:00:00 2001 From: Ben Teichman Date: Thu, 12 Feb 2026 12:26:27 -0500 Subject: [PATCH 4/8] fix: parameter injection syntax --- src/commands/std/std_save_cache.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/commands/std/std_save_cache.yml b/src/commands/std/std_save_cache.yml index bfd87ece..58daece6 100644 --- a/src/commands/std/std_save_cache.yml +++ b/src/commands/std/std_save_cache.yml @@ -17,7 +17,7 @@ steps: steps: - save_cache: name: Save << parameters.cache_name >> Cache - key: << parameters.cache_name >-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}--{{ .Revision }} + key: << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}--{{ .Revision }} paths: - << parameters.path > - when: @@ -25,7 +25,7 @@ steps: steps: - save_cache: name: Save << parameters.cache_name >> Cache - key: << parameters.cache_name >-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}--{{ .Revision }} + key: << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}--{{ .Revision }} paths: - << parameters.path > - << parameters.path_2 > @@ -37,7 +37,7 @@ steps: steps: - save_cache: name: Save << parameters.cache_name >> Cache - key: << parameters.cache_name >-cache-{{ .Environment.CACHE_VERSION }}--lockfile--{{ checksum "/home/circleci/code/yarn.lock" }} + key: << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--lockfile--{{ checksum "/home/circleci/code/yarn.lock" }} paths: - << parameters.path > - when: @@ -45,7 +45,7 @@ steps: steps: - save_cache: name: Save << parameters.cache_name >> Cache - key: << parameters.cache_name >-cache-{{ .Environment.CACHE_VERSION }}--lockfile--{{ checksum "/home/circleci/code/yarn.lock" }} + key: << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--lockfile--{{ checksum "/home/circleci/code/yarn.lock" }} paths: - << parameters.path > - << parameters.path_2 > From fb3775253083322df77a14af3f4d37c1b2b9cb7c Mon Sep 17 00:00:00 2001 From: Ben Teichman Date: Thu, 12 Feb 2026 12:31:14 -0500 Subject: [PATCH 5/8] fix: orb format --- src/commands/std/std_save_cache.yml | 14 ++++++-------- src/jobs/std/std_docker_publish.yml | 4 +++- src/jobs/std/std_install_node_and_yarn_cache.yml | 4 ---- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/commands/std/std_save_cache.yml b/src/commands/std/std_save_cache.yml index 58daece6..7acd23ea 100644 --- a/src/commands/std/std_save_cache.yml +++ b/src/commands/std/std_save_cache.yml @@ -1,8 +1,6 @@ parameters: cache_name: type: string - cache_version: - type: string path: type: string use_lockfile: @@ -19,7 +17,7 @@ steps: name: Save << parameters.cache_name >> Cache key: << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}--{{ .Revision }} paths: - - << parameters.path > + - << parameters.path >> - when: condition: << parameters.path_2 >> steps: @@ -27,8 +25,8 @@ steps: name: Save << parameters.cache_name >> Cache key: << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--branch--{{ .Branch }}--{{ .Revision }} paths: - - << parameters.path > - - << parameters.path_2 > + - << parameters.path >> + - << parameters.path_2 >> - when: condition: << parameters.use_lockfile >> steps: @@ -39,7 +37,7 @@ steps: name: Save << parameters.cache_name >> Cache key: << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--lockfile--{{ checksum "/home/circleci/code/yarn.lock" }} paths: - - << parameters.path > + - << parameters.path >> - when: condition: << parameters.path_2 >> steps: @@ -47,5 +45,5 @@ steps: name: Save << parameters.cache_name >> Cache key: << parameters.cache_name >>-cache-{{ .Environment.CACHE_VERSION }}--lockfile--{{ checksum "/home/circleci/code/yarn.lock" }} paths: - - << parameters.path > - - << parameters.path_2 > + - << parameters.path >> + - << parameters.path_2 >> diff --git a/src/jobs/std/std_docker_publish.yml b/src/jobs/std/std_docker_publish.yml index 89661309..4eb23724 100644 --- a/src/jobs/std/std_docker_publish.yml +++ b/src/jobs/std/std_docker_publish.yml @@ -1,10 +1,12 @@ parameters: executor: type: executor + ecr_url: + type: string executor: << parameters.executor >> working_directory: /home/circleci/code environment: - ECR_URL: << pipeline.parameters.ecr-url >> + ECR_URL: << parameters.ecr_url >> steps: - setup_remote_docker - std_checkout diff --git a/src/jobs/std/std_install_node_and_yarn_cache.yml b/src/jobs/std/std_install_node_and_yarn_cache.yml index 3524f2ec..00bc6c88 100644 --- a/src/jobs/std/std_install_node_and_yarn_cache.yml +++ b/src/jobs/std/std_install_node_and_yarn_cache.yml @@ -25,11 +25,9 @@ steps: - std_authenticate_yarn - std_restore_cache: cache_name: yarn - cache_version: << parameters.cache_version >> use_lockfile: true - std_restore_cache: cache_name: node - cache_version: << parameters.cache_version >> use_lockfile: true - run: name: Install Dependencies @@ -38,12 +36,10 @@ steps: yarn install --immutable - std_save_cache: cache_name: yarn - cache_version: << parameters.cache_version >> path: /home/circleci/code/.yarn/cache path_2: /home/circleci/code/.yarn/install-state.gz use_lockfile: true - std_save_cache: cache_name: node - cache_version: << parameters.cache_version >> path: /home/circleci/code/node_modules use_lockfile: true From 2ca577896b954a9967f7d453400a92f2d772805b Mon Sep 17 00:00:00 2001 From: Ben Teichman Date: Fri, 27 Feb 2026 14:24:22 -0500 Subject: [PATCH 6/8] chore: expect ci: prefix --- src/jobs/std/std_build.yml | 2 +- src/jobs/std/std_docker_publish.yml | 2 +- src/jobs/std/std_lint.yml | 2 +- src/jobs/std/std_test_dependencies.yml | 2 +- src/jobs/std/std_test_openapi_schema.yml | 2 +- src/jobs/std/std_test_types.yml | 2 +- src/jobs/std/std_test_unit.yml | 4 ++-- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/jobs/std/std_build.yml b/src/jobs/std/std_build.yml index ff258d4a..215bf360 100644 --- a/src/jobs/std/std_build.yml +++ b/src/jobs/std/std_build.yml @@ -13,7 +13,7 @@ steps: - run: name: Build command: | - yarn build + yarn ci:build - run: name: Collect OpenAPI Schemas working_directory: /home/circleci/code/apps diff --git a/src/jobs/std/std_docker_publish.yml b/src/jobs/std/std_docker_publish.yml index 4eb23724..f251ebb6 100644 --- a/src/jobs/std/std_docker_publish.yml +++ b/src/jobs/std/std_docker_publish.yml @@ -19,4 +19,4 @@ steps: name: Docker Publish command: | docker buildx create --use --bootstrap --name buildy-trying - yarn docker:publish + yarn ci:docker:publish diff --git a/src/jobs/std/std_lint.yml b/src/jobs/std/std_lint.yml index dee7b54f..0fbed1d1 100644 --- a/src/jobs/std/std_lint.yml +++ b/src/jobs/std/std_lint.yml @@ -13,7 +13,7 @@ steps: - run: name: Run Linting command: | - yarn lint:report + yarn ci:lint - store_artifacts: path: reports/lint.report.xml destination: lint.report.xml diff --git a/src/jobs/std/std_test_dependencies.yml b/src/jobs/std/std_test_dependencies.yml index 2f16059f..d7d2809a 100644 --- a/src/jobs/std/std_test_dependencies.yml +++ b/src/jobs/std/std_test_dependencies.yml @@ -15,7 +15,7 @@ steps: - run: name: Run Dependency Tests command: | - yarn test:dependencies + yarn ci:test:dependencies - std_save_cache: cache_name: test-dependencies path: /home/circleci/code/.turbo/cache diff --git a/src/jobs/std/std_test_openapi_schema.yml b/src/jobs/std/std_test_openapi_schema.yml index e2437264..d914ec40 100644 --- a/src/jobs/std/std_test_openapi_schema.yml +++ b/src/jobs/std/std_test_openapi_schema.yml @@ -23,4 +23,4 @@ steps: - run: name: Test OpenAPI Schema command: | - yarn schema:validate + yarn ci:schema:validate diff --git a/src/jobs/std/std_test_types.yml b/src/jobs/std/std_test_types.yml index 353f954f..7b180d8b 100644 --- a/src/jobs/std/std_test_types.yml +++ b/src/jobs/std/std_test_types.yml @@ -15,7 +15,7 @@ steps: - run: name: Check Types command: | - yarn test:types + yarn ci:test:types - std_save_cache: cache_name: test-types path: /home/circleci/code/.turbo/cache diff --git a/src/jobs/std/std_test_unit.yml b/src/jobs/std/std_test_unit.yml index a8801c92..f2f1d09b 100644 --- a/src/jobs/std/std_test_unit.yml +++ b/src/jobs/std/std_test_unit.yml @@ -15,8 +15,8 @@ steps: - run: name: Run Unit Tests command: | - yarn build - yarn test:unit --experimental.fsModuleCache + yarn ci:build + yarn ci:test:unit --experimental.fsModuleCache - store_artifacts: path: unit.report.xml - store_artifacts: From c392531d14ffdb5336a0cd4cfe41840d9913fe5a Mon Sep 17 00:00:00 2001 From: Ben Teichman Date: Fri, 27 Feb 2026 14:35:26 -0500 Subject: [PATCH 7/8] feat: integration tests, separate vitest cache --- src/jobs/std/std_test_integration.yml | 31 +++++++++++++++++++++++++++ src/jobs/std/std_test_unit.yml | 7 +++--- 2 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 src/jobs/std/std_test_integration.yml diff --git a/src/jobs/std/std_test_integration.yml b/src/jobs/std/std_test_integration.yml new file mode 100644 index 00000000..e0b4dba8 --- /dev/null +++ b/src/jobs/std/std_test_integration.yml @@ -0,0 +1,31 @@ +parameters: + executor: + type: executor +executor: << parameters.executor >> +working_directory: /home/circleci/code +steps: + - std_checkout + - std_restore_cache: + cache_name: node + use_lockfile: true + - std_restore_cache: + cache_name: build + - std_restore_cache: + cache_name: vitest-integration + - run: + name: Run Integration Tests + command: | + yarn ci:test:integration + - store_artifacts: + path: integration.report.xml + - store_artifacts: + path: sonar + - store_test_results: + path: integration.report.xml + - persist_to_workspace: + root: /home/circleci/code + paths: + - sonar/integration-coverage + - std_save_cache: + cache_name: vitest-integration + path: /home/circleci/code/node_modules/.experimental-vitest-cache diff --git a/src/jobs/std/std_test_unit.yml b/src/jobs/std/std_test_unit.yml index f2f1d09b..2fef6596 100644 --- a/src/jobs/std/std_test_unit.yml +++ b/src/jobs/std/std_test_unit.yml @@ -11,12 +11,11 @@ steps: - std_restore_cache: cache_name: build - std_restore_cache: - cache_name: vitest + cache_name: vitest-unit - run: name: Run Unit Tests command: | - yarn ci:build - yarn ci:test:unit --experimental.fsModuleCache + yarn ci:test:unit - store_artifacts: path: unit.report.xml - store_artifacts: @@ -28,5 +27,5 @@ steps: paths: - sonar/unit-coverage - std_save_cache: - cache_name: vitest + cache_name: vitest-unit path: /home/circleci/code/node_modules/.experimental-vitest-cache From 256408f4d78c6f3f86c2044e69c35297d6c8d2e5 Mon Sep 17 00:00:00 2001 From: Ben Teichman Date: Fri, 27 Feb 2026 14:45:21 -0500 Subject: [PATCH 8/8] fix: start docker for integration tests --- src/jobs/std/std_test_integration.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/jobs/std/std_test_integration.yml b/src/jobs/std/std_test_integration.yml index e0b4dba8..6e8f1f3c 100644 --- a/src/jobs/std/std_test_integration.yml +++ b/src/jobs/std/std_test_integration.yml @@ -4,6 +4,7 @@ parameters: executor: << parameters.executor >> working_directory: /home/circleci/code steps: + - setup_remote_docker - std_checkout - std_restore_cache: cache_name: node