mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-31 01:58:36 +08: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: '', |     sshUser: '', | ||||||
|     workflowOrganizationId: 123456, |     workflowOrganizationId: 123456, | ||||||
|     setSafeDirectory: true, |     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() { | function getInputs() { | ||||||
|     return __awaiter(this, void 0, void 0, function* () { |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|         const result = {}; |         const result = {}; | ||||||
|         // GitHub workspace
 |         // Working directory
 | ||||||
|         let githubWorkspacePath = process.env['GITHUB_WORKSPACE']; |         let workingDirectory = core.getInput('workingDirectory') || process.env['GITHUB_WORKSPACE']; | ||||||
|         if (!githubWorkspacePath) { |         if (!workingDirectory) { | ||||||
|             throw new Error('GITHUB_WORKSPACE not defined'); |             throw new Error('working dir not defined'); | ||||||
|         } |         } | ||||||
|         githubWorkspacePath = path.resolve(githubWorkspacePath); |         workingDirectory = path.resolve(workingDirectory); | ||||||
|         core.debug(`GITHUB_WORKSPACE = '${githubWorkspacePath}'`); |         core.debug(`working directory = '${workingDirectory}'`); | ||||||
|         fsHelper.directoryExistsSync(githubWorkspacePath, true); |         fsHelper.directoryExistsSync(workingDirectory, true); | ||||||
|         // Qualified repository
 |         // Qualified repository
 | ||||||
|         const qualifiedRepository = core.getInput('repository') || |         const qualifiedRepository = core.getInput('repository') || | ||||||
|             `${github.context.repo.owner}/${github.context.repo.repo}`; |             `${github.context.repo.owner}/${github.context.repo.repo}`; | ||||||
|  | @ -1738,9 +1738,9 @@ function getInputs() { | ||||||
|         result.repositoryName = splitRepository[1]; |         result.repositoryName = splitRepository[1]; | ||||||
|         // Repository path
 |         // Repository path
 | ||||||
|         result.repositoryPath = core.getInput('path') || '.'; |         result.repositoryPath = core.getInput('path') || '.'; | ||||||
|         result.repositoryPath = path.resolve(githubWorkspacePath, result.repositoryPath); |         result.repositoryPath = path.resolve(workingDirectory, result.repositoryPath); | ||||||
|         if (!(result.repositoryPath + path.sep).startsWith(githubWorkspacePath + path.sep)) { |         if (!(result.repositoryPath + path.sep).startsWith(workingDirectory + path.sep)) { | ||||||
|             throw new Error(`Repository path '${result.repositoryPath}' is not under '${githubWorkspacePath}'`); |             throw new Error(`Repository path '${result.repositoryPath}' is not under '${workingDirectory}'`); | ||||||
|         } |         } | ||||||
|         // Workflow repository?
 |         // Workflow repository?
 | ||||||
|         const isWorkflowRepository = qualifiedRepository.toUpperCase() === |         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 |    * User override on the GitHub Server/Host URL that hosts the repository to be cloned | ||||||
|    */ |    */ | ||||||
|   githubServerUrl: string | undefined |   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> { | export async function getInputs(): Promise<IGitSourceSettings> { | ||||||
|   const result = {} as unknown as IGitSourceSettings |   const result = {} as unknown as IGitSourceSettings | ||||||
| 
 | 
 | ||||||
|   // GitHub workspace
 |   // Working directory
 | ||||||
|   let githubWorkspacePath = process.env['GITHUB_WORKSPACE'] |   let workingDirectory = core.getInput('workingDirectory') || process.env['GITHUB_WORKSPACE'] | ||||||
|   if (!githubWorkspacePath) { |   if (!workingDirectory) { | ||||||
|     throw new Error('GITHUB_WORKSPACE not defined') |     throw new Error('working dir not defined') | ||||||
|   } |   } | ||||||
|   githubWorkspacePath = path.resolve(githubWorkspacePath) |   workingDirectory = path.resolve(workingDirectory) | ||||||
|   core.debug(`GITHUB_WORKSPACE = '${githubWorkspacePath}'`) |   core.debug(`working directory = '${workingDirectory}'`) | ||||||
|   fsHelper.directoryExistsSync(githubWorkspacePath, true) |   fsHelper.directoryExistsSync(workingDirectory, true) | ||||||
| 
 | 
 | ||||||
|   // Qualified repository
 |   // Qualified repository
 | ||||||
|   const qualifiedRepository = |   const qualifiedRepository = | ||||||
|  | @ -38,16 +38,16 @@ export async function getInputs(): Promise<IGitSourceSettings> { | ||||||
|   // Repository path
 |   // Repository path
 | ||||||
|   result.repositoryPath = core.getInput('path') || '.' |   result.repositoryPath = core.getInput('path') || '.' | ||||||
|   result.repositoryPath = path.resolve( |   result.repositoryPath = path.resolve( | ||||||
|     githubWorkspacePath, |     workingDirectory, | ||||||
|     result.repositoryPath |     result.repositoryPath | ||||||
|   ) |   ) | ||||||
|   if ( |   if ( | ||||||
|     !(result.repositoryPath + path.sep).startsWith( |     !(result.repositoryPath + path.sep).startsWith( | ||||||
|       githubWorkspacePath + path.sep |       workingDirectory + path.sep | ||||||
|     ) |     ) | ||||||
|   ) { |   ) { | ||||||
|     throw new Error( |     throw new Error( | ||||||
|       `Repository path '${result.repositoryPath}' is not under '${githubWorkspacePath}'` |       `Repository path '${result.repositoryPath}' is not under '${workingDirectory}'` | ||||||
|     ) |     ) | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Marco Accorinti
						Marco Accorinti