Skip to content

Commit

Permalink
bake: fix undefined output property
Browse files Browse the repository at this point in the history
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
  • Loading branch information
crazy-max committed Mar 26, 2023
1 parent d0929ee commit a744829
Show file tree
Hide file tree
Showing 7 changed files with 89 additions and 19 deletions.
19 changes: 17 additions & 2 deletions __tests__/buildx/bake.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,14 @@ describe('parseDefinitions', () => {
// prettier-ignore
test.each([
[
[path.join(fixturesDir, 'bake.hcl')],
[path.join(fixturesDir, 'bake-01.hcl')],
['validate'],
path.join(fixturesDir, 'bake-validate.json')
path.join(fixturesDir, 'bake-01-validate.json')
],
[
[path.join(fixturesDir, 'bake-02.hcl')],
['build'],
path.join(fixturesDir, 'bake-02-build.json')
]
])('given %p', async (sources: string[], targets: string[], out: string) => {
const bake = new Bake();
Expand All @@ -57,6 +62,16 @@ describe('hasLocalExporter', () => {
},
false
],
[
{
"target": {
"build": {
"target": "build"
},
}
},
false
],
[
{
"target": {
Expand Down
File renamed without changes.
File renamed without changes.
20 changes: 20 additions & 0 deletions __tests__/fixtures/bake-02-build.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"group": {
"default": {
"targets": [
"build"
]
}
},
"target": {
"build": {
"context": ".",
"dockerfile": "Dockerfile",
"args": {
"BUILDKIT_CONTEXT_KEEP_GIT_DIR": "1",
"GO_VERSION": "1.20"
},
"target": "build"
}
}
}
33 changes: 33 additions & 0 deletions __tests__/fixtures/bake-02.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// Copyright 2023 actions-toolkit authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

variable "GO_VERSION" {
default = "1.20"
}

target "_common" {
args = {
GO_VERSION = GO_VERSION
BUILDKIT_CONTEXT_KEEP_GIT_DIR = 1
}
}

group "default" {
targets = ["build"]
}

target "build" {
inherits = ["_common"]
target = "build"
}
4 changes: 3 additions & 1 deletion src/buildx/bake.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,9 @@ export class Bake {
const exporters = new Array<string>();
for (const key in def.target) {
const target = def.target[key];
exporters.push(...target.output);
if (target.output) {
exporters.push(...target.output);
}
}
return exporters;
}
Expand Down
32 changes: 16 additions & 16 deletions src/types/bake.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,22 @@ export interface Group {
}

export interface Target {
args: Record<string, string>;
attest: Array<string>;
'cache-from': Array<string>;
'cache-to': Array<string>;
args?: Record<string, string>;
attest?: Array<string>;
'cache-from'?: Array<string>;
'cache-to'?: Array<string>;
context: string;
contexts: Record<string, string>;
contexts?: Record<string, string>;
dockerfile: string;
'dockerfile-inline': string;
labels: Record<string, string>;
'no-cache': boolean;
'no-cache-filter': Array<string>;
output: Array<string>;
platforms: Array<string>;
pull: boolean;
secret: Array<string>;
ssh: Array<string>;
tags: Array<string>;
target: string;
'dockerfile-inline'?: string;
labels?: Record<string, string>;
'no-cache'?: boolean;
'no-cache-filter'?: Array<string>;
output?: Array<string>;
platforms?: Array<string>;
pull?: boolean;
secret?: Array<string>;
ssh?: Array<string>;
tags?: Array<string>;
target?: string;
}

0 comments on commit a744829

Please sign in to comment.