Compare commits

...

11 Commits

Author SHA1 Message Date
87e1457170 Merge pull request #46 from crazy-max/disable-clipping
Tweak BuildKit step log limits
2021-01-04 14:09:14 -08:00
467d3396dc Tweak BuildKit step log limits
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-01-04 22:45:04 +01:00
370507b713 Merge pull request #49 from crazy-max/bootstrap-builder
Override the configured builder instance
2021-01-04 19:06:19 +01:00
0ddb9e80d4 Override the configured builder instance
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-01-04 19:04:04 +01:00
daf8c4fb8d Merge pull request #48 from crazy-max/builder-name
Improve builder name generation
2021-01-02 00:57:35 +01:00
db0ae322da Improve builder name generation
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-01-02 00:54:57 +01:00
5c0276ad2c Merge pull request #43 from crazy-max/remove-tempfix
Remove hardcoded buildkit container image moby/buildkit:v0.8-beta
2020-12-06 14:29:23 -08:00
ca778fe8a3 Remove hardcoded buildkit container image moby/buildkit:v0.8-beta
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2020-12-06 11:11:17 +01:00
c3c3e01512 Merge pull request #42 from docker/dependabot/npm_and_yarn/semver-7.3.4
Bump semver from 7.3.2 to 7.3.4
2020-12-05 08:03:44 +01:00
a999bae018 Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2020-12-05 07:17:58 +01:00
4608f72b35 Bump semver from 7.3.2 to 7.3.4
Bumps [semver](https://github.com/npm/node-semver) from 7.3.2 to 7.3.4.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/master/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.3.2...v7.3.4)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-02 06:10:04 +00:00
7 changed files with 1671 additions and 177 deletions

View File

@ -22,7 +22,7 @@ jobs:
matrix:
buildx-version:
- latest
- v0.2.2
- v0.4.1
- ""
steps:
-
@ -183,7 +183,7 @@ jobs:
matrix:
buildx-version:
- latest
- v0.2.2
- v0.4.1
- ""
qemu-platforms:
- all

View File

@ -41,18 +41,10 @@ describe('platforms', () => {
);
});
describe('countBuilders', () => {
it('valid', async () => {
const countBuilders = await buildx.countBuilders();
console.log(`countBuilders: ${countBuilders}`);
expect(countBuilders).toBeGreaterThan(0);
}, 100000);
});
describe('install', () => {
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'setup-buildx-'));
it('acquires v0.2.2 version of buildx', async () => {
const buildxBin = await buildx.install('v0.2.2', tmpDir);
it('acquires v0.4.1 version of buildx', async () => {
const buildxBin = await buildx.install('v0.4.1', tmpDir);
console.log(buildxBin);
expect(fs.existsSync(buildxBin)).toBe(true);
}, 100000);

1771
dist/index.js generated vendored

File diff suppressed because it is too large Load Diff

View File

@ -31,7 +31,8 @@
"@actions/exec": "^1.0.4",
"@actions/http-client": "^1.0.9",
"@actions/tool-cache": "^1.6.1",
"semver": "^7.3.2"
"semver": "^7.3.4",
"uuid": "^8.3.2"
},
"devDependencies": {
"@types/jest": "^26.0.3",

View File

@ -34,15 +34,6 @@ export async function isAvailable(): Promise<Boolean> {
});
}
export async function countBuilders(): Promise<number> {
return await exec.exec(`docker`, ['buildx', 'ls'], true).then(res => {
if (res.stderr != '' && !res.success) {
throw new Error(`Cannot list builders: ${res.stderr}`);
}
return (res.stdout.trim().split(`\n`).length - 1) / 2;
});
}
export async function platforms(): Promise<String | undefined> {
return await exec.exec(`docker`, ['buildx', 'inspect'], true).then(res => {
if (res.stderr != '' && !res.success) {

View File

@ -8,6 +8,9 @@ import * as context from './context';
import * as mexec from './exec';
import * as stateHelper from './state-helper';
const buildkitStepLogMaxSize = 1024 * 8192;
const buildkitStepLogMaxSpeed = -1;
async function run(): Promise<void> {
try {
if (os.platform() !== 'linux') {
@ -27,8 +30,7 @@ async function run(): Promise<void> {
const buildxVersion = await buildx.getVersion();
core.info(`📣 Buildx version: ${buildxVersion}`);
const builderName: string =
inputs.driver == 'docker' ? 'default' : `builder-${process.env.GITHUB_JOB}-${(await buildx.countBuilders()) + 1}`;
const builderName: string = inputs.driver == 'docker' ? 'default' : `builder-${require('uuid').v4()}`;
core.setOutput('name', builderName);
stateHelper.setBuilderName(builderName);
@ -36,17 +38,11 @@ async function run(): Promise<void> {
core.startGroup(`🔨 Creating a new builder instance`);
let createArgs: Array<string> = ['buildx', 'create', '--name', builderName, '--driver', inputs.driver];
if (semver.satisfies(buildxVersion, '>=0.3.0')) {
let hasImageDriverOpt: boolean = false;
await context.asyncForEach(inputs.driverOpts, async driverOpt => {
if (driverOpt.startsWith('image=')) {
hasImageDriverOpt = true;
}
createArgs.push('--driver-opt', driverOpt);
});
if (!hasImageDriverOpt) {
//FIXME: Temporary fix (docker/build-push-action#154, docker/build-push-action#162)
createArgs.push('--driver-opt', 'image=moby/buildkit:v0.8-beta');
}
createArgs.push('--driver-opt', 'env.BUILDKIT_STEP_LOG_MAX_SIZE=' + buildkitStepLogMaxSize);
createArgs.push('--driver-opt', 'env.BUILDKIT_STEP_LOG_MAX_SPEED=' + buildkitStepLogMaxSpeed);
if (inputs.buildkitdFlags) {
createArgs.push('--buildkitd-flags', inputs.buildkitdFlags);
}
@ -61,7 +57,11 @@ async function run(): Promise<void> {
core.endGroup();
core.startGroup(`🏃 Booting builder`);
await exec.exec('docker', ['buildx', 'inspect', '--bootstrap']);
let bootstrapArgs: Array<string> = ['buildx', 'inspect', '--bootstrap'];
if (semver.satisfies(buildxVersion, '>=0.4.0')) {
bootstrapArgs.push('--builder', builderName);
}
await exec.exec('docker', bootstrapArgs);
core.endGroup();
}

View File

@ -2490,6 +2490,13 @@ lru-cache@^4.1.5:
pseudomap "^1.0.2"
yallist "^2.1.2"
lru-cache@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
dependencies:
yallist "^4.0.0"
make-dir@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
@ -3107,10 +3114,12 @@ saxes@^5.0.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
semver@7.x, semver@^7.3.2:
version "7.3.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
semver@7.x, semver@^7.3.2, semver@^7.3.4:
version "7.3.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97"
integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==
dependencies:
lru-cache "^6.0.0"
semver@^6.0.0, semver@^6.1.0, semver@^6.3.0:
version "6.3.0"
@ -3602,6 +3611,11 @@ uuid@^8.2.0:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea"
integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==
uuid@^8.3.2:
version "8.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
v8-to-istanbul@^4.1.3:
version "4.1.4"
resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz#b97936f21c0e2d9996d4985e5c5156e9d4e49cd6"
@ -3753,6 +3767,11 @@ yallist@^2.1.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
yallist@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
yargs-parser@18.x, yargs-parser@^18.1.2:
version "18.1.3"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"