diff --git a/frontend/dockerfile/dockerfile_lint_test.go b/frontend/dockerfile/dockerfile_lint_test.go index e90909784305..e2c3aaf8bed8 100644 --- a/frontend/dockerfile/dockerfile_lint_test.go +++ b/frontend/dockerfile/dockerfile_lint_test.go @@ -54,7 +54,7 @@ var lintTests = integration.TestFuncs( ) func testDefinitionDescription(t *testing.T, sb integration.Sandbox) { - dockerfile := []byte(`# check=experimental=InvalidDefinitionDescription + dockerfile := []byte(` # foo this is the foo ARG foo=bar @@ -74,7 +74,7 @@ COPY Dockerfile . `) checkLinterWarnings(t, sb, &lintTestParams{Dockerfile: dockerfile}) - dockerfile = []byte(`# check=experimental=InvalidDefinitionDescription + dockerfile = []byte(` # bar this is the bar ARG foo=bar # BasE this is the BasE image @@ -131,18 +131,6 @@ Dockerfile FROM scratch COPY Dockerfile . ADD Dockerfile /windy -`) - checkLinterWarnings(t, sb, &lintTestParams{ - Dockerfile: dockerfile, - DockerIgnore: dockerignore, - BuildErrLocation: 3, - StreamBuildErrRegexp: regexp.MustCompile(`failed to solve: failed to compute cache key: failed to calculate checksum of ref [^\s]+ "/Dockerfile": not found`), - }) - - dockerfile = []byte(`# check=experimental=CopyIgnoredFile -FROM scratch -COPY Dockerfile . -ADD Dockerfile /windy `) checkLinterWarnings(t, sb, &lintTestParams{ @@ -170,7 +158,7 @@ ADD Dockerfile /windy }, }) - dockerfile = []byte(`# check=skip=all;experimental=CopyIgnoredFile + dockerfile = []byte(` FROM scratch COPY Dockerfile . ADD Dockerfile /windy @@ -201,6 +189,19 @@ ADD Dockerfile /windy }, }) + dockerfile = []byte(`# check=skip=CopyIgnoredFile + +FROM scratch +COPY Dockerfile . +ADD Dockerfile /windy +`) + checkLinterWarnings(t, sb, &lintTestParams{ + Dockerfile: dockerfile, + DockerIgnore: dockerignore, + BuildErrLocation: 3, + StreamBuildErrRegexp: regexp.MustCompile(`failed to solve: failed to compute cache key: failed to calculate checksum of ref [^\s]+ "/Dockerfile": not found`), + }) + dockerignore = []byte(` foobar `) @@ -232,7 +233,8 @@ COPY ./Dockerfile . } func testSecretsUsedInArgOrEnv(t *testing.T, sb integration.Sandbox) { - dockerfile := []byte(` + dockerfile := []byte(`# check=skip=InvalidDefinitionDescription + FROM scratch ARG SECRET_PASSPHRASE ENV SUPER_Secret=foo @@ -260,7 +262,7 @@ ARG alternate_password Detail: `Do not use ARG or ENV instructions for sensitive data (ARG "SECRET_PASSPHRASE")`, URL: "https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/", Level: 1, - Line: 3, + Line: 4, }, { RuleName: "SecretsUsedInArgOrEnv", @@ -268,7 +270,7 @@ ARG alternate_password Detail: `Do not use ARG or ENV instructions for sensitive data (ENV "SUPER_Secret")`, URL: "https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/", Level: 1, - Line: 4, + Line: 5, }, { RuleName: "SecretsUsedInArgOrEnv", @@ -276,7 +278,7 @@ ARG alternate_password Detail: `Do not use ARG or ENV instructions for sensitive data (ENV "password")`, URL: "https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/", Level: 1, - Line: 5, + Line: 6, }, { RuleName: "SecretsUsedInArgOrEnv", @@ -284,7 +286,7 @@ ARG alternate_password Detail: `Do not use ARG or ENV instructions for sensitive data (ENV "secret")`, URL: "https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/", Level: 1, - Line: 5, + Line: 6, }, { RuleName: "SecretsUsedInArgOrEnv", @@ -292,7 +294,7 @@ ARG alternate_password Detail: `Do not use ARG or ENV instructions for sensitive data (ARG "auth")`, URL: "https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/", Level: 1, - Line: 6, + Line: 7, }, { RuleName: "SecretsUsedInArgOrEnv", @@ -300,7 +302,7 @@ ARG alternate_password Detail: `Do not use ARG or ENV instructions for sensitive data (ARG "super_duper_secret_token")`, URL: "https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/", Level: 1, - Line: 6, + Line: 7, }, { RuleName: "SecretsUsedInArgOrEnv", @@ -308,7 +310,7 @@ ARG alternate_password Detail: `Do not use ARG or ENV instructions for sensitive data (ENV "apikey")`, URL: "https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/", Level: 1, - Line: 7, + Line: 8, }, { RuleName: "SecretsUsedInArgOrEnv", @@ -316,7 +318,7 @@ ARG alternate_password Detail: `Do not use ARG or ENV instructions for sensitive data (ENV "git_key")`, URL: "https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/", Level: 1, - Line: 8, + Line: 9, }, }, }) @@ -1692,8 +1694,9 @@ func checkProgressStream(t *testing.T, sb integration.Sandbox, lintTest *lintTes } else { if lintTest.BuildErr != "" { require.ErrorContains(t, err, lintTest.BuildErr) - } else if !lintTest.StreamBuildErrRegexp.MatchString(err.Error()) { - t.Fatalf("error %q does not match %q", err.Error(), lintTest.StreamBuildErrRegexp.String()) + } else { + require.Error(t, err) + require.Regexp(t, lintTest.StreamBuildErrRegexp, err) } } diff --git a/frontend/dockerfile/docs/rules/_index.md b/frontend/dockerfile/docs/rules/_index.md index d1b1f1050d26..ceace92689b6 100644 --- a/frontend/dockerfile/docs/rules/_index.md +++ b/frontend/dockerfile/docs/rules/_index.md @@ -100,11 +100,11 @@ To learn more about how to use build checks, see