Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhance error log in case of a fatal error building the changelog #1334

Merged
merged 1 commit into from Apr 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
51 changes: 24 additions & 27 deletions __tests__/demo/demo.test.ts
@@ -1,47 +1,44 @@
import {mergeConfiguration, resolveConfiguration} from '../../src/utils'
import {ReleaseNotesBuilder} from '../../src/releaseNotesBuilder'
import { GithubRepository } from '../../src/repositories/GithubRepository'
import {GithubRepository} from '../../src/repositories/GithubRepository'

jest.setTimeout(180000)

// Define the token to use. Either retrieved from the environment.
// Alternatively provide it as a string right here.
// Alternatively provide it as a string right here.
const token = process.env.GITHUB_TOKEN || ''
const githubRepository = new GithubRepository(token, undefined, '.')
it('Test custom changelog builder', async () => {
// define the configuration file to use.
// define the configuration file to use.
// By default it retireves a configuration from a json file
// You can also quickly modify in code.
const configuration = mergeConfiguration(undefined, resolveConfiguration(
'',
'configs/configuration.json'
))
// You can also quickly modify in code.
const configuration = mergeConfiguration(undefined, resolveConfiguration('', 'configs/configuration.json'))

// Demo to modify the configuration further in code
// configuration.pr_template = "#{{TITLE}}"

const releaseNotesBuilder = new ReleaseNotesBuilder(
null, // The base url used for the API requests (not needed for normal github)
null, // The base url used for the API requests (not needed for normal github)
githubRepository, // Repository implementation (allows tu test gitea). Keep default for GitHub
'.', // Root path to the checked out sources. Commonly keep as default
'mikepenz', // The owner of the repo to test
'release-changelog-builder-action-playground', // The repository name
'1.5.0', // `fromTag` The from tag name or the SHA1 of the from commit
'2.0.0', // `toTag` The to tag name or the SHA1 of the to commit
false, // `includeOpen` Define if you want to include open PRs into the changelog
false, // `failOnError` Define if the action should fail on errors
false, // `ignorePrePrelease` used if no `fromTag` is defined to resolve the prior tag
false, // `fetchViaCommits` enable to fetch via commits
false, // `fetchReviewers` Enables fetching of reviewers for building the changlog (does additional API requests)
false, // `fetchReleaseInformation` Enable to fetch release information (does additional API requests)
false, // `fetchReviews` Enable to fetch reviews of the PRs (does additional API requests)
'PR', // `mode` Set the mode to use [PR, COMMIT, HYBRID]. PR -> builds changelog using PRs, COMMIT -> using commits, HYBRID -> Uses both
false, // `exportCache` Exports the fethced information to the cahce. Not relevant for this test
false, // `exportOnly` Enables to only export the fetched information however not build a changleog
null, // `cache` Path to the cache. Not relevant for this test.
configuration // The configuration to use for building the changelog
'.', // Root path to the checked out sources. Commonly keep as default
'mikepenz', // The owner of the repo to test
'release-changelog-builder-action-playground', // The repository name
'1.5.0', // `fromTag` The from tag name or the SHA1 of the from commit
'2.0.0', // `toTag` The to tag name or the SHA1 of the to commit
false, // `includeOpen` Define if you want to include open PRs into the changelog
false, // `failOnError` Define if the action should fail on errors
false, // `ignorePrePrelease` used if no `fromTag` is defined to resolve the prior tag
false, // `fetchViaCommits` enable to fetch via commits
false, // `fetchReviewers` Enables fetching of reviewers for building the changlog (does additional API requests)
false, // `fetchReleaseInformation` Enable to fetch release information (does additional API requests)
false, // `fetchReviews` Enable to fetch reviews of the PRs (does additional API requests)
'PR', // `mode` Set the mode to use [PR, COMMIT, HYBRID]. PR -> builds changelog using PRs, COMMIT -> using commits, HYBRID -> Uses both
false, // `exportCache` Exports the fethced information to the cahce. Not relevant for this test
false, // `exportOnly` Enables to only export the fetched information however not build a changleog
null, // `cache` Path to the cache. Not relevant for this test.
configuration // The configuration to use for building the changelog
)

const changeLog = await releaseNotesBuilder.build()
console.log(changeLog)
})
})
1 change: 1 addition & 0 deletions dist/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/index.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "release-changelog-builder-action",
"version": "v4.1.0",
"version": "v5.0.0",
"private": true,
"description": "A GitHub action that builds your release notes / changelog fast, easy and exactly the way you want.",
"main": "lib/main.js",
Expand Down
1 change: 1 addition & 0 deletions src/main.ts
Expand Up @@ -111,6 +111,7 @@ async function run(): Promise<void> {
}
} catch (error: any /* eslint-disable-line @typescript-eslint/no-explicit-any */) {
core.setFailed(error.message)
core.error(`🔥 Failed to generate changelog due to ${JSON.stringify(error)}`)
}
}

Expand Down