Merge pull request #531 from BeyondEvil/subdir-with-default-context
Add subdirectory for Git context
This commit is contained in:
		
						commit
						1814d3dfb3
					
				
							
								
								
									
										13
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								README.md
									
									
									
									
									
								
							| @ -43,6 +43,19 @@ By default, this action uses the [Git context](#git-context) so you don't need t | |||||||
| done directly by buildkit. The git reference will be based on the [event that triggered your workflow](https://docs.github.com/en/actions/reference/events-that-trigger-workflows) | done directly by buildkit. The git reference will be based on the [event that triggered your workflow](https://docs.github.com/en/actions/reference/events-that-trigger-workflows) | ||||||
| and will result in the following context: `https://github.com/<owner>/<repo>.git#<ref>`. | and will result in the following context: `https://github.com/<owner>/<repo>.git#<ref>`. | ||||||
| 
 | 
 | ||||||
|  | You can provide a subdirectory to the [Git context](#git-context) by using the following [Handlebars template](https://handlebarsjs.com/guide/) expression `{{defaultContext}}`: | ||||||
|  | 
 | ||||||
|  | ```yaml | ||||||
|  |       - | ||||||
|  |         name: Build and push | ||||||
|  |         id: docker_build | ||||||
|  |         uses: docker/build-push-action@v2 | ||||||
|  |         with: | ||||||
|  |           context: {{defaultContext}}:docker | ||||||
|  |           push: true | ||||||
|  |           tags: user/app:latest | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
| Be careful because **any file mutation in the steps that precede the build step will be ignored, including processing of the `.dockerignore` file** since | Be careful because **any file mutation in the steps that precede the build step will be ignored, including processing of the `.dockerignore` file** since | ||||||
| the context is based on the git reference. However, you can use the [Path context](#path-context) using the | the context is based on the git reference. However, you can use the [Path context](#path-context) using the | ||||||
| [`context` input](#inputs) alongside the [`actions/checkout`](https://github.com/actions/checkout/) action to remove | [`context` input](#inputs) alongside the [`actions/checkout`](https://github.com/actions/checkout/) action to remove | ||||||
|  | |||||||
| @ -491,6 +491,24 @@ nproc=3`], | |||||||
|         '.' |         '.' | ||||||
|       ] |       ] | ||||||
|     ], |     ], | ||||||
|  |     [ | ||||||
|  |       15, | ||||||
|  |       '0.7.0', | ||||||
|  |       new Map<string, string>([ | ||||||
|  |         ['context', '{{defaultContext}}:docker'], | ||||||
|  |         ['load', 'false'], | ||||||
|  |         ['no-cache', 'false'], | ||||||
|  |         ['push', 'false'], | ||||||
|  |         ['pull', 'false'], | ||||||
|  |       ]), | ||||||
|  |       [ | ||||||
|  |         'buildx', | ||||||
|  |         'build', | ||||||
|  |         '--iidfile', '/tmp/.docker-build-push-jest/iidfile', | ||||||
|  |         '--metadata-file', '/tmp/.docker-build-push-jest/metadata-file', | ||||||
|  |         'https://github.com/docker/build-push-action.git#refs/heads/test-jest:docker' | ||||||
|  |       ] | ||||||
|  |     ], | ||||||
|   ])( |   ])( | ||||||
|     '[%d] given %p with %p as inputs, returns %p', |     '[%d] given %p with %p as inputs, returns %p', | ||||||
|     async (num: number, buildxVersion: string, inputs: Map<string, any>, expected: Array<string>) => { |     async (num: number, buildxVersion: string, inputs: Map<string, any>, expected: Array<string>) => { | ||||||
|  | |||||||
							
								
								
									
										8376
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8376
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -32,6 +32,7 @@ | |||||||
|     "@actions/exec": "^1.1.0", |     "@actions/exec": "^1.1.0", | ||||||
|     "@actions/github": "^5.0.0", |     "@actions/github": "^5.0.0", | ||||||
|     "csv-parse": "^4.16.3", |     "csv-parse": "^4.16.3", | ||||||
|  |     "handlebars": "^4.7.7", | ||||||
|     "semver": "^7.3.5", |     "semver": "^7.3.5", | ||||||
|     "tmp": "^0.2.1" |     "tmp": "^0.2.1" | ||||||
|   }, |   }, | ||||||
|  | |||||||
| @ -9,6 +9,7 @@ import {issueCommand} from '@actions/core/lib/command'; | |||||||
| import * as github from '@actions/github'; | import * as github from '@actions/github'; | ||||||
| 
 | 
 | ||||||
| import * as buildx from './buildx'; | import * as buildx from './buildx'; | ||||||
|  | import * as handlebars from 'handlebars'; | ||||||
| 
 | 
 | ||||||
| let _defaultContext, _tmpDir: string; | let _defaultContext, _tmpDir: string; | ||||||
| 
 | 
 | ||||||
| @ -97,7 +98,7 @@ export async function getArgs(inputs: Inputs, defaultContext: string, buildxVers | |||||||
|   let args: Array<string> = ['buildx']; |   let args: Array<string> = ['buildx']; | ||||||
|   args.push.apply(args, await getBuildArgs(inputs, defaultContext, buildxVersion)); |   args.push.apply(args, await getBuildArgs(inputs, defaultContext, buildxVersion)); | ||||||
|   args.push.apply(args, await getCommonArgs(inputs, buildxVersion)); |   args.push.apply(args, await getCommonArgs(inputs, buildxVersion)); | ||||||
|   args.push(inputs.context); |   args.push(handlebars.compile(inputs.context)({defaultContext})); | ||||||
|   return args; |   return args; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										27
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								yarn.lock
									
									
									
									
									
								
							| @ -1696,6 +1696,18 @@ growly@^1.3.0: | |||||||
|   resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" |   resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" | ||||||
|   integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= |   integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= | ||||||
| 
 | 
 | ||||||
|  | handlebars@^4.7.7: | ||||||
|  |   version "4.7.7" | ||||||
|  |   resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" | ||||||
|  |   integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== | ||||||
|  |   dependencies: | ||||||
|  |     minimist "^1.2.5" | ||||||
|  |     neo-async "^2.6.0" | ||||||
|  |     source-map "^0.6.1" | ||||||
|  |     wordwrap "^1.0.0" | ||||||
|  |   optionalDependencies: | ||||||
|  |     uglify-js "^3.1.4" | ||||||
|  | 
 | ||||||
| has-flag@^3.0.0: | has-flag@^3.0.0: | ||||||
|   version "3.0.0" |   version "3.0.0" | ||||||
|   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" |   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" | ||||||
| @ -2711,6 +2723,11 @@ natural-compare@^1.4.0: | |||||||
|   resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" |   resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" | ||||||
|   integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= |   integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= | ||||||
| 
 | 
 | ||||||
|  | neo-async@^2.6.0: | ||||||
|  |   version "2.6.2" | ||||||
|  |   resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" | ||||||
|  |   integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== | ||||||
|  | 
 | ||||||
| nice-try@^1.0.4: | nice-try@^1.0.4: | ||||||
|   version "1.0.5" |   version "1.0.5" | ||||||
|   resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" |   resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" | ||||||
| @ -3549,6 +3566,11 @@ typescript@^4.3.4: | |||||||
|   resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.4.tgz#3f85b986945bcf31071decdd96cf8bfa65f9dcbc" |   resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.4.tgz#3f85b986945bcf31071decdd96cf8bfa65f9dcbc" | ||||||
|   integrity sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew== |   integrity sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew== | ||||||
| 
 | 
 | ||||||
|  | uglify-js@^3.1.4: | ||||||
|  |   version "3.14.5" | ||||||
|  |   resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.5.tgz#cdabb7d4954231d80cb4a927654c4655e51f4859" | ||||||
|  |   integrity sha512-qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ== | ||||||
|  | 
 | ||||||
| union-value@^1.0.0: | union-value@^1.0.0: | ||||||
|   version "1.0.1" |   version "1.0.1" | ||||||
|   resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" |   resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" | ||||||
| @ -3685,6 +3707,11 @@ word-wrap@~1.2.3: | |||||||
|   resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" |   resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" | ||||||
|   integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== |   integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== | ||||||
| 
 | 
 | ||||||
|  | wordwrap@^1.0.0: | ||||||
|  |   version "1.0.0" | ||||||
|  |   resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" | ||||||
|  |   integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= | ||||||
|  | 
 | ||||||
| wrap-ansi@^6.2.0: | wrap-ansi@^6.2.0: | ||||||
|   version "6.2.0" |   version "6.2.0" | ||||||
|   resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" |   resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user