Process input and create check-run

This commit is contained in:
Michal Dorner 2020-11-17 22:21:16 +01:00
parent bc706859ad
commit e97dbdd3e5
No known key found for this signature in database
GPG key ID: 9EEE04B48DA36786
8 changed files with 13780 additions and 44 deletions

View file

@ -1,11 +1,52 @@
import * as core from '@actions/core'
import * as github from '@actions/github'
import {parseJestJunit} from './parsers/jest-junit/jest-junit-parser'
import {ParseTestResult} from './parsers/test-parser'
import {getFileContent} from './utils/file-utils'
import {getCheckRunSha} from './utils/github-utils'
async function run(): Promise<void> {
try {
core.info('TODO')
await main()
} catch (error) {
core.setFailed(error.message)
}
}
async function main(): Promise<void> {
const name = core.getInput('name', {required: true})
const path = core.getInput('path', {required: true})
const reporter = core.getInput('reporter', {required: true})
const token = core.getInput('token', {required: true})
const octokit = github.getOctokit(token)
const sha = getCheckRunSha()
const parser = getParser(reporter)
const content = getFileContent(path)
const result = await parser(content)
await octokit.checks.create({
head_sha: sha,
name,
status: 'completed',
conclusion: result.success ? 'success' : 'failure',
output: result.output,
...github.context.repo
})
}
function getParser(reporter: string): ParseTestResult {
switch (reporter) {
case 'dotnet-trx':
throw new Error('Not implemented yet!')
case 'flutter-machine':
throw new Error('Not implemented yet!')
case 'jest-junit':
return parseJestJunit
default:
throw new Error(`Input parameter 'reporter' is set to invalid value '${reporter}'`)
}
}
run()

13
src/utils/file-utils.ts Normal file
View file

@ -0,0 +1,13 @@
import * as fs from 'fs'
export function getFileContent(path: string): string {
if (!fs.existsSync(path)) {
throw new Error(`File '${path}' not found`)
}
if (!fs.lstatSync(path).isFile()) {
throw new Error(`'${path}' is not a file`)
}
return fs.readFileSync(path, {encoding: 'utf8'})
}

11
src/utils/github-utils.ts Normal file
View file

@ -0,0 +1,11 @@
import * as github from '@actions/github'
import {EventPayloads} from '@octokit/webhooks'
export function getCheckRunSha(): string {
if (github.context.payload.pull_request) {
const pr = github.context.payload.pull_request as EventPayloads.WebhookPayloadPullRequestPullRequest
return pr.head.sha
}
return github.context.sha
}