mirror of
				https://gitea.com/docker/build-push-action.git
				synced 2025-10-31 16:13:43 +08:00 
			
		
		
		
	Do not set --iidfile flag if local and tar exporters are used
More tests for context module Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
		| @@ -1,10 +1,24 @@ | ||||
| import fs from 'fs'; | ||||
| import * as fs from 'fs'; | ||||
| import * as path from 'path'; | ||||
| import * as semver from 'semver'; | ||||
| import * as buildx from '../src/buildx'; | ||||
| import * as exec from '@actions/exec'; | ||||
| import * as context from '../src/context'; | ||||
|  | ||||
| const digest = 'sha256:bfb45ab72e46908183546477a08f8867fc40cebadd00af54b071b097aed127a9'; | ||||
|  | ||||
| jest.spyOn(context, 'tmpDir').mockImplementation((): string => { | ||||
|   const tmpDir = path.join('/tmp/.docker-build-push-jest').split(path.sep).join(path.posix.sep); | ||||
|   if (!fs.existsSync(tmpDir)) { | ||||
|     fs.mkdirSync(tmpDir, {recursive: true}); | ||||
|   } | ||||
|   return tmpDir; | ||||
| }); | ||||
|  | ||||
| jest.spyOn(context, 'tmpNameSync').mockImplementation((): string => { | ||||
|   return path.join('/tmp/.docker-build-push-jest', '.tmpname-jest').split(path.sep).join(path.posix.sep); | ||||
| }); | ||||
|  | ||||
| describe('getImageID', () => { | ||||
|   it('matches', async () => { | ||||
|     const imageIDFile = await buildx.getImageIDFile(); | ||||
|   | ||||
| @@ -1,4 +1,125 @@ | ||||
| import * as fs from 'fs'; | ||||
| import * as path from 'path'; | ||||
| import * as context from '../src/context'; | ||||
| import * as buildx from '../src/buildx'; | ||||
|  | ||||
| jest.spyOn(context, 'defaultContext').mockImplementation((): string => { | ||||
|   return 'https://github.com/docker/build-push-action.git#test-jest'; | ||||
| }); | ||||
|  | ||||
| jest.spyOn(context, 'tmpDir').mockImplementation((): string => { | ||||
|   const tmpDir = path.join('/tmp/.docker-build-push-jest').split(path.sep).join(path.posix.sep); | ||||
|   if (!fs.existsSync(tmpDir)) { | ||||
|     fs.mkdirSync(tmpDir, {recursive: true}); | ||||
|   } | ||||
|   return tmpDir; | ||||
| }); | ||||
|  | ||||
| jest.spyOn(context, 'tmpNameSync').mockImplementation((): string => { | ||||
|   return path.join('/tmp/.docker-build-push-jest', '.tmpname-jest').split(path.sep).join(path.posix.sep); | ||||
| }); | ||||
|  | ||||
| describe('getArgs', () => { | ||||
|   beforeEach(() => { | ||||
|     process.env = Object.keys(process.env).reduce((object, key) => { | ||||
|       if (!key.startsWith('INPUT_')) { | ||||
|         object[key] = process.env[key]; | ||||
|       } | ||||
|       return object; | ||||
|     }, {}); | ||||
|   }); | ||||
|  | ||||
|   // prettier-ignore | ||||
|   test.each([ | ||||
|     [ | ||||
|       '0.4.2', | ||||
|       new Map<string, string>([ | ||||
|         // noop | ||||
|       ]), | ||||
|       [ | ||||
|         'buildx', | ||||
|         'build', | ||||
|         '--iidfile', | ||||
|         '/tmp/.docker-build-push-jest/iidfile', | ||||
|         '--file', | ||||
|         'Dockerfile', | ||||
|         'https://github.com/docker/build-push-action.git#test-jest' | ||||
|       ] | ||||
|     ], | ||||
|     [ | ||||
|       '0.4.2', | ||||
|       new Map<string, string>([ | ||||
|         ['context', '.'], | ||||
|         ['outputs', 'type=local,dest=./release-out'] | ||||
|       ]), | ||||
|       [ | ||||
|         'buildx', | ||||
|         'build', | ||||
|         '--output', 'type=local,dest=./release-out', | ||||
|         '--file', 'Dockerfile', | ||||
|         '.' | ||||
|       ] | ||||
|     ], | ||||
|     [ | ||||
|       '0.4.1', | ||||
|       new Map<string, string>([ | ||||
|         ['context', '.'] | ||||
|       ]), | ||||
|       [ | ||||
|         'buildx', | ||||
|         'build', | ||||
|         '--file', 'Dockerfile', | ||||
|         '.' | ||||
|       ] | ||||
|     ], | ||||
|     [ | ||||
|       '0.4.2', | ||||
|       new Map<string, string>([ | ||||
|         ['context', '.'], | ||||
|         ['secrets', 'GIT_AUTH_TOKEN=abcdefghijklmno0123456789'], | ||||
|       ]), | ||||
|       [ | ||||
|         'buildx', | ||||
|         'build', | ||||
|         '--iidfile', | ||||
|         '/tmp/.docker-build-push-jest/iidfile', | ||||
|         '--secret', | ||||
|         'id=GIT_AUTH_TOKEN,src=/tmp/.docker-build-push-jest/.tmpname-jest', | ||||
|         '--file', 'Dockerfile', | ||||
|         '.' | ||||
|       ] | ||||
|     ], | ||||
|     [ | ||||
|       '0.4.2', | ||||
|       new Map<string, string>([ | ||||
|         ['github-token', 'abcdefghijklmno0123456789'] | ||||
|       ]), | ||||
|       [ | ||||
|         'buildx', | ||||
|         'build', | ||||
|         '--iidfile', | ||||
|         '/tmp/.docker-build-push-jest/iidfile', | ||||
|         '--secret', | ||||
|         'id=GIT_AUTH_TOKEN,src=/tmp/.docker-build-push-jest/.tmpname-jest', | ||||
|         '--file', 'Dockerfile', | ||||
|         'https://github.com/docker/build-push-action.git#test-jest' | ||||
|       ] | ||||
|     ] | ||||
|   ])( | ||||
|     'given %p with %p as inputs, returns %p', | ||||
|     async (buildxVersion: string, inputs: Map<string, any>, expected: Array<string>) => { | ||||
|       await inputs.forEach((value: string, name: string) => { | ||||
|         setInput(name, value); | ||||
|       }); | ||||
|       const defContext = context.defaultContext(); | ||||
|       const inp = await context.getInputs(defContext); | ||||
|       console.log(inp); | ||||
|       const res = await context.getArgs(inp, defContext, buildxVersion); | ||||
|       console.log(res); | ||||
|       expect(res).toEqual(expected); | ||||
|     } | ||||
|   ); | ||||
| }); | ||||
|  | ||||
| describe('getInputList', () => { | ||||
|   it('handles single line correctly', async () => { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 CrazyMax
					CrazyMax