Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ec33a95de8 | ||
|
|
b45f7f151f | ||
|
|
0ad6a34d2a | ||
|
|
4445b1e4fc | ||
|
|
9cca84f1d8 | ||
|
|
cf39a26d01 | ||
|
|
3ebf172e37 | ||
|
|
dba2a69f61 | ||
|
|
dd07d9ea06 | ||
|
|
0af70ae7cf | ||
|
|
0f6ebcb798 | ||
|
|
3f543accc6 |
18
.github/docker-releases.json
vendored
18
.github/docker-releases.json
vendored
@@ -1,8 +1,20 @@
|
|||||||
{
|
{
|
||||||
"latest": {
|
"latest": {
|
||||||
"id": 98122882,
|
"id": 99811576,
|
||||||
"tag_name": "v23.0.3",
|
"tag_name": "v23.0.4",
|
||||||
"html_url": "https://github.com/moby/moby/releases/tag/v23.0.3",
|
"html_url": "https://github.com/moby/moby/releases/tag/v23.0.4",
|
||||||
|
"assets": []
|
||||||
|
},
|
||||||
|
"v23.0.4": {
|
||||||
|
"id": 99811576,
|
||||||
|
"tag_name": "v23.0.4",
|
||||||
|
"html_url": "https://github.com/moby/moby/releases/tag/v23.0.4",
|
||||||
|
"assets": []
|
||||||
|
},
|
||||||
|
"v24.0.0-beta.2": {
|
||||||
|
"id": 99544545,
|
||||||
|
"tag_name": "v24.0.0-beta.2",
|
||||||
|
"html_url": "https://github.com/moby/moby/releases/tag/v24.0.0-beta.2",
|
||||||
"assets": []
|
"assets": []
|
||||||
},
|
},
|
||||||
"v23.0.3": {
|
"v23.0.3": {
|
||||||
|
|||||||
@@ -33,17 +33,25 @@ describe('parseDefinitions', () => {
|
|||||||
[
|
[
|
||||||
[path.join(fixturesDir, 'bake-01.hcl')],
|
[path.join(fixturesDir, 'bake-01.hcl')],
|
||||||
['validate'],
|
['validate'],
|
||||||
|
[],
|
||||||
path.join(fixturesDir, 'bake-01-validate.json')
|
path.join(fixturesDir, 'bake-01-validate.json')
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
[path.join(fixturesDir, 'bake-02.hcl')],
|
[path.join(fixturesDir, 'bake-02.hcl')],
|
||||||
['build'],
|
['build'],
|
||||||
|
[],
|
||||||
path.join(fixturesDir, 'bake-02-build.json')
|
path.join(fixturesDir, 'bake-02-build.json')
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[path.join(fixturesDir, 'bake-01.hcl')],
|
||||||
|
['image'],
|
||||||
|
['*.output=type=docker', '*.platform=linux/amd64'],
|
||||||
|
path.join(fixturesDir, 'bake-01-overrides.json')
|
||||||
]
|
]
|
||||||
])('given %p', async (sources: string[], targets: string[], out: string) => {
|
])('given %p', async (sources: string[], targets: string[], overrides: string[], out: string) => {
|
||||||
const bake = new Bake();
|
const bake = new Bake();
|
||||||
const expectedDef = <BakeDefinition>JSON.parse(fs.readFileSync(out, {encoding: 'utf-8'}).trim())
|
const expectedDef = <BakeDefinition>JSON.parse(fs.readFileSync(out, {encoding: 'utf-8'}).trim())
|
||||||
expect(await bake.parseDefinitions(sources, targets)).toEqual(expectedDef);
|
expect(await bake.parseDefinitions(sources, targets, overrides)).toEqual(expectedDef);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
29
__tests__/fixtures/bake-01-overrides.json
Normal file
29
__tests__/fixtures/bake-01-overrides.json
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"group": {
|
||||||
|
"default": {
|
||||||
|
"targets": [
|
||||||
|
"image"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"target": {
|
||||||
|
"image": {
|
||||||
|
"context": ".",
|
||||||
|
"dockerfile": "Dockerfile",
|
||||||
|
"args": {
|
||||||
|
"BUILDKIT_CONTEXT_KEEP_GIT_DIR": "1",
|
||||||
|
"GO_VERSION": "1.20"
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"docker/buildx-bin:local"
|
||||||
|
],
|
||||||
|
"target": "binaries",
|
||||||
|
"platforms": [
|
||||||
|
"linux/amd64"
|
||||||
|
],
|
||||||
|
"output": [
|
||||||
|
"type=docker"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -52,10 +52,10 @@
|
|||||||
"@actions/io": "^1.1.2",
|
"@actions/io": "^1.1.2",
|
||||||
"@actions/tool-cache": "^2.0.1",
|
"@actions/tool-cache": "^2.0.1",
|
||||||
"async-retry": "^1.3.3",
|
"async-retry": "^1.3.3",
|
||||||
"csv-parse": "^5.3.6",
|
"csv-parse": "^5.3.8",
|
||||||
"handlebars": "^4.7.7",
|
"handlebars": "^4.7.7",
|
||||||
"jwt-decode": "^3.1.2",
|
"jwt-decode": "^3.1.2",
|
||||||
"semver": "^7.4.0",
|
"semver": "^7.5.0",
|
||||||
"tmp": "^0.2.1"
|
"tmp": "^0.2.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ export class Bake {
|
|||||||
this.buildx = opts?.buildx || new Buildx();
|
this.buildx = opts?.buildx || new Buildx();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async parseDefinitions(sources: Array<string>, targets: Array<string>, workdir?: string): Promise<BakeDefinition> {
|
public async parseDefinitions(sources: Array<string>, targets?: Array<string>, overrides?: Array<string>, load?: boolean, push?: boolean, workdir?: string): Promise<BakeDefinition> {
|
||||||
const args = ['bake'];
|
const args = ['bake'];
|
||||||
|
|
||||||
let remoteDef;
|
let remoteDef;
|
||||||
@@ -58,8 +58,19 @@ export class Bake {
|
|||||||
for (const file of files) {
|
for (const file of files) {
|
||||||
args.push('--file', file);
|
args.push('--file', file);
|
||||||
}
|
}
|
||||||
|
if (overrides) {
|
||||||
|
for (const override of overrides) {
|
||||||
|
args.push('--set', override);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (load) {
|
||||||
|
args.push('--load');
|
||||||
|
}
|
||||||
|
if (push) {
|
||||||
|
args.push('--push');
|
||||||
|
}
|
||||||
|
|
||||||
const printCmd = await this.buildx.getCommand([...args, '--print', ...targets]);
|
const printCmd = await this.buildx.getCommand([...args, '--print', ...(targets || [])]);
|
||||||
return await Exec.getExecOutput(printCmd.command, printCmd.args, {
|
return await Exec.getExecOutput(printCmd.command, printCmd.args, {
|
||||||
cwd: workdir,
|
cwd: workdir,
|
||||||
ignoreReturnCode: true,
|
ignoreReturnCode: true,
|
||||||
|
|||||||
20
yarn.lock
20
yarn.lock
@@ -818,7 +818,7 @@ __metadata:
|
|||||||
"@typescript-eslint/parser": ^5.56.0
|
"@typescript-eslint/parser": ^5.56.0
|
||||||
async-retry: ^1.3.3
|
async-retry: ^1.3.3
|
||||||
cpy-cli: ^4.2.0
|
cpy-cli: ^4.2.0
|
||||||
csv-parse: ^5.3.6
|
csv-parse: ^5.3.8
|
||||||
dotenv: ^16.0.3
|
dotenv: ^16.0.3
|
||||||
eslint: ^8.36.0
|
eslint: ^8.36.0
|
||||||
eslint-config-prettier: ^8.8.0
|
eslint-config-prettier: ^8.8.0
|
||||||
@@ -830,7 +830,7 @@ __metadata:
|
|||||||
jwt-decode: ^3.1.2
|
jwt-decode: ^3.1.2
|
||||||
prettier: ^2.8.7
|
prettier: ^2.8.7
|
||||||
rimraf: ^4.4.1
|
rimraf: ^4.4.1
|
||||||
semver: ^7.4.0
|
semver: ^7.5.0
|
||||||
tmp: ^0.2.1
|
tmp: ^0.2.1
|
||||||
ts-jest: ^29.0.5
|
ts-jest: ^29.0.5
|
||||||
ts-node: ^10.9.1
|
ts-node: ^10.9.1
|
||||||
@@ -2619,10 +2619,10 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"csv-parse@npm:*, csv-parse@npm:^5.3.6":
|
"csv-parse@npm:*, csv-parse@npm:^5.3.8":
|
||||||
version: 5.3.6
|
version: 5.3.8
|
||||||
resolution: "csv-parse@npm:5.3.6"
|
resolution: "csv-parse@npm:5.3.8"
|
||||||
checksum: a6dcb61a0676121e84a29cdee4978a0516d1412fbe8895057d17e1a95a2013e6283b253135465ad562222d095988a74587d92b2fa04192bef15090acce2a0433
|
checksum: 24d17fad0720d6e2ed8cf895817e5758bfcbf68350277bb9a6e58dd89797d7db626ef67aa62784b7ab3549e1a4527212ff8b4bdc5c7e66e0be2b9963162677d8
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@@ -5860,14 +5860,14 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"semver@npm:7.x, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.4.0":
|
"semver@npm:7.x, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.0":
|
||||||
version: 7.4.0
|
version: 7.5.0
|
||||||
resolution: "semver@npm:7.4.0"
|
resolution: "semver@npm:7.5.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
lru-cache: ^6.0.0
|
lru-cache: ^6.0.0
|
||||||
bin:
|
bin:
|
||||||
semver: bin/semver.js
|
semver: bin/semver.js
|
||||||
checksum: debf7f4d6fa36fdc5ef82bd7fc3603b6412165c8a3963a30be0c45a587be1a49e7681e80aa109da1875765741af24edc6e021cee1ba16ae96f649d06c5df296d
|
checksum: 2d266937756689a76f124ffb4c1ea3e1bbb2b263219f90ada8a11aebebe1280b13bb76cca2ca96bdee3dbc554cbc0b24752eb895b2a51577aa644427e9229f2b
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user