mirror of
https://github.com/docker/build-push-action
synced 2024-11-23 02:31:41 +00:00
Small refactor
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
parent
ec2628bb21
commit
26b3a3b0cd
4 changed files with 38 additions and 26 deletions
|
@ -16,6 +16,13 @@ describe('buildx', () => {
|
|||
expect(countBuilders).toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it('platforms', async () => {
|
||||
const platforms = await buildx.platforms();
|
||||
console.log(`platforms: ${platforms}`);
|
||||
expect(platforms).not.toBeUndefined();
|
||||
expect(platforms).not.toEqual('');
|
||||
});
|
||||
|
||||
it('acquires v0.2.2 version of buildx', async () => {
|
||||
const buildxBin = await buildx.install('v0.2.2', tmpDir);
|
||||
console.log(buildxBin);
|
||||
|
|
29
setup-buildx/dist/index.js
generated
vendored
29
setup-buildx/dist/index.js
generated
vendored
|
@ -2522,17 +2522,7 @@ function run() {
|
|||
core.info('🐳 Docker info');
|
||||
yield exec.exec('docker', ['info'], false);
|
||||
core.info('🛒 Extracting available platforms...');
|
||||
yield exec.exec(`docker`, ['buildx', 'inspect'], true).then(res => {
|
||||
if (res.stderr != '' && !res.success) {
|
||||
throw new Error(res.stderr);
|
||||
}
|
||||
for (const line of res.stdout.trim().split(os.EOL)) {
|
||||
if (line.startsWith('Platforms')) {
|
||||
core.setOutput('platforms', line.replace('Platforms: ', '').replace(/\s/g, '').trim());
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
core.setOutput('platforms', yield buildx.platforms());
|
||||
}
|
||||
catch (error) {
|
||||
core.setFailed(error.message);
|
||||
|
@ -7239,7 +7229,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.install = exports.countBuilders = exports.isAvailable = void 0;
|
||||
exports.install = exports.platforms = exports.countBuilders = exports.isAvailable = void 0;
|
||||
const fs = __importStar(__webpack_require__(747));
|
||||
const os = __importStar(__webpack_require__(87));
|
||||
const path = __importStar(__webpack_require__(622));
|
||||
|
@ -7272,6 +7262,21 @@ function countBuilders() {
|
|||
});
|
||||
}
|
||||
exports.countBuilders = countBuilders;
|
||||
function platforms() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return yield exec.exec(`docker`, ['buildx', 'inspect'], true).then(res => {
|
||||
if (res.stderr != '' && !res.success) {
|
||||
throw new Error(res.stderr);
|
||||
}
|
||||
for (const line of res.stdout.trim().split(`\n`)) {
|
||||
if (line.startsWith('Platforms')) {
|
||||
return line.replace('Platforms: ', '').replace(/\s/g, '').trim();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
exports.platforms = platforms;
|
||||
function install(inputVersion, dockerConfigHome) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const release = yield github.getRelease(inputVersion);
|
||||
|
|
|
@ -28,6 +28,19 @@ export async function countBuilders(): Promise<number> {
|
|||
});
|
||||
}
|
||||
|
||||
export async function platforms(): Promise<String | undefined> {
|
||||
return await exec.exec(`docker`, ['buildx', 'inspect'], true).then(res => {
|
||||
if (res.stderr != '' && !res.success) {
|
||||
throw new Error(res.stderr);
|
||||
}
|
||||
for (const line of res.stdout.trim().split(`\n`)) {
|
||||
if (line.startsWith('Platforms')) {
|
||||
return line.replace('Platforms: ', '').replace(/\s/g, '').trim();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
export async function install(inputVersion: string, dockerConfigHome: string): Promise<string> {
|
||||
const release: github.GitHubRelease | null = await github.getRelease(inputVersion);
|
||||
if (!release) {
|
||||
|
|
|
@ -50,21 +50,8 @@ async function run(): Promise<void> {
|
|||
await exec.exec('docker', ['buildx', 'install'], false);
|
||||
}
|
||||
|
||||
core.info('🐳 Docker info');
|
||||
await exec.exec('docker', ['info'], false);
|
||||
|
||||
core.info('🛒 Extracting available platforms...');
|
||||
await exec.exec(`docker`, ['buildx', 'inspect'], true).then(res => {
|
||||
if (res.stderr != '' && !res.success) {
|
||||
throw new Error(res.stderr);
|
||||
}
|
||||
for (const line of res.stdout.trim().split(os.EOL)) {
|
||||
if (line.startsWith('Platforms')) {
|
||||
core.setOutput('platforms', line.replace('Platforms: ', '').replace(/\s/g, '').trim());
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
core.setOutput('platforms', await buildx.platforms());
|
||||
} catch (error) {
|
||||
core.setFailed(error.message);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue