mirror of
https://github.com/dorny/test-reporter.git
synced 2025-12-16 14:27:10 +01:00
Process input and create check-run
This commit is contained in:
parent
bc706859ad
commit
e97dbdd3e5
8 changed files with 13780 additions and 44 deletions
43
src/main.ts
43
src/main.ts
|
|
@ -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
13
src/utils/file-utils.ts
Normal 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
11
src/utils/github-utils.ts
Normal 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
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue