mirror of
				https://github.com/docker/setup-buildx-action.git
				synced 2025-11-04 06:34:19 +08:00 
			
		
		
		
	Add support for more platform (crazy-max/ghaction-docker-buildx#223)
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									54edbcd840
								
							
						
					
					
						commit
						0fc9dc862b
					
				
							
								
								
									
										36
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							@ -2039,12 +2039,8 @@ function install(inputVersion, dockerConfigHome) {
 | 
				
			|||||||
exports.install = install;
 | 
					exports.install = install;
 | 
				
			||||||
function download(version) {
 | 
					function download(version) {
 | 
				
			||||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
        version = semver.clean(version) || '';
 | 
					 | 
				
			||||||
        const platform = context.osPlat == 'win32' ? 'windows' : context.osPlat;
 | 
					 | 
				
			||||||
        const ext = context.osPlat == 'win32' ? '.exe' : '';
 | 
					 | 
				
			||||||
        const filename = util.format('buildx-v%s.%s-amd64%s', version, platform, ext);
 | 
					 | 
				
			||||||
        const targetFile = context.osPlat == 'win32' ? 'docker-buildx.exe' : 'docker-buildx';
 | 
					        const targetFile = context.osPlat == 'win32' ? 'docker-buildx.exe' : 'docker-buildx';
 | 
				
			||||||
        const downloadUrl = util.format('https://github.com/docker/buildx/releases/download/v%s/%s', version, filename);
 | 
					        const downloadUrl = util.format('https://github.com/docker/buildx/releases/download/v%s/%s', version, yield filename(version));
 | 
				
			||||||
        let downloadPath;
 | 
					        let downloadPath;
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            core.info(`⬇️ Downloading ${downloadUrl}...`);
 | 
					            core.info(`⬇️ Downloading ${downloadUrl}...`);
 | 
				
			||||||
@ -2057,6 +2053,33 @@ function download(version) {
 | 
				
			|||||||
        return yield tc.cacheFile(downloadPath, targetFile, 'buildx', version);
 | 
					        return yield tc.cacheFile(downloadPath, targetFile, 'buildx', version);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					function filename(version) {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        let arch;
 | 
				
			||||||
 | 
					        switch (context.osArch) {
 | 
				
			||||||
 | 
					            case 'x64': {
 | 
				
			||||||
 | 
					                arch = 'amd64';
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            case 'ppc64': {
 | 
				
			||||||
 | 
					                arch = 'ppc64le';
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            case 'arm': {
 | 
				
			||||||
 | 
					                const arm_version = process.config.variables.arm_version;
 | 
				
			||||||
 | 
					                arch = arm_version ? 'arm-v' + arm_version : 'arm';
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            default: {
 | 
				
			||||||
 | 
					                arch = context.osArch;
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        const platform = context.osPlat == 'win32' ? 'windows' : context.osPlat;
 | 
				
			||||||
 | 
					        const ext = context.osPlat == 'win32' ? '.exe' : '';
 | 
				
			||||||
 | 
					        return util.format('buildx-v%s.%s-%s%s', version, platform, arch, ext);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
//# sourceMappingURL=buildx.js.map
 | 
					//# sourceMappingURL=buildx.js.map
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/***/ }),
 | 
					/***/ }),
 | 
				
			||||||
@ -6540,10 +6563,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
					Object.defineProperty(exports, "__esModule", { value: true });
 | 
				
			||||||
exports.asyncForEach = exports.getInputList = exports.getInputs = exports.osPlat = void 0;
 | 
					exports.asyncForEach = exports.getInputList = exports.getInputs = exports.osArch = exports.osPlat = void 0;
 | 
				
			||||||
const os = __importStar(__webpack_require__(87));
 | 
					const os = __importStar(__webpack_require__(87));
 | 
				
			||||||
const core = __importStar(__webpack_require__(186));
 | 
					const core = __importStar(__webpack_require__(186));
 | 
				
			||||||
exports.osPlat = os.platform();
 | 
					exports.osPlat = os.platform();
 | 
				
			||||||
 | 
					exports.osArch = os.arch();
 | 
				
			||||||
function getInputs() {
 | 
					function getInputs() {
 | 
				
			||||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
        return {
 | 
					        return {
 | 
				
			||||||
 | 
				
			|||||||
@ -92,13 +92,12 @@ export async function install(inputVersion: string, dockerConfigHome: string): P
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
async function download(version: string): Promise<string> {
 | 
					async function download(version: string): Promise<string> {
 | 
				
			||||||
  version = semver.clean(version) || '';
 | 
					 | 
				
			||||||
  const platform: string = context.osPlat == 'win32' ? 'windows' : context.osPlat;
 | 
					 | 
				
			||||||
  const ext: string = context.osPlat == 'win32' ? '.exe' : '';
 | 
					 | 
				
			||||||
  const filename: string = util.format('buildx-v%s.%s-amd64%s', version, platform, ext);
 | 
					 | 
				
			||||||
  const targetFile: string = context.osPlat == 'win32' ? 'docker-buildx.exe' : 'docker-buildx';
 | 
					  const targetFile: string = context.osPlat == 'win32' ? 'docker-buildx.exe' : 'docker-buildx';
 | 
				
			||||||
 | 
					  const downloadUrl = util.format(
 | 
				
			||||||
  const downloadUrl = util.format('https://github.com/docker/buildx/releases/download/v%s/%s', version, filename);
 | 
					    'https://github.com/docker/buildx/releases/download/v%s/%s',
 | 
				
			||||||
 | 
					    version,
 | 
				
			||||||
 | 
					    await filename(version)
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
  let downloadPath: string;
 | 
					  let downloadPath: string;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  try {
 | 
					  try {
 | 
				
			||||||
@ -111,3 +110,29 @@ async function download(version: string): Promise<string> {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  return await tc.cacheFile(downloadPath, targetFile, 'buildx', version);
 | 
					  return await tc.cacheFile(downloadPath, targetFile, 'buildx', version);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					async function filename(version: string): Promise<string> {
 | 
				
			||||||
 | 
					  let arch: string;
 | 
				
			||||||
 | 
					  switch (context.osArch) {
 | 
				
			||||||
 | 
					    case 'x64': {
 | 
				
			||||||
 | 
					      arch = 'amd64';
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    case 'ppc64': {
 | 
				
			||||||
 | 
					      arch = 'ppc64le';
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    case 'arm': {
 | 
				
			||||||
 | 
					      const arm_version = (process.config.variables as any).arm_version;
 | 
				
			||||||
 | 
					      arch = arm_version ? 'arm-v' + arm_version : 'arm';
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    default: {
 | 
				
			||||||
 | 
					      arch = context.osArch;
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  const platform: string = context.osPlat == 'win32' ? 'windows' : context.osPlat;
 | 
				
			||||||
 | 
					  const ext: string = context.osPlat == 'win32' ? '.exe' : '';
 | 
				
			||||||
 | 
					  return util.format('buildx-v%s.%s-%s%s', version, platform, arch, ext);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -2,6 +2,7 @@ import * as os from 'os';
 | 
				
			|||||||
import * as core from '@actions/core';
 | 
					import * as core from '@actions/core';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const osPlat: string = os.platform();
 | 
					export const osPlat: string = os.platform();
 | 
				
			||||||
 | 
					export const osArch: string = os.arch();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface Inputs {
 | 
					export interface Inputs {
 | 
				
			||||||
  version: string;
 | 
					  version: string;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user