mirror of
				https://github.com/actions/checkout.git
				synced 2025-11-04 05:58:40 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
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'
 | 
						|
import * as stateHelper from './state-helper'
 | 
						|
 | 
						|
async function run(): Promise<void> {
 | 
						|
  try {
 | 
						|
    const sourceSettings = await inputHelper.getInputs()
 | 
						|
 | 
						|
    try {
 | 
						|
      // Register problem matcher
 | 
						|
      coreCommand.issueCommand(
 | 
						|
        'add-matcher',
 | 
						|
        {},
 | 
						|
        path.join(__dirname, 'problem-matcher.json')
 | 
						|
      )
 | 
						|
 | 
						|
      // Get sources
 | 
						|
      await gitSourceProvider.getSource(sourceSettings)
 | 
						|
      core.setOutput('ref', sourceSettings.ref)
 | 
						|
    } finally {
 | 
						|
      // Unregister problem matcher
 | 
						|
      coreCommand.issueCommand('remove-matcher', {owner: 'checkout-git'}, '')
 | 
						|
    }
 | 
						|
  } catch (error) {
 | 
						|
    core.setFailed(`${(error as any)?.message ?? error}`)
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
async function cleanup(): Promise<void> {
 | 
						|
  try {
 | 
						|
    await gitSourceProvider.cleanup(stateHelper.RepositoryPath)
 | 
						|
  } catch (error) {
 | 
						|
    core.warning(`${(error as any)?.message ?? error}`)
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
// Main
 | 
						|
if (!stateHelper.IsPost) {
 | 
						|
  run()
 | 
						|
}
 | 
						|
// Post
 | 
						|
else {
 | 
						|
  cleanup()
 | 
						|
}
 |