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