mirror of
				https://git.mirrors.martin98.com/https://github.com/docker/setup-docker-action
				synced 2025-10-29 10:51:09 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import os from 'os';
 | |
| import path from 'path';
 | |
| import * as uuid from 'uuid';
 | |
| import * as core from '@actions/core';
 | |
| import * as actionsToolkit from '@docker/actions-toolkit';
 | |
| import {Install} from '@docker/actions-toolkit/lib/docker/install';
 | |
| import {Docker} from '@docker/actions-toolkit/lib/docker/docker';
 | |
| 
 | |
| import * as context from './context';
 | |
| import * as stateHelper from './state-helper';
 | |
| 
 | |
| actionsToolkit.run(
 | |
|   // main
 | |
|   async () => {
 | |
|     const input: context.Inputs = context.getInputs();
 | |
|     const runDir = path.join(os.homedir(), `setup-docker-action-${uuid.v4()}`);
 | |
| 
 | |
|     const install = new Install({
 | |
|       runDir: runDir,
 | |
|       version: input.version,
 | |
|       channel: input.channel
 | |
|     });
 | |
|     let toolDir;
 | |
|     if (!(await Docker.isAvailable()) || input.version) {
 | |
|       await core.group(`Download docker`, async () => {
 | |
|         toolDir = await install.download();
 | |
|       });
 | |
|     }
 | |
|     if (toolDir) {
 | |
|       stateHelper.setRunDir(runDir);
 | |
|       await install.install();
 | |
|     }
 | |
| 
 | |
|     await core.group(`Docker info`, async () => {
 | |
|       await Docker.printVersion();
 | |
|       await Docker.printInfo();
 | |
|     });
 | |
|   },
 | |
|   // post
 | |
|   async () => {
 | |
|     if (stateHelper.runDir.length == 0) {
 | |
|       return;
 | |
|     }
 | |
|     const install = new Install({
 | |
|       runDir: stateHelper.runDir
 | |
|     });
 | |
|     await install.tearDown();
 | |
|   }
 | |
| );
 | 
