From 9eae9d2a6eeac4337d328b13d1c3bbc3fb36a68a Mon Sep 17 00:00:00 2001 From: Michael Kriese Date: Fri, 1 Nov 2024 16:10:12 +0100 Subject: [PATCH] build: fix changelog generation --- .forgejo/workflows/build.yml | 9 ++++++--- tools/changelog.mjs | 14 +++++++++----- tools/changelog/util.js | 5 ++--- tools/forgejo-release.js | 2 +- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml index c93dc34..9cf6758 100644 --- a/.forgejo/workflows/build.yml +++ b/.forgejo/workflows/build.yml @@ -29,6 +29,8 @@ jobs: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: show-progress: false + fetch-depth: 0 # Important for changelog + filter: blob:none # We don't need all blobs - uses: ./.forgejo/actions/setup - uses: ./.forgejo/actions/setup-node @@ -38,6 +40,10 @@ jobs: - run: make readme - run: git diff --exit-code --name-only README.md + - name: changelog + run: | + pnpm changelog ${{ github.ref_type == 'tag' && 'true' || '' }} + lint-helm: runs-on: docker steps: @@ -170,9 +176,6 @@ jobs: fetch-depth: 0 # Important for changelog filter: blob:none # We don't need all blobs - # required for proper changelogs - - run: git checkout -b "release/${GITHUB_REF_NAME#v}" - - uses: ./.forgejo/actions/setup - uses: ./.forgejo/actions/setup-node diff --git a/tools/changelog.mjs b/tools/changelog.mjs index 7071e18..0fe6c09 100644 --- a/tools/changelog.mjs +++ b/tools/changelog.mjs @@ -1,8 +1,12 @@ import { getChangelog } from './changelog/util.js'; -import fs from 'node:fs'; -const file = process.argv[3] - ? fs.createWriteStream(process.argv[3]) - : process.stdout; +const stream = getChangelog(!!process.argv[2]).setEncoding('utf8'); -getChangelog(process.argv[2], !!process.argv[2]).pipe(file); +const changes = (await stream.toArray()).join(''); + +if (!changes.length) { + console.error('No changelog found'); + process.exit(1); +} + +process.stdout.write(changes); diff --git a/tools/changelog/util.js b/tools/changelog/util.js index f4ff41f..bbbe366 100644 --- a/tools/changelog/util.js +++ b/tools/changelog/util.js @@ -56,17 +56,16 @@ export const config = conventionalChangelogPreset({ /** * - * @param {string|undefined} version * @param {boolean|undefined} onTag * @returns */ -export function getChangelog(version = undefined, onTag = false) { +export function getChangelog(onTag = false) { return conventionalChangelogCore( { config, releaseCount: onTag ? 2 : 1, }, - { version, linkCompare: false }, + undefined, undefined, undefined, { headerPartial: '' }, diff --git a/tools/forgejo-release.js b/tools/forgejo-release.js index fe0f9bc..bdbe8e2 100644 --- a/tools/forgejo-release.js +++ b/tools/forgejo-release.js @@ -68,7 +68,7 @@ class GiteaReleaseCommand extends Command { return 1; } - const stream = getChangelog(tag, true).setEncoding('utf8'); + const stream = getChangelog(true).setEncoding('utf8'); const changes = (await stream.toArray()).join(''); this.context.stdout.write(`Creating release ${tag}.\n`);