Files
release-changelog-builder-a…/src/main.ts
T
2020-10-19 17:28:54 +02:00

52 lines
1.6 KiB
TypeScript

import * as core from '@actions/core'
import {retrieveRepositoryPath, resolveConfiguration} from './utils'
import * as github from '@actions/github'
import {ReleaseNotesBuilder} from './releaseNotesBuilder'
async function run(): Promise<void> {
core.setOutput('failed', false) // mark the action not failed by default
core.startGroup(`📘 Reading input values`)
try {
// read in path specification, resolve github workspace, and repo path
const inputPath = core.getInput('path')
const repositoryPath = retrieveRepositoryPath(inputPath)
// read in configuration file if possible
const configurationFile: string = core.getInput('configuration')
const configuration = resolveConfiguration(
repositoryPath,
configurationFile
)
// read in repository inputs
const token = core.getInput('token')
const owner = core.getInput('owner') || github.context.repo.owner
const repo = core.getInput('repo') || github.context.repo.repo
// read in from, to tag inputs
const fromTag = core.getInput('fromTag')
const toTag = core.getInput('toTag')
// read in flags
const ignorePreReleases = core.getInput('ignorePreReleases') === 'true'
const failOnError = core.getInput('failOnError') === 'true'
const result = await new ReleaseNotesBuilder(
token,
repositoryPath,
owner,
repo,
fromTag,
toTag,
failOnError,
ignorePreReleases,
configuration
).build()
core.setOutput('changelog', result)
} catch (error) {
core.setFailed(error.message)
}
}
run()