mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-30 23:10:31 +00:00 
			
		
		
		
	Compare commits
	
		
			2 Commits
		
	
	
		
			test-show-
			...
			v4.1.0
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 8ade135a41 | ||
|   | c533a0a4cf | 
							
								
								
									
										10
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							| @@ -72,6 +72,16 @@ jobs: | |||||||
|         shell: bash |         shell: bash | ||||||
|         run: __test__/verify-side-by-side.sh |         run: __test__/verify-side-by-side.sh | ||||||
|  |  | ||||||
|  |       # Filter | ||||||
|  |       - name: Fetch filter | ||||||
|  |         uses: ./ | ||||||
|  |         with: | ||||||
|  |           filter: 'blob:none' | ||||||
|  |           path: fetch-filter | ||||||
|  |  | ||||||
|  |       - name: Verify fetch filter | ||||||
|  |         run: __test__/verify-fetch-filter.sh | ||||||
|  |  | ||||||
|       # Sparse checkout |       # Sparse checkout | ||||||
|       - name: Sparse checkout |       - name: Sparse checkout | ||||||
|         uses: ./ |         uses: ./ | ||||||
|   | |||||||
| @@ -1,5 +1,8 @@ | |||||||
| # Changelog | # Changelog | ||||||
|  |  | ||||||
|  | ## v4.1.0 | ||||||
|  | - [Add support for partial checkout filters](https://github.com/actions/checkout/pull/1396) | ||||||
|  |  | ||||||
| ## v4.0.0 | ## v4.0.0 | ||||||
| - [Support fetching without the --progress option](https://github.com/actions/checkout/pull/1067) | - [Support fetching without the --progress option](https://github.com/actions/checkout/pull/1067) | ||||||
| - [Update to node20](https://github.com/actions/checkout/pull/1436) | - [Update to node20](https://github.com/actions/checkout/pull/1436) | ||||||
|   | |||||||
| @@ -75,8 +75,12 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl | |||||||
|     # Default: true |     # Default: true | ||||||
|     clean: '' |     clean: '' | ||||||
|  |  | ||||||
|  |     # Partially clone against a given filter. Overrides sparse-checkout if set. | ||||||
|  |     # Default: null | ||||||
|  |     filter: '' | ||||||
|  |  | ||||||
|     # Do a sparse checkout on given patterns. Each pattern should be separated with |     # Do a sparse checkout on given patterns. Each pattern should be separated with | ||||||
|     # new lines |     # new lines. | ||||||
|     # Default: null |     # Default: null | ||||||
|     sparse-checkout: '' |     sparse-checkout: '' | ||||||
|  |  | ||||||
|   | |||||||
| @@ -802,6 +802,7 @@ async function setup(testName: string): Promise<void> { | |||||||
|     authToken: 'some auth token', |     authToken: 'some auth token', | ||||||
|     clean: true, |     clean: true, | ||||||
|     commit: '', |     commit: '', | ||||||
|  |     filter: undefined, | ||||||
|     sparseCheckout: [], |     sparseCheckout: [], | ||||||
|     sparseCheckoutConeMode: true, |     sparseCheckoutConeMode: true, | ||||||
|     fetchDepth: 1, |     fetchDepth: 1, | ||||||
|   | |||||||
| @@ -79,6 +79,7 @@ describe('input-helper tests', () => { | |||||||
|     expect(settings.clean).toBe(true) |     expect(settings.clean).toBe(true) | ||||||
|     expect(settings.commit).toBeTruthy() |     expect(settings.commit).toBeTruthy() | ||||||
|     expect(settings.commit).toBe('1234567890123456789012345678901234567890') |     expect(settings.commit).toBe('1234567890123456789012345678901234567890') | ||||||
|  |     expect(settings.filter).toBe(undefined) | ||||||
|     expect(settings.sparseCheckout).toBe(undefined) |     expect(settings.sparseCheckout).toBe(undefined) | ||||||
|     expect(settings.sparseCheckoutConeMode).toBe(true) |     expect(settings.sparseCheckoutConeMode).toBe(true) | ||||||
|     expect(settings.fetchDepth).toBe(1) |     expect(settings.fetchDepth).toBe(1) | ||||||
|   | |||||||
							
								
								
									
										16
									
								
								__test__/verify-fetch-filter.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										16
									
								
								__test__/verify-fetch-filter.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | #!/bin/bash | ||||||
|  |  | ||||||
|  | # Verify .git folder | ||||||
|  | if [ ! -d "./fetch-filter/.git" ]; then | ||||||
|  |   echo "Expected ./fetch-filter/.git folder to exist" | ||||||
|  |   exit 1 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | # Verify .git/config contains partialclonefilter | ||||||
|  |  | ||||||
|  | CLONE_FILTER=$(git -C fetch-filter config --local --get remote.origin.partialclonefilter) | ||||||
|  |  | ||||||
|  | if [ "$CLONE_FILTER" != "blob:none" ]; then | ||||||
|  |   echo "Expected ./fetch-filter/.git/config to have 'remote.origin.partialclonefilter' set to 'blob:none'" | ||||||
|  |   exit 1 | ||||||
|  | fi | ||||||
| @@ -53,10 +53,15 @@ inputs: | |||||||
|   clean: |   clean: | ||||||
|     description: 'Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching' |     description: 'Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching' | ||||||
|     default: true |     default: true | ||||||
|  |   filter: | ||||||
|  |     description: > | ||||||
|  |       Partially clone against a given filter. | ||||||
|  |       Overrides sparse-checkout if set. | ||||||
|  |     default: null | ||||||
|   sparse-checkout: |   sparse-checkout: | ||||||
|     description: > |     description: > | ||||||
|       Do a sparse checkout on given patterns. |       Do a sparse checkout on given patterns. | ||||||
|       Each pattern should be separated with new lines |       Each pattern should be separated with new lines. | ||||||
|     default: null |     default: null | ||||||
|   sparse-checkout-cone-mode: |   sparse-checkout-cone-mode: | ||||||
|     description: > |     description: > | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -1244,8 +1244,12 @@ function getSource(settings) { | |||||||
|             // Fetch |             // Fetch | ||||||
|             core.startGroup('Fetching the repository'); |             core.startGroup('Fetching the repository'); | ||||||
|             const fetchOptions = {}; |             const fetchOptions = {}; | ||||||
|             if (settings.sparseCheckout) |             if (settings.filter) { | ||||||
|  |                 fetchOptions.filter = settings.filter; | ||||||
|  |             } | ||||||
|  |             else if (settings.sparseCheckout) { | ||||||
|                 fetchOptions.filter = 'blob:none'; |                 fetchOptions.filter = 'blob:none'; | ||||||
|  |             } | ||||||
|             if (settings.fetchDepth <= 0) { |             if (settings.fetchDepth <= 0) { | ||||||
|                 // Fetch all branches and tags |                 // Fetch all branches and tags | ||||||
|                 let refSpec = refHelper.getRefSpecForAllHistory(settings.ref, settings.commit); |                 let refSpec = refHelper.getRefSpecForAllHistory(settings.ref, settings.commit); | ||||||
| @@ -1723,6 +1727,12 @@ function getInputs() { | |||||||
|         // Clean |         // Clean | ||||||
|         result.clean = (core.getInput('clean') || 'true').toUpperCase() === 'TRUE'; |         result.clean = (core.getInput('clean') || 'true').toUpperCase() === 'TRUE'; | ||||||
|         core.debug(`clean = ${result.clean}`); |         core.debug(`clean = ${result.clean}`); | ||||||
|  |         // Filter | ||||||
|  |         const filter = core.getInput('filter'); | ||||||
|  |         if (filter) { | ||||||
|  |             result.filter = filter; | ||||||
|  |         } | ||||||
|  |         core.debug(`filter = ${result.filter}`); | ||||||
|         // Sparse checkout |         // Sparse checkout | ||||||
|         const sparseCheckout = core.getMultilineInput('sparse-checkout'); |         const sparseCheckout = core.getMultilineInput('sparse-checkout'); | ||||||
|         if (sparseCheckout.length) { |         if (sparseCheckout.length) { | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -1,12 +1,12 @@ | |||||||
| { | { | ||||||
|   "name": "checkout", |   "name": "checkout", | ||||||
|   "version": "4.0.0", |   "version": "4.1.0", | ||||||
|   "lockfileVersion": 2, |   "lockfileVersion": 2, | ||||||
|   "requires": true, |   "requires": true, | ||||||
|   "packages": { |   "packages": { | ||||||
|     "": { |     "": { | ||||||
|       "name": "checkout", |       "name": "checkout", | ||||||
|       "version": "4.0.0", |       "version": "4.1.0", | ||||||
|       "license": "MIT", |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@actions/core": "^1.10.0", |         "@actions/core": "^1.10.0", | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "checkout", |   "name": "checkout", | ||||||
|   "version": "4.0.0", |   "version": "4.1.0", | ||||||
|   "description": "checkout action", |   "description": "checkout action", | ||||||
|   "main": "lib/main.js", |   "main": "lib/main.js", | ||||||
|   "scripts": { |   "scripts": { | ||||||
|   | |||||||
| @@ -159,7 +159,13 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> { | |||||||
|       fetchTags?: boolean |       fetchTags?: boolean | ||||||
|       showProgress?: boolean |       showProgress?: boolean | ||||||
|     } = {} |     } = {} | ||||||
|     if (settings.sparseCheckout) fetchOptions.filter = 'blob:none' |  | ||||||
|  |     if (settings.filter) { | ||||||
|  |       fetchOptions.filter = settings.filter | ||||||
|  |     } else if (settings.sparseCheckout) { | ||||||
|  |       fetchOptions.filter = 'blob:none' | ||||||
|  |     } | ||||||
|  |  | ||||||
|     if (settings.fetchDepth <= 0) { |     if (settings.fetchDepth <= 0) { | ||||||
|       // Fetch all branches and tags |       // Fetch all branches and tags | ||||||
|       let refSpec = refHelper.getRefSpecForAllHistory( |       let refSpec = refHelper.getRefSpecForAllHistory( | ||||||
|   | |||||||
| @@ -29,6 +29,11 @@ export interface IGitSourceSettings { | |||||||
|    */ |    */ | ||||||
|   clean: boolean |   clean: boolean | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * The filter determining which objects to include | ||||||
|  |    */ | ||||||
|  |   filter: string | undefined | ||||||
|  |  | ||||||
|   /** |   /** | ||||||
|    * The array of folders to make the sparse checkout |    * The array of folders to make the sparse checkout | ||||||
|    */ |    */ | ||||||
|   | |||||||
| @@ -82,6 +82,14 @@ export async function getInputs(): Promise<IGitSourceSettings> { | |||||||
|   result.clean = (core.getInput('clean') || 'true').toUpperCase() === 'TRUE' |   result.clean = (core.getInput('clean') || 'true').toUpperCase() === 'TRUE' | ||||||
|   core.debug(`clean = ${result.clean}`) |   core.debug(`clean = ${result.clean}`) | ||||||
|  |  | ||||||
|  |   // Filter | ||||||
|  |   const filter = core.getInput('filter') | ||||||
|  |   if (filter) { | ||||||
|  |     result.filter = filter | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   core.debug(`filter = ${result.filter}`) | ||||||
|  |  | ||||||
|   // Sparse checkout |   // Sparse checkout | ||||||
|   const sparseCheckout = core.getMultilineInput('sparse-checkout') |   const sparseCheckout = core.getMultilineInput('sparse-checkout') | ||||||
|   if (sparseCheckout.length) { |   if (sparseCheckout.length) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user