JSPM

extract-changelog-release

1.0.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3864
  • Score
    100M100P100Q132736F
  • License MIT

Extract release notes from latest entry in standard-version changelog

Package Exports

  • extract-changelog-release

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (extract-changelog-release) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

extract-changelog-release

npm version Build Status Conventional Commits

Extract release notes from latest entry in standard-version changelog.

This project can be used for automating GH releases with standard-version — see GH Actions example.

Usage

CLI

# Extracts from CHANGELOG.md in the current working directory
npx extract-changelog-release

# Extracts from package/CHANGELOG.md relative to CWD
npx extract-changelog-release ./package/CHANGELOG.md

# Extracts from absolute path /path/to/LOG.md
npx extract-changelog-release /path/to/LOG.md

Example Result

$ extract-changelog-release
## [3.2.0](https://github.com/LeDDGroup/typescript-transform-paths/compare/v3.1.0...v3.2.0) (2021-08-03)

### Features

* Support transformation via ts-node transpileOnly and compiler API transformNodes (closes [#123](https://github.com/LeDDGroup/typescript-transform-paths/issues/123)) ([dd942fd](https://github.com/LeDDGroup/typescript-transform-paths/commit/dd942fdbf34afcdec8f976a1540746521a758c73))

### Bug Fixes

* Custom JSDoc tags not working for older TS (fixes [#126](https://github.com/LeDDGroup/typescript-transform-paths/issues/126)) ([d4280c3](https://github.com/LeDDGroup/typescript-transform-paths/commit/d4280c3dec4dc9f3834fc98be2e51109422bd9aa))

Programmatic

import { extractLog } from 'extract-changelog-release';

let releaseNotes: string;

// Extracts from CHANGELOG.md in the current working directory
releaseNotes = extractLog(); 

// Extracts from package/CHANGELOG.md relative to CWD
releaseNotes = extractLog('package/CHANGELOG.md'); 

// Extracts from absolute path /path/to/LOG.md
releaseNotes = extractLog('/path/to/LOG.md');

GH Actions

Example config

The following action is triggered when a new version tag is pushed. It will:

  • Build
  • Test
  • Publish to NPM
  • Create a GitHub Release based on the latest entry in CHANGELOG.md

.github/workflows/publish.yml

name: Publish

on:
  push:
    tags:
      - v*.*.*

jobs:
  publish:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Setup Node.js 14.x to publish to npmjs.org
        uses: actions/setup-node@v1
        with:
          node-version: '14.x'
          registry-url: 'https://registry.npmjs.org'

      - name: Install Packages
        run: yarn install --frozen-lockfile

      - name: Build
        run: yarn build

      - name: Test
        run: yarn test
        env:
          CI: true
          
      - name: Generate Release Body
        run: npx extract-changelog-release > RELEASE_BODY.md

      - name: Publish to NPM
        run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
        
      - name: Create GitHub Release
        uses: ncipollo/release-action@v1
        with:
          bodyFile: "RELEASE_BODY.md"
          token: ${{ secrets.GITHUB_TOKEN }}