From 7291a984922811fc3addd79639198d8d33bc3387 Mon Sep 17 00:00:00 2001 From: Ryan Kienstra Date: Thu, 29 Sep 2022 23:18:26 -0500 Subject: [PATCH 1/6] Use the new CircleCI Config SDK --- .circleci/config.yml | 40 +-- .circleci/dynamic/index.ts | 32 +++ .circleci/dynamic/package-lock.json | 411 ++++++++++++++++++++++++++++ .circleci/dynamic/package.json | 22 ++ .circleci/dynamic/tsconfig.json | 9 + 5 files changed, 489 insertions(+), 25 deletions(-) create mode 100644 .circleci/dynamic/index.ts create mode 100644 .circleci/dynamic/package-lock.json create mode 100644 .circleci/dynamic/package.json create mode 100644 .circleci/dynamic/tsconfig.json diff --git a/.circleci/config.yml b/.circleci/config.yml index 44c0ebf8..6332edd8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,32 +1,22 @@ version: 2.1 - orbs: - node: circleci/node@5.0.0 - + continuation: circleci/continuation@0.3 + node: circleci/node@5.0 +setup: true jobs: - test: - docker: - - image: cimg/node:16.17 + generate-config: + executor: node/default steps: - checkout - - node/install-packages - - run: npm test - - run: npm run lint - resource_class: large - package: - docker: - - image: cimg/node:16.8.0-browsers - steps: - - checkout - - node/install-packages - - run: npm run vsix - - run: mkdir /tmp/artifacts && mv local-ci*.vsix /tmp/artifacts - - store_artifacts: - path: /tmp/artifacts - resource_class: large - + - node/install-packages: + app-dir: .circleci/dynamic + - run: + name: Generate config + command: npm start + working_directory: .circleci/dynamic + - continuation/continue: + configuration_path: .circleci/dynamic/dynamicConfig.yml workflows: - test-lint: + dynamic-workflow: jobs: - - test - - package + - generate-config diff --git a/.circleci/dynamic/index.ts b/.circleci/dynamic/index.ts new file mode 100644 index 00000000..a0c8b1f8 --- /dev/null +++ b/.circleci/dynamic/index.ts @@ -0,0 +1,32 @@ +import * as fs from "fs"; +import CircleCI from "@circleci/circleci-config-sdk"; + +const config = new CircleCI.Config(); +const workflow = new CircleCI.Workflow("test-lint"); +config.addWorkflow(workflow); + +[ + new CircleCI.Job( + "test", + new CircleCI.executors.DockerExecutor("cimg/node:16.17", "large"), + [ + new CircleCI.commands.Checkout(), + new CircleCI.commands.Run({ command: "npm ci && npm test && npm run lint" }), + ] + ), + new CircleCI.Job( + "package", + new CircleCI.executors.DockerExecutor("cimg/node:16.8.0-browsers", "large"), + [ + new CircleCI.commands.Checkout(), + new CircleCI.commands.Run({ command: "npm ci && npm run vsix" }), + new CircleCI.commands.Run({ command: "mkdir /tmp/artifacts && mv local-ci*.vsix /tmp/artifacts" }), + new CircleCI.commands.StoreArtifacts({ path: "/tmp/artifacts" }), + ], + ) +].forEach((job) => { + config.addJob(job); + workflow.addJob(job); +}); + +fs.writeFile("./dynamicConfig.yml", config.stringify(), () => {}); diff --git a/.circleci/dynamic/package-lock.json b/.circleci/dynamic/package-lock.json new file mode 100644 index 00000000..df35bade --- /dev/null +++ b/.circleci/dynamic/package-lock.json @@ -0,0 +1,411 @@ +{ + "name": "local-ci-dynamic-config", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "local-ci-dynamic-config", + "version": "0.1.0", + "license": "GPL-2.0-or-later", + "devDependencies": { + "@circleci/circleci-config-sdk": "^0.10.1", + "@types/node": "^18.7.20", + "prettier": "^2.7.1", + "ts-node": "^10.9.1", + "tslib": "^2.4.0", + "typescript": "^4.8.3" + } + }, + "node_modules/@circleci/circleci-config-sdk": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@circleci/circleci-config-sdk/-/circleci-config-sdk-0.10.1.tgz", + "integrity": "sha512-QSJBYXTza3UiO2UcmHJQhORkF6UzYOVtddS2cCjDraUkonF4uCawBXXksPXnCaLI98HU8uPwwVVJhdrbJreKQw==", + "dev": true, + "dependencies": { + "yaml": "2.1.1" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.7.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.23.tgz", + "integrity": "sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "node_modules/typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz", + "integrity": "sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + } + }, + "dependencies": { + "@circleci/circleci-config-sdk": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@circleci/circleci-config-sdk/-/circleci-config-sdk-0.10.1.tgz", + "integrity": "sha512-QSJBYXTza3UiO2UcmHJQhORkF6UzYOVtddS2cCjDraUkonF4uCawBXXksPXnCaLI98HU8uPwwVVJhdrbJreKQw==", + "dev": true, + "requires": { + "yaml": "2.1.1" + } + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "@types/node": { + "version": "18.7.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.23.tgz", + "integrity": "sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==", + "dev": true + }, + "acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "dev": true + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "yaml": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz", + "integrity": "sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + } + } +} diff --git a/.circleci/dynamic/package.json b/.circleci/dynamic/package.json new file mode 100644 index 00000000..7781ee5b --- /dev/null +++ b/.circleci/dynamic/package.json @@ -0,0 +1,22 @@ +{ + "name": "local-ci-dynamic-config", + "version": "0.1.0", + "description": "Dynamic config for Local CI", + "author": "Ryan Kienstra", + "main": "index.ts", + "type": "module", + "scripts": { + "lint": "prettier --check index.ts", + "lint:fix": "prettier --write index.ts", + "start": "ts-node --esm index.ts" + }, + "license": "GPL-2.0-or-later", + "devDependencies": { + "@circleci/circleci-config-sdk": "^0.10.1", + "@types/node": "^18.7.20", + "prettier": "^2.7.1", + "ts-node": "^10.9.1", + "tslib": "^2.4.0", + "typescript": "^4.8.3" + } +} diff --git a/.circleci/dynamic/tsconfig.json b/.circleci/dynamic/tsconfig.json new file mode 100644 index 00000000..fb02c0d4 --- /dev/null +++ b/.circleci/dynamic/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "module": "ESNext", + "target": "ESNext", + "moduleResolution": "Node", + "esModuleInterop": true, + "noEmit": true + } +} From d0aef5c760ff05847fced30b52f73e75c2180300 Mon Sep 17 00:00:00 2001 From: Ryan Kienstra Date: Thu, 29 Sep 2022 23:21:24 -0500 Subject: [PATCH 2/6] Bump the config sdk npm package to the latest --- .circleci/dynamic/package-lock.json | 14 +++++++------- .circleci/dynamic/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.circleci/dynamic/package-lock.json b/.circleci/dynamic/package-lock.json index df35bade..f0c7174b 100644 --- a/.circleci/dynamic/package-lock.json +++ b/.circleci/dynamic/package-lock.json @@ -9,7 +9,7 @@ "version": "0.1.0", "license": "GPL-2.0-or-later", "devDependencies": { - "@circleci/circleci-config-sdk": "^0.10.1", + "@circleci/circleci-config-sdk": "^0.11.0", "@types/node": "^18.7.20", "prettier": "^2.7.1", "ts-node": "^10.9.1", @@ -18,9 +18,9 @@ } }, "node_modules/@circleci/circleci-config-sdk": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@circleci/circleci-config-sdk/-/circleci-config-sdk-0.10.1.tgz", - "integrity": "sha512-QSJBYXTza3UiO2UcmHJQhORkF6UzYOVtddS2cCjDraUkonF4uCawBXXksPXnCaLI98HU8uPwwVVJhdrbJreKQw==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@circleci/circleci-config-sdk/-/circleci-config-sdk-0.11.0.tgz", + "integrity": "sha512-sVCgo67i6M4pZC5c9XJglVd04V5NqObr6IuEUexQBg6mESh9vSrdbapbj4+YIJNIjo4UVwM2UsqijQmcUVMzYQ==", "dev": true, "dependencies": { "yaml": "2.1.1" @@ -245,9 +245,9 @@ }, "dependencies": { "@circleci/circleci-config-sdk": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@circleci/circleci-config-sdk/-/circleci-config-sdk-0.10.1.tgz", - "integrity": "sha512-QSJBYXTza3UiO2UcmHJQhORkF6UzYOVtddS2cCjDraUkonF4uCawBXXksPXnCaLI98HU8uPwwVVJhdrbJreKQw==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@circleci/circleci-config-sdk/-/circleci-config-sdk-0.11.0.tgz", + "integrity": "sha512-sVCgo67i6M4pZC5c9XJglVd04V5NqObr6IuEUexQBg6mESh9vSrdbapbj4+YIJNIjo4UVwM2UsqijQmcUVMzYQ==", "dev": true, "requires": { "yaml": "2.1.1" diff --git a/.circleci/dynamic/package.json b/.circleci/dynamic/package.json index 7781ee5b..5c63f135 100644 --- a/.circleci/dynamic/package.json +++ b/.circleci/dynamic/package.json @@ -12,7 +12,7 @@ }, "license": "GPL-2.0-or-later", "devDependencies": { - "@circleci/circleci-config-sdk": "^0.10.1", + "@circleci/circleci-config-sdk": "^0.11.0", "@types/node": "^18.7.20", "prettier": "^2.7.1", "ts-node": "^10.9.1", From b35ca3641c2a7465dac88987d5c53aaccf9b9088 Mon Sep 17 00:00:00 2001 From: Ryan Kienstra Date: Thu, 29 Sep 2022 23:24:42 -0500 Subject: [PATCH 3/6] Run prettier on index.ts --- .circleci/dynamic/index.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.circleci/dynamic/index.ts b/.circleci/dynamic/index.ts index a0c8b1f8..4e2d9205 100644 --- a/.circleci/dynamic/index.ts +++ b/.circleci/dynamic/index.ts @@ -11,7 +11,9 @@ config.addWorkflow(workflow); new CircleCI.executors.DockerExecutor("cimg/node:16.17", "large"), [ new CircleCI.commands.Checkout(), - new CircleCI.commands.Run({ command: "npm ci && npm test && npm run lint" }), + new CircleCI.commands.Run({ + command: "npm ci && npm test && npm run lint", + }), ] ), new CircleCI.Job( @@ -20,10 +22,12 @@ config.addWorkflow(workflow); [ new CircleCI.commands.Checkout(), new CircleCI.commands.Run({ command: "npm ci && npm run vsix" }), - new CircleCI.commands.Run({ command: "mkdir /tmp/artifacts && mv local-ci*.vsix /tmp/artifacts" }), + new CircleCI.commands.Run({ + command: "mkdir /tmp/artifacts && mv local-ci*.vsix /tmp/artifacts", + }), new CircleCI.commands.StoreArtifacts({ path: "/tmp/artifacts" }), - ], - ) + ] + ), ].forEach((job) => { config.addJob(job); workflow.addJob(job); From 8321ea278fd54ec81163b277ebc64b3afb07887e Mon Sep 17 00:00:00 2001 From: Ryan Kienstra Date: Sun, 2 Oct 2022 18:53:07 -0500 Subject: [PATCH 4/6] Add more logging to a development logging file This is just for development debugging, it's not shipped in the production .vsix --- src/gateway/LoggingChildProcessGateway.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/gateway/LoggingChildProcessGateway.ts b/src/gateway/LoggingChildProcessGateway.ts index ac396f32..0818e9c7 100644 --- a/src/gateway/LoggingChildProcessGateway.ts +++ b/src/gateway/LoggingChildProcessGateway.ts @@ -44,5 +44,12 @@ export default class LoggingChildProcessGateway { `); this.outputChannel?.append(data?.toString()); }); + + childProcess?.stdout.on('data', (data) => { + this.outputChannel?.append(`Running: + ${args.join(`\n`)} + `); + this.outputChannel?.append(data?.toString()); + }); } } From c259b16d4b46d1ac518664c56a516cca4fe98ccd Mon Sep 17 00:00:00 2001 From: Ryan Kienstra Date: Sun, 2 Oct 2022 18:56:42 -0500 Subject: [PATCH 5/6] Move the error logging lower --- src/gateway/LoggingChildProcessGateway.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gateway/LoggingChildProcessGateway.ts b/src/gateway/LoggingChildProcessGateway.ts index 0818e9c7..31d7d164 100644 --- a/src/gateway/LoggingChildProcessGateway.ts +++ b/src/gateway/LoggingChildProcessGateway.ts @@ -38,15 +38,15 @@ export default class LoggingChildProcessGateway { childProcess: cp.ChildProcessWithoutNullStreams, args: string[] ) { - childProcess?.stderr.on('data', (data) => { - this.outputChannel?.append(`Error when running: + childProcess?.stdout.on('data', (data) => { + this.outputChannel?.append(`Running: ${args.join(`\n`)} `); this.outputChannel?.append(data?.toString()); }); - childProcess?.stdout.on('data', (data) => { - this.outputChannel?.append(`Running: + childProcess?.stderr.on('data', (data) => { + this.outputChannel?.append(`Error when running: ${args.join(`\n`)} `); this.outputChannel?.append(data?.toString()); From 1beb6a611d84b8f6ede8e5962d6f8c79280a5896 Mon Sep 17 00:00:00 2001 From: Ryan Kienstra Date: Sun, 2 Oct 2022 19:35:50 -0500 Subject: [PATCH 6/6] Bump the binary version to the latest, v0.1.21812 https://github.com/CircleCI-Public/circleci-cli/releases/tag/v0.1.21812 --- node/binary.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/binary.js b/node/binary.js index c5a6921b..254ce3d1 100644 --- a/node/binary.js +++ b/node/binary.js @@ -3,7 +3,7 @@ const { Binary } = require('@cloudflare/binary-install'); const { type, arch } = require('os'); const path = require('path'); -const binaryVersion = '0.1.21412'; +const binaryVersion = '0.1.21812'; const intelMacBinaryVersion = '0.1.17087'; const supportedPlatforms = [