chore(CI-CD): 🔧 switch to TSGo and fix release publishing#21
Conversation
- add npm_tag input for publishing - switch to actions/create-github-app-token
- change typecheck command to use tsgo - add publish and dry-run scripts - include @typescript/native-preview in dependencies
There was a problem hiding this comment.
Pull request overview
This PR updates the project’s CI/CD and developer tooling to use TSGo for type-checking and to correct the npm publishing path in the release workflow, alongside a README refresh.
Changes:
- Switch
pnpm typecheckfromtsc --noEmittotsgo --noEmitand add the TSGo runtime dependency. - Update
tsconfig.jsonto align with TSGo/TS 7 expectations. - Adjust the release workflow to publish packages directly (with
latest/alpha/betadist-tags) and update GitHub App token handling.
Reviewed changes
Copilot reviewed 3 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
tsconfig.json |
Updates compiler options intended for TSGo compatibility. |
package.json |
Switches typecheck command to tsgo, adds publish scripts and TSGo-related dependency. |
pnpm-lock.yaml |
Locks the added TSGo native preview dependency and platform-specific optional packages. |
.github/workflows/release.yml |
Updates release dispatch inputs, token auth action, and publishing command/tag support. |
README.md |
Restructures and expands documentation, adds badges and package list. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - name: Publish to npm | ||
| run: | | ||
| if [[ "${{ inputs.dry-run }}" == "false" ]]; then | ||
| pnpm release:${{ inputs.version_type }} | ||
| pnpm publish:packages --tag "${{ inputs.npm_tag }}" | ||
| else | ||
| pnpm release:${{ inputs.version_type }} --dry-run | ||
| pnpm publish:packages --tag "${{ inputs.npm_tag }}" --dry-run | ||
| echo "⚠️ DRY-RUN: npm publish skipped" |
There was a problem hiding this comment.
The publish job now runs pnpm publish:packages ..., but this script publishes from the ./build directory. This job does not run pnpm build and it only downloads package.json from the previous job, so build/ will likely be missing (or have the wrong version), causing publishing to fail. Consider either re-running pnpm build in the publish job after applying the version bump, or uploading/downloading the build/ artifacts from build-and-verify.
| | Package | Description | Install | | ||
| |---------|-------------|---------| | ||
| | [`@helpers4/all`](https://www.npmjs.com/package/@helpers4/all) | Complete collection — all categories in one package | `npm i @helpers4/all` | | ||
| | [`@helpers4/array`](https://www.npmjs.com/package/@helpers4/array) | Array operations, chunking, comparison, and manipulation | `npm i @helpers4/array` | |
There was a problem hiding this comment.
The packages table has an extra leading | on each row (|| ... |), which renders as an empty first column in Markdown on GitHub. Use a standard table format with a single leading pipe per row (e.g. | Package | Description | Install |).
✅ PR Validation Passed
📋 Pipeline Status
📊 Code Coverage
🧬 Mutation Testing
ℹ️ About this report
🤖 Generated by @helpers4 CI • 2026-04-02 |
- upload build artifacts after verification - download build artifacts before publishing
Summary
tsc --noEmittotsgo --noEmittsconfig.jsonfor TSGo 7 compatibilitypublish:packagesandpublish:dry-runscriptsalpha/betanpm tagsValidation
pnpm typecheckpnpm testpnpm buildpnpm publish:dry-run --tag betaNotes