Use url fragment for git ref context
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									8413351ed4
								
							
						
					
					
						commit
						e7964906a6
					
				
							
								
								
									
										3
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @ -89,9 +89,8 @@ jobs: | ||||
|         uses: ./ | ||||
|         env: | ||||
|           GIT_AUTH_TOKEN: ${{ github.token }} | ||||
|           GIT_REF: ${{ github.ref }} | ||||
|         with: | ||||
|           context: ${{ github.repositoryUrl }} | ||||
|           context: "${{ github.repositoryUrl }}#${{ github.ref }}" | ||||
|           file: ./test/Dockerfile | ||||
|           builder: ${{ steps.buildx.outputs.name }} | ||||
|           platforms: linux/amd64,linux/arm64 | ||||
|  | ||||
| @ -158,9 +158,8 @@ jobs: | ||||
|         uses: ./ | ||||
|         env: | ||||
|           GIT_AUTH_TOKEN: ${{ github.token }} | ||||
|           GIT_REF: ${{ github.ref }} | ||||
|         with: | ||||
|           context: ${{ github.repositoryUrl }} | ||||
|           context: "${{ github.repositoryUrl }}#${{ github.ref }}" | ||||
|           builder: ${{ steps.buildx.outputs.name }} | ||||
|           platforms: linux/amd64,linux/arm64,linux/386 | ||||
|           push: true | ||||
| @ -178,7 +177,7 @@ Following inputs can be used as `step.with` keys | ||||
| | Name                | Type    | Default                           | Description                        | | ||||
| |---------------------|---------|-----------------------------------|------------------------------------| | ||||
| | `builder`           | String  |                                   | Builder instance (see [setup-buildx](https://github.com/docker/setup-buildx-action) action) | | ||||
| | `context`           | String  | `.`                               | Build's context is the set of files located in the specified `PATH` or `URL` | | ||||
| | `context`           | String  | `.`                               | Build's context is the set of files located in the specified [`PATH` or `URL`](https://docs.docker.com/engine/reference/commandline/build/) | | ||||
| | `file`              | String  | `./Dockerfile`                    | Path to the Dockerfile. | | ||||
| | `build-args`        | List    |                                   | List of build-time variables | | ||||
| | `labels`            | List    |                                   | List of metadata for an image | | ||||
| @ -223,7 +222,6 @@ Following environment variables can be used as `step.env` keys | ||||
| |--------------------------|---------------------------------------| | ||||
| | `GIT_AUTH_HEADER`**¹**   | Raw authorization header to authenticate against git repository | | ||||
| | `GIT_AUTH_TOKEN`**¹**    | `x-access-token` basic auth to authenticate against git repository | | ||||
| | `GIT_REF`**¹**           | Git refrerence to use against git repository | | ||||
| 
 | ||||
| > **¹** Only used if `input.context` is a valid git uri. | ||||
| 
 | ||||
|  | ||||
| @ -28,11 +28,9 @@ | ||||
|   "dependencies": { | ||||
|     "@actions/cache": "^1.0.2", | ||||
|     "@actions/core": "^1.2.4", | ||||
|     "@actions/exec": "^1.0.4", | ||||
|     "git-url-parse": "^11.1.3" | ||||
|     "@actions/exec": "^1.0.4" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@types/git-url-parse": "^9.0.0", | ||||
|     "@types/jest": "^26.0.3", | ||||
|     "@types/node": "^14.0.14", | ||||
|     "@zeit/ncc": "^0.22.3", | ||||
|  | ||||
| @ -1,4 +1,3 @@ | ||||
| import gitUrlParse from 'git-url-parse'; | ||||
| import * as core from '@actions/core'; | ||||
| 
 | ||||
| export interface Inputs { | ||||
| @ -26,7 +25,7 @@ export interface Inputs { | ||||
| 
 | ||||
| export async function getInputs(): Promise<Inputs> { | ||||
|   return { | ||||
|     context: await getBuildContext(), | ||||
|     context: core.getInput('context') || '.', | ||||
|     file: core.getInput('file') || './Dockerfile', | ||||
|     buildArgs: await getInputList('build-args'), | ||||
|     labels: await getInputList('labels'), | ||||
| @ -68,23 +67,6 @@ export async function getArgs(inputs: Inputs): Promise<Array<string>> { | ||||
|   return args; | ||||
| } | ||||
| 
 | ||||
| async function getBuildContext(): Promise<string> { | ||||
|   let context: string = core.getInput('context'); | ||||
|   if (!context) { | ||||
|     return '.'; | ||||
|   } | ||||
|   try { | ||||
|     const gitUrl = gitUrlParse(context); | ||||
|     const gitRef = process.env['GIT_REF'] || ''; | ||||
|     if (gitRef) { | ||||
|       return `${gitUrl.toString()}#${gitRef}`; | ||||
|     } | ||||
|     return gitUrl.toString(); | ||||
|   } catch { | ||||
|     return context; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| async function getCommonArgs(inputs: Inputs): Promise<Array<string>> { | ||||
|   let args: Array<string> = []; | ||||
|   if (inputs.noCache) { | ||||
|  | ||||
							
								
								
									
										55
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										55
									
								
								yarn.lock
									
									
									
									
									
								
							| @ -712,11 +712,6 @@ | ||||
|   resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" | ||||
|   integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== | ||||
| 
 | ||||
| "@types/git-url-parse@^9.0.0": | ||||
|   version "9.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/@types/git-url-parse/-/git-url-parse-9.0.0.tgz#aac1315a44fa4ed5a52c3820f6c3c2fb79cbd12d" | ||||
|   integrity sha512-kA2RxBT/r/ZuDDKwMl+vFWn1Z0lfm1/Ik6Qb91wnSzyzCDa/fkM8gIOq6ruB7xfr37n6Mj5dyivileUVKsidlg== | ||||
| 
 | ||||
| "@types/graceful-fs@^4.1.2": | ||||
|   version "4.1.3" | ||||
|   resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" | ||||
| @ -1769,21 +1764,6 @@ getpass@^0.1.1: | ||||
|   dependencies: | ||||
|     assert-plus "^1.0.0" | ||||
| 
 | ||||
| git-up@^4.0.0: | ||||
|   version "4.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.2.tgz#10c3d731051b366dc19d3df454bfca3f77913a7c" | ||||
|   integrity sha512-kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ== | ||||
|   dependencies: | ||||
|     is-ssh "^1.3.0" | ||||
|     parse-url "^5.0.0" | ||||
| 
 | ||||
| git-url-parse@^11.1.3: | ||||
|   version "11.1.3" | ||||
|   resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.1.3.tgz#03625b6fc09905e9ad1da7bb2b84be1bf9123143" | ||||
|   integrity sha512-GPsfwticcu52WQ+eHp0IYkAyaOASgYdtsQDIt4rUp6GbiNt1P9ddrh3O0kQB0eD4UJZszVqNT3+9Zwcg40fywA== | ||||
|   dependencies: | ||||
|     git-up "^4.0.0" | ||||
| 
 | ||||
| glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: | ||||
|   version "7.1.6" | ||||
|   resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" | ||||
| @ -2048,13 +2028,6 @@ is-potential-custom-element-name@^1.0.0: | ||||
|   resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" | ||||
|   integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= | ||||
| 
 | ||||
| is-ssh@^1.3.0: | ||||
|   version "1.3.2" | ||||
|   resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.2.tgz#a4b82ab63d73976fd8263cceee27f99a88bdae2b" | ||||
|   integrity sha512-elEw0/0c2UscLrNG+OAorbP539E3rhliKPg+hDMWN9VwrDXfYK+4PBEykDPfxlYYtQvl84TascnQyobfQLHEhQ== | ||||
|   dependencies: | ||||
|     protocols "^1.1.0" | ||||
| 
 | ||||
| is-stream@^1.1.0: | ||||
|   version "1.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" | ||||
| @ -2921,11 +2894,6 @@ normalize-path@^3.0.0: | ||||
|   resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" | ||||
|   integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== | ||||
| 
 | ||||
| normalize-url@^3.3.0: | ||||
|   version "3.3.0" | ||||
|   resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" | ||||
|   integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== | ||||
| 
 | ||||
| npm-run-path@^2.0.0: | ||||
|   version "2.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" | ||||
| @ -3038,24 +3006,6 @@ parse-json@^5.0.0: | ||||
|     json-parse-better-errors "^1.0.1" | ||||
|     lines-and-columns "^1.1.6" | ||||
| 
 | ||||
| parse-path@^4.0.0: | ||||
|   version "4.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.2.tgz#ef14f0d3d77bae8dd4bc66563a4c151aac9e65aa" | ||||
|   integrity sha512-HSqVz6iuXSiL8C1ku5Gl1Z5cwDd9Wo0q8CoffdAghP6bz8pJa1tcMC+m4N+z6VAS8QdksnIGq1TB6EgR4vPR6w== | ||||
|   dependencies: | ||||
|     is-ssh "^1.3.0" | ||||
|     protocols "^1.4.0" | ||||
| 
 | ||||
| parse-url@^5.0.0: | ||||
|   version "5.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-5.0.2.tgz#856a3be1fcdf78dc93fc8b3791f169072d898b59" | ||||
|   integrity sha512-Czj+GIit4cdWtxo3ISZCvLiUjErSo0iI3wJ+q9Oi3QuMYTI6OZu+7cewMWZ+C1YAnKhYTk6/TLuhIgCypLthPA== | ||||
|   dependencies: | ||||
|     is-ssh "^1.3.0" | ||||
|     normalize-url "^3.3.0" | ||||
|     parse-path "^4.0.0" | ||||
|     protocols "^1.4.0" | ||||
| 
 | ||||
| parse5@5.1.1: | ||||
|   version "5.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" | ||||
| @ -3163,11 +3113,6 @@ prompts@^2.0.1: | ||||
|     kleur "^3.0.3" | ||||
|     sisteransi "^1.0.4" | ||||
| 
 | ||||
| protocols@^1.1.0, protocols@^1.4.0: | ||||
|   version "1.4.8" | ||||
|   resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" | ||||
|   integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== | ||||
| 
 | ||||
| pseudomap@^1.0.2: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 CrazyMax
						CrazyMax