From 9645553de303a48b5bb149158f58b00d64b29e2e Mon Sep 17 00:00:00 2001 From: phoenix-server Date: Tue, 21 Apr 2026 21:54:32 -0400 Subject: [PATCH 1/2] chore(ci): install missing changelog package --- .changeset/proud-pants-cry.md | 2 + package-lock.json | 87 +++++++++++++++++++++++++++++++++++ package.json | 3 +- 3 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 .changeset/proud-pants-cry.md diff --git a/.changeset/proud-pants-cry.md b/.changeset/proud-pants-cry.md new file mode 100644 index 00000000..a845151c --- /dev/null +++ b/.changeset/proud-pants-cry.md @@ -0,0 +1,2 @@ +--- +--- diff --git a/package-lock.json b/package-lock.json index cb999924..43cff0ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,6 +25,7 @@ }, "devDependencies": { "@biomejs/biome": "^2.4.11", + "@changesets/changelog-github": "0.6.0", "@changesets/cli": "^2.27.12", "@commitlint/cli": "17.2.0", "@commitlint/config-conventional": "17.2.0", @@ -605,6 +606,18 @@ "@changesets/types": "^6.1.0" } }, + "node_modules/@changesets/changelog-github": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@changesets/changelog-github/-/changelog-github-0.6.0.tgz", + "integrity": "sha512-wA2/y4hR/A1K411cCT75rz0d46Iezxp1WYRFoFJDIUpkQ6oDBAIUiU7BZkDCmYgz0NBl94X1lgcZO+mHoiHnFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@changesets/get-github-info": "^0.8.0", + "@changesets/types": "^6.1.0", + "dotenv": "^8.1.0" + } + }, "node_modules/@changesets/cli": { "version": "2.31.0", "resolved": "https://registry.npmjs.org/@changesets/cli/-/cli-2.31.0.tgz", @@ -753,6 +766,17 @@ "semver": "^7.5.3" } }, + "node_modules/@changesets/get-github-info": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@changesets/get-github-info/-/get-github-info-0.8.0.tgz", + "integrity": "sha512-cRnC+xdF0JIik7coko3iUP9qbnfi1iJQ3sAa6dE+Tx3+ET8bjFEm63PA4WEohgjYcmsOikPHWzPsMWWiZmntOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dataloader": "^1.4.0", + "node-fetch": "^2.5.0" + } + }, "node_modules/@changesets/get-release-plan": { "version": "4.0.16", "resolved": "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-4.0.16.tgz", @@ -3997,6 +4021,13 @@ "node": ">= 6" } }, + "node_modules/dataloader": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-1.4.0.tgz", + "integrity": "sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/dateformat": { "version": "4.6.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", @@ -4178,6 +4209,16 @@ "node": ">=8" } }, + "node_modules/dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=10" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -7103,6 +7144,27 @@ "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", "optional": true }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/node-gyp-build": { "version": "4.8.4", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", @@ -10099,6 +10161,13 @@ "dev": true, "license": "MIT" }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -10609,6 +10678,24 @@ "defaults": "^1.0.3" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/package.json b/package.json index cbb47e4a..09da8b33 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "relay", "typescript" ], - "author": "Ricardo Arturo Cabral Mej\u00eda (npub1qqqqqqyz0la2jjl752yv8h7wgs3v098mh9nztd4nr6gynaef6uqqt0n47m)", + "author": "Ricardo Arturo Cabral Mejía (npub1qqqqqqyz0la2jjl752yv8h7wgs3v098mh9nztd4nr6gynaef6uqqt0n47m)", "license": "MIT", "bugs": { "url": "https://github.com/cameri/nostream/issues" @@ -90,6 +90,7 @@ "homepage": "https://github.com/cameri/nostream#readme", "devDependencies": { "@biomejs/biome": "^2.4.11", + "@changesets/changelog-github": "0.6.0", "@changesets/cli": "^2.27.12", "@commitlint/cli": "17.2.0", "@commitlint/config-conventional": "17.2.0", From c65405e40c5331edda169a832cfef338832d7c4f Mon Sep 17 00:00:00 2001 From: phoenix-server Date: Wed, 22 Apr 2026 06:06:44 -0400 Subject: [PATCH 2/2] chore(ci): skip expensive jobs on non-source changes Add dorny/paths-filter gate so lint, build-check, and both test jobs only run when source-affecting files change (src/, test/, package.json, tsconfigs, Dockerfiles, etc.). Metadata checks (commit-lint, changeset-check) remain unconditional. Also restrict commit-lint to PRs/workflow_dispatch to avoid false positives on squash-merge commits pushed to main, fix post-tests Coveralls parallel-finished to not fire on skipped test runs, and bump actions/checkout + actions/setup-node from v3 to v4. --- .github/workflows/checks.yml | 93 ++++++++++++++++++++++++++++-------- 1 file changed, 73 insertions(+), 20 deletions(-) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 9c2c2f68..22e0b3dd 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -12,15 +12,42 @@ concurrency: cancel-in-progress: true jobs: + changes: + name: Detect changed paths + runs-on: ubuntu-latest + permissions: + pull-requests: read + outputs: + src: ${{ steps.filter.outputs.src }} + steps: + - uses: actions/checkout@v4 + - id: filter + uses: dorny/paths-filter@v3 + with: + filters: | + src: + - 'src/**' + - 'test/**' + - 'package.json' + - 'package-lock.json' + - 'tsconfig*.json' + - 'biome.json' + - '.knip.json' + - 'Dockerfile*' + - 'docker-compose*.yml' + - '.nvmrc' + - '.github/workflows/checks.yml' + commit-lint: name: Lint commits runs-on: ubuntu-latest + if: github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version-file: .nvmrc cache: npm @@ -28,13 +55,16 @@ jobs: run: npm ci - name: Run commitlint uses: wagoid/commitlint-github-action@v5 + lint: name: Lint code runs-on: ubuntu-latest + needs: changes + if: needs.changes.outputs.src == 'true' steps: - name: Checkout - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version-file: .nvmrc cache: npm @@ -44,13 +74,16 @@ jobs: run: npm run lint - name: Run Knip run: npm run knip + build-check: name: Build check runs-on: ubuntu-latest + needs: changes + if: needs.changes.outputs.src == 'true' steps: - name: Checkout - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version-file: .nvmrc cache: npm @@ -58,17 +91,23 @@ jobs: run: npm ci - name: Run build check run: npm run build:check + test-units-and-cover: name: Unit Tests And Coverage runs-on: ubuntu-latest needs: - - commit-lint + - changes - lint - build-check + if: | + always() && + needs.changes.outputs.src == 'true' && + needs.lint.result != 'failure' && + needs.build-check.result != 'failure' steps: - name: Checkout - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version-file: .nvmrc cache: npm @@ -93,17 +132,23 @@ jobs: flag-name: Unit github-token: ${{ secrets.GITHUB_TOKEN }} parallel: true + test-integrations-and-cover: name: Integration Tests and Coverage runs-on: ubuntu-latest needs: - - commit-lint + - changes - lint - build-check + if: | + always() && + needs.changes.outputs.src == 'true' && + needs.lint.result != 'failure' && + needs.build-check.result != 'failure' steps: - name: Checkout - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version-file: .nvmrc - name: Run integration tests @@ -131,27 +176,35 @@ jobs: with: name: integration-coverage-lcov path: .coverage/integration/lcov.info + post-tests: name: Post Tests - needs: [test-units-and-cover, test-integrations-and-cover] runs-on: ubuntu-latest + needs: + - changes + - test-units-and-cover + - test-integrations-and-cover if: ${{ always() }} steps: - - name: Coveralls Finished - uses: coverallsapp/github-action@master - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - parallel-finished: true + - name: Coveralls Finished + uses: coverallsapp/github-action@master + if: | + needs.test-units-and-cover.result != 'skipped' || + needs.test-integrations-and-cover.result != 'skipped' + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + parallel-finished: true + changeset-check: name: Changeset Required runs-on: ubuntu-latest if: github.event_name == 'pull_request' && github.head_ref != 'changeset-release/main' steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version-file: .nvmrc cache: npm