mirror of
https://github.com/docker/setup-buildx-action
synced 2024-11-10 06:01:40 +00: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
3 changed files with 62 additions and 12 deletions
36
dist/index.js
generated
vendored
36
dist/index.js
generated
vendored
|
@ -2039,12 +2039,8 @@ function install(inputVersion, dockerConfigHome) {
|
|||
exports.install = install;
|
||||
function download(version) {
|
||||
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 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;
|
||||
try {
|
||||
core.info(`⬇️ Downloading ${downloadUrl}...`);
|
||||
|
@ -2057,6 +2053,33 @@ function download(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
|
||||
|
||||
/***/ }),
|
||||
|
@ -6540,10 +6563,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|||
});
|
||||
};
|
||||
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 core = __importStar(__webpack_require__(186));
|
||||
exports.osPlat = os.platform();
|
||||
exports.osArch = os.arch();
|
||||
function getInputs() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue