Skip to content

Commit

Permalink
build: improve regex for iidfile
Browse files Browse the repository at this point in the history
improve the regex to match only at the beginning of the line.

It prevents matching "Copying %s $CHECKSUM" messages returned by the
containers/image copy process.

Closes: #10233

Signed-off-by: Giuseppe Scrivano <[email protected]>
  • Loading branch information
giuseppe committed May 6, 2021
1 parent 9b9bd9e commit 68accbf
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 2 deletions.
7 changes: 5 additions & 2 deletions pkg/bindings/images/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ import (
"github.com/sirupsen/logrus"
)

var (
iidRegex = regexp.MustCompile(`^[0-9a-f]{12}`)
)

// Build creates an image using a containerfile reference
func Build(ctx context.Context, containerFiles []string, options entities.BuildOptions) (*entities.BuildReport, error) {
params := url.Values{}
Expand Down Expand Up @@ -337,7 +341,6 @@ func Build(ctx context.Context, containerFiles []string, options entities.BuildO
}

dec := json.NewDecoder(body)
re := regexp.MustCompile(`[0-9a-f]{12}`)

var id string
var mErr error
Expand Down Expand Up @@ -366,7 +369,7 @@ func Build(ctx context.Context, containerFiles []string, options entities.BuildO
switch {
case s.Stream != "":
stdout.Write([]byte(s.Stream))
if re.Match([]byte(s.Stream)) {
if iidRegex.Match([]byte(s.Stream)) {
id = strings.TrimSuffix(s.Stream, "\n")
}
case s.Error != "":
Expand Down
17 changes: 17 additions & 0 deletions pkg/bindings/images/build_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package images

import (
"testing"

"github.com/stretchr/testify/assert"
)

func TestBuildMatchIID(t *testing.T) {
assert.True(t, iidRegex.MatchString("a883dafc480d466ee04e0d6da986bd78eb1fdd2178d04693723da3a8f95d42f4"))
assert.True(t, iidRegex.MatchString("3da3a8f95d42"))
assert.False(t, iidRegex.MatchString("3da3"))
}

func TestBuildNotMatchStatusMessage(t *testing.T) {
assert.False(t, iidRegex.MatchString("Copying config a883dafc480d466ee04e0d6da986bd78eb1fdd2178d04693723da3a8f95d42f4"))
}

0 comments on commit 68accbf

Please sign in to comment.