1
0
Fork 0
mirror of https://github.com/docker/setup-buildx-action.git synced 2025-04-23 08:26:38 +02:00

Merge remote-tracking branch 'upstream/master' into add-context-input

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
CrazyMax 2020-09-08 11:31:08 +02:00
commit 48948ec5e2
No known key found for this signature in database
GPG key ID: 3248E46B6BB8C7F7
3 changed files with 62 additions and 12 deletions

View file

@ -92,13 +92,12 @@ export async function install(inputVersion: string, dockerConfigHome: string): P
}
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 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,
await filename(version)
);
let downloadPath: string;
try {
@ -111,3 +110,29 @@ async function download(version: string): Promise<string> {
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);
}

View file

@ -2,6 +2,7 @@ import * as os from 'os';
import * as core from '@actions/core';
export const osPlat: string = os.platform();
export const osArch: string = os.arch();
export interface Inputs {
version: string;