Use error-utils to add error metadata to Actions workflow run annotations

This commit is contained in:
James M. Greene
2024-03-27 22:35:54 -05:00
parent 1c5932fc39
commit b974ee5c49
2 changed files with 20 additions and 10 deletions

View File

@@ -1,5 +1,6 @@
const core = require('@actions/core') const core = require('@actions/core')
const github = require('@actions/github') const github = require('@actions/github')
const { convertErrorToAnnotationProperties } = require('./error-utils')
async function enablePagesSite({ githubToken }) { async function enablePagesSite({ githubToken }) {
const octokit = github.getOctokit(githubToken) const octokit = github.getOctokit(githubToken)
@@ -43,20 +44,25 @@ async function findOrCreatePagesSite({ githubToken, enablement = true }) {
} catch (error) { } catch (error) {
if (!enablement) { if (!enablement) {
core.error( core.error(
'Get Pages site failed. Please verify that the repository has Pages enabled and configured to build using GitHub Actions, or consider exploring the `enablement` parameter for this action.', `Get Pages site failed. Please verify that the repository has Pages enabled and configured to build using GitHub Actions, or consider exploring the \`enablement\` parameter for this action. Error: ${error.message}`,
error convertErrorToAnnotationProperties(error)
) )
throw error throw error
} }
core.warning('Get Pages site failed', error) core.warning(
} `Get Pages site failed. Error: ${error.message}`,
convertErrorToAnnotationProperties(error)
)
if (!pageObject && enablement) { if (!pageObject && enablement) {
// Create a new Pages site if one doesn't exist // Create a new Pages site if one doesn't exist
try { try {
pageObject = await enablePagesSite({ githubToken }) pageObject = await enablePagesSite({ githubToken })
} catch (error) { } catch (error) {
core.error('Create Pages site failed', error) core.error(
`Create Pages site failed. Error: ${error.message}`,
convertErrorToAnnotationProperties(error)
)
throw error throw error
} }
@@ -66,7 +72,10 @@ async function findOrCreatePagesSite({ githubToken, enablement = true }) {
try { try {
pageObject = await getPagesSite({ githubToken }) pageObject = await getPagesSite({ githubToken })
} catch (error) { } catch (error) {
core.error('Get Pages site still failed', error) core.error(
`Get Pages site still failed. Error: ${error.message}`,
convertErrorToAnnotationProperties(error)
)
throw error throw error
} }
} }

View File

@@ -1,6 +1,7 @@
const core = require('@actions/core') const core = require('@actions/core')
const { ConfigParser } = require('./config-parser') const { ConfigParser } = require('./config-parser')
const removeTrailingSlash = require('./remove-trailing-slash') const removeTrailingSlash = require('./remove-trailing-slash')
const { convertErrorToAnnotationProperties } = require('./error-utils')
const SUPPORTED_FILE_EXTENSIONS = ['.js', '.cjs', '.mjs'] const SUPPORTED_FILE_EXTENSIONS = ['.js', '.cjs', '.mjs']
@@ -88,13 +89,13 @@ function setPagesConfig({ staticSiteGenerator, generatorConfigFile, siteUrl }) {
core.warning( core.warning(
`Unsupported configuration file extension. Currently supported extensions: ${SUPPORTED_FILE_EXTENSIONS.map( `Unsupported configuration file extension. Currently supported extensions: ${SUPPORTED_FILE_EXTENSIONS.map(
ext => JSON.stringify(ext) ext => JSON.stringify(ext)
).join(', ')}`, ).join(', ')}. Error: ${error.message}`,
error convertErrorToAnnotationProperties(error)
) )
} else { } else {
core.warning( core.warning(
`We were unable to determine how to inject the site metadata into your config. Generated URLs may be incorrect. The base URL for this site should be ${siteUrl}. Please ensure your framework is configured to generate relative links appropriately.`, `We were unable to determine how to inject the site metadata into your config. Generated URLs may be incorrect. The base URL for this site should be ${siteUrl}. Please ensure your framework is configured to generate relative links appropriately. Error: ${error.message}`,
error convertErrorToAnnotationProperties(error)
) )
} }
} }