Boilerplate for a TypeScript Node service
- TypeScript configuration
ts-jestsetup for automated testing- ESLint rules &
editorconfigfor linting - Prettier and ESLint for deterministic code formatting
- CI - build, lint & test
- GitHub Releases generated with automatic changelogs populated via a configurable template
- Dependabot configuration
- VSCode settings
- Modern JS compilation target (native modules)
- PM2 ecosystem file
First, determine what kind of semantic versioning bump this release will require. Updates should fall into one of three categories: major (new functionality with breaking changes) minor (new functionality without breaking changes) or patch (backwards compatible bug fixes).
To publish a new release, checkout the make sure your git repository is clean and run one of the following commands:
npm run release:major(new functionality with breaking changes)npm run release:minor(new functionality without breaking changes)npm run release:patch(backwards compatible bug fixes)
Running any one of these will:
- Increment the version number in
package.json(andpackage-lock.jsonif available) - Create a git tag with the new version number
- Push these changes to GitHub, which triggers the
releaseworkflow in GitHub Actions - The
releaseworkflow then creates a new GitHub release with changelog automatically populated with all PRs and commits since the last version