mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-31 19:43:37 +00:00 
			
		
		
		
	Add workingDirectory option
Let user override $GITHUB_WORKSPACE as default working directory Defaults to undefined, the original behaviour is maintained
This commit is contained in:
		
							parent
							
								
									8459bc0c7e
								
							
						
					
					
						commit
						0fd0fa4fd4
					
				| @ -824,7 +824,8 @@ async function setup(testName: string): Promise<void> { | ||||
|     sshUser: '', | ||||
|     workflowOrganizationId: 123456, | ||||
|     setSafeDirectory: true, | ||||
|     githubServerUrl: githubServerUrl | ||||
|     githubServerUrl: githubServerUrl, | ||||
|     workingDirectory: undefined | ||||
|   } | ||||
| } | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										20
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @ -1716,14 +1716,14 @@ const workflowContextHelper = __importStar(__nccwpck_require__(9568)); | ||||
| function getInputs() { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         const result = {}; | ||||
|         // GitHub workspace
 | ||||
|         let githubWorkspacePath = process.env['GITHUB_WORKSPACE']; | ||||
|         if (!githubWorkspacePath) { | ||||
|             throw new Error('GITHUB_WORKSPACE not defined'); | ||||
|         // Working directory
 | ||||
|         let workingDirectory = core.getInput('workingDirectory') || process.env['GITHUB_WORKSPACE']; | ||||
|         if (!workingDirectory) { | ||||
|             throw new Error('working dir not defined'); | ||||
|         } | ||||
|         githubWorkspacePath = path.resolve(githubWorkspacePath); | ||||
|         core.debug(`GITHUB_WORKSPACE = '${githubWorkspacePath}'`); | ||||
|         fsHelper.directoryExistsSync(githubWorkspacePath, true); | ||||
|         workingDirectory = path.resolve(workingDirectory); | ||||
|         core.debug(`working directory = '${workingDirectory}'`); | ||||
|         fsHelper.directoryExistsSync(workingDirectory, true); | ||||
|         // Qualified repository
 | ||||
|         const qualifiedRepository = core.getInput('repository') || | ||||
|             `${github.context.repo.owner}/${github.context.repo.repo}`; | ||||
| @ -1738,9 +1738,9 @@ function getInputs() { | ||||
|         result.repositoryName = splitRepository[1]; | ||||
|         // Repository path
 | ||||
|         result.repositoryPath = core.getInput('path') || '.'; | ||||
|         result.repositoryPath = path.resolve(githubWorkspacePath, result.repositoryPath); | ||||
|         if (!(result.repositoryPath + path.sep).startsWith(githubWorkspacePath + path.sep)) { | ||||
|             throw new Error(`Repository path '${result.repositoryPath}' is not under '${githubWorkspacePath}'`); | ||||
|         result.repositoryPath = path.resolve(workingDirectory, result.repositoryPath); | ||||
|         if (!(result.repositoryPath + path.sep).startsWith(workingDirectory + path.sep)) { | ||||
|             throw new Error(`Repository path '${result.repositoryPath}' is not under '${workingDirectory}'`); | ||||
|         } | ||||
|         // Workflow repository?
 | ||||
|         const isWorkflowRepository = qualifiedRepository.toUpperCase() === | ||||
|  | ||||
| @ -118,4 +118,9 @@ export interface IGitSourceSettings { | ||||
|    * User override on the GitHub Server/Host URL that hosts the repository to be cloned | ||||
|    */ | ||||
|   githubServerUrl: string | undefined | ||||
| 
 | ||||
|   /** | ||||
|    * User override of the working directory (default is $GITHUB_WORKSPACE) | ||||
|    */ | ||||
|   workingDirectory: string | undefined | ||||
| } | ||||
|  | ||||
| @ -8,14 +8,14 @@ import {IGitSourceSettings} from './git-source-settings' | ||||
| export async function getInputs(): Promise<IGitSourceSettings> { | ||||
|   const result = {} as unknown as IGitSourceSettings | ||||
| 
 | ||||
|   // GitHub workspace
 | ||||
|   let githubWorkspacePath = process.env['GITHUB_WORKSPACE'] | ||||
|   if (!githubWorkspacePath) { | ||||
|     throw new Error('GITHUB_WORKSPACE not defined') | ||||
|   // Working directory
 | ||||
|   let workingDirectory = core.getInput('workingDirectory') || process.env['GITHUB_WORKSPACE'] | ||||
|   if (!workingDirectory) { | ||||
|     throw new Error('working dir not defined') | ||||
|   } | ||||
|   githubWorkspacePath = path.resolve(githubWorkspacePath) | ||||
|   core.debug(`GITHUB_WORKSPACE = '${githubWorkspacePath}'`) | ||||
|   fsHelper.directoryExistsSync(githubWorkspacePath, true) | ||||
|   workingDirectory = path.resolve(workingDirectory) | ||||
|   core.debug(`working directory = '${workingDirectory}'`) | ||||
|   fsHelper.directoryExistsSync(workingDirectory, true) | ||||
| 
 | ||||
|   // Qualified repository
 | ||||
|   const qualifiedRepository = | ||||
| @ -38,16 +38,16 @@ export async function getInputs(): Promise<IGitSourceSettings> { | ||||
|   // Repository path
 | ||||
|   result.repositoryPath = core.getInput('path') || '.' | ||||
|   result.repositoryPath = path.resolve( | ||||
|     githubWorkspacePath, | ||||
|     workingDirectory, | ||||
|     result.repositoryPath | ||||
|   ) | ||||
|   if ( | ||||
|     !(result.repositoryPath + path.sep).startsWith( | ||||
|       githubWorkspacePath + path.sep | ||||
|       workingDirectory + path.sep | ||||
|     ) | ||||
|   ) { | ||||
|     throw new Error( | ||||
|       `Repository path '${result.repositoryPath}' is not under '${githubWorkspacePath}'` | ||||
|       `Repository path '${result.repositoryPath}' is not under '${workingDirectory}'` | ||||
|     ) | ||||
|   } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user