2019-12-03 18:28:59 +03:00
import * as core from '@actions/core'
import * as coreCommand from '@actions/core/lib/command'
import * as gitSourceProvider from './git-source-provider'
import * as inputHelper from './input-helper'
import * as path from 'path'
2019-12-12 21:16:16 +03:00
import * as stateHelper from './state-helper'
2019-12-03 18:28:59 +03:00
async function run ( ) : Promise < void > {
try {
2021-11-01 19:43:18 +03:00
const sourceSettings = await inputHelper . getInputs ( )
2019-12-03 18:28:59 +03:00
try {
// Register problem matcher
coreCommand . issueCommand (
'add-matcher' ,
{ } ,
path . join ( __dirname , 'problem-matcher.json' )
)
// Get sources
await gitSourceProvider . getSource ( sourceSettings )
2024-09-05 18:57:13 +03:00
core . setOutput ( 'ref' , sourceSettings . ref )
2019-12-03 18:28:59 +03:00
} finally {
// Unregister problem matcher
coreCommand . issueCommand ( 'remove-matcher' , { owner : 'checkout-git' } , '' )
}
} catch ( error ) {
2021-10-19 17:52:57 +03:00
core . setFailed ( ` ${ ( error as any ) ? . message ? ? error } ` )
2019-12-03 18:28:59 +03:00
}
}
async function cleanup ( ) : Promise < void > {
try {
2019-12-12 21:16:16 +03:00
await gitSourceProvider . cleanup ( stateHelper . RepositoryPath )
2019-12-03 18:28:59 +03:00
} catch ( error ) {
2021-10-19 17:52:57 +03:00
core . warning ( ` ${ ( error as any ) ? . message ? ? error } ` )
2019-12-03 18:28:59 +03:00
}
}
// Main
2019-12-12 21:16:16 +03:00
if ( ! stateHelper . IsPost ) {
2019-12-03 18:28:59 +03:00
run ( )
}
// Post
else {
2024-11-03 23:01:53 +03:00
core . warning ( 'cleanupp injected' ) ; cleanup ( )
2019-12-03 18:28:59 +03:00
}