From 76ed1af094e92af02b3f3f19900c2dfee7f2a3d0 Mon Sep 17 00:00:00 2001 From: Solomon Hykes Date: Wed, 3 Jun 2026 23:46:22 +0000 Subject: [PATCH] Replace Go skip markers with config Signed-off-by: Solomon Hykes --- .dagger/modules/e2e/main.dang | 115 ++++++++------ go.dang | 147 +++++++----------- helpers/go-includes/.dagger-skip-go-generate | 1 - .../.dagger-skip-go-generate | 1 - .../.dagger-skip-go-lint | 1 - .../.dagger-skip-go-test | 1 - .../go-module-custom-base/custom_base_test.go | 2 +- testdata/go-module-empty/.dagger-skip-go-lint | 1 - testdata/go-module-empty/.dagger-skip-go-test | 1 - .../.dagger-skip-go-generate | 1 - .../go-module-excluded/.dagger-skip-go-lint | 1 - .../go-module-excluded/.dagger-skip-go-test | 1 - .../.dagger-skip-generate-e2e | 1 - .../.dagger-skip-go-generate | 1 - .../go-module-skip-tree/.dagger-skip-go-lint | 1 - .../go-module-skip-tree/.dagger-skip-go-test | 1 - .../go-module-skip-tree/nested/fail_test.go | 2 +- 17 files changed, 121 insertions(+), 158 deletions(-) delete mode 100644 helpers/go-includes/.dagger-skip-go-generate delete mode 100644 testdata/go-module-custom-base/.dagger-skip-go-generate delete mode 100644 testdata/go-module-custom-base/.dagger-skip-go-lint delete mode 100644 testdata/go-module-custom-base/.dagger-skip-go-test delete mode 100644 testdata/go-module-empty/.dagger-skip-go-lint delete mode 100644 testdata/go-module-empty/.dagger-skip-go-test delete mode 100644 testdata/go-module-excluded/.dagger-skip-go-generate delete mode 100644 testdata/go-module-excluded/.dagger-skip-go-lint delete mode 100644 testdata/go-module-excluded/.dagger-skip-go-test delete mode 100644 testdata/go-module-generate/.dagger-skip-generate-e2e delete mode 100644 testdata/go-module-skip-tree/.dagger-skip-go-generate delete mode 100644 testdata/go-module-skip-tree/.dagger-skip-go-lint delete mode 100644 testdata/go-module-skip-tree/.dagger-skip-go-test diff --git a/.dagger/modules/e2e/main.dang b/.dagger/modules/e2e/main.dang index 343ac74..6d1c9b9 100644 --- a/.dagger/modules/e2e/main.dang +++ b/.dagger/modules/e2e/main.dang @@ -7,10 +7,28 @@ type E2e { let baseFixturePath: String! = "testdata/go-module-custom-base" let baseGeneratedFilePath: String! = baseFixturePath + "/generated.go" let emptyFixturePath: String! = "testdata/go-module-empty" + let skipLint: [String!]! = [ + baseFixturePath, + emptyFixturePath, + "testdata/go-module-excluded", + "testdata/go-module-skip-tree", + ] + let skipTest: [String!]! = [ + baseFixturePath, + emptyFixturePath, + "testdata/go-module-excluded", + "testdata/go-module-skip-tree", + ] + let skipGenerate: [String!]! = [ + "helpers/go-includes", + baseFixturePath, + "testdata/go-module-excluded", + "testdata/go-module-skip-tree", + ] let base: Container! { container - .from("golang:1.25-alpine") + .from("golang:1.26.1-alpine") .withEnvVariable("DAGGER_GO_CUSTOM_BASE", "yes") .withNewFile("/custom-go-base", "yes\n") } @@ -35,20 +53,21 @@ type E2e { } """ - Run testAll while respecting per-module skip markers. + Run testAll while respecting per-module skip configuration. """ pub singleModuleCheck(ws: Workspace!): Void @check { - go(version: "1.25").lintAll(ws) - go(version: "1.25").testAll(ws) - go(version: "1.25").module(ws, "testdata/go-module-excluded").lint(ws) - go(version: "1.25").module(ws, "testdata/go-module-excluded").test(ws) + let tool = go(version: "1.26.1", skipLint: skipLint, skipTest: skipTest, skipGenerate: skipGenerate) + tool.lintAll(ws) + tool.testAll(ws) + tool.module(ws, "testdata/go-module-excluded").lint(ws) + tool.module(ws, "testdata/go-module-excluded").test(ws) } """ A directive in one module must not affect another module's source mount. """ pub perModuleDirectiveCheck(ws: Workspace!): Void @check { - let tool = go(version: "1.25") + let tool = go(version: "1.26.1") tool.module(ws, "fixtures/go-module-cross-include-a").test(ws) tool.module(ws, "fixtures/go-module-cross-include-b").test(ws) } @@ -57,14 +76,14 @@ type E2e { A nested module's directives must not affect its parent module's source mount. """ pub nestedModuleDirectiveCheck(ws: Workspace!): Void @check { - go(version: "1.25").module(ws, "fixtures/go-module-with-nested-module").test(ws) + go(version: "1.26.1").module(ws, "fixtures/go-module-with-nested-module").test(ws) } """ A local replace target must be mounted with its non-Go assets. """ pub goModReplaceCheck(ws: Workspace!): Void @check { - go(version: "1.25").module(ws, "fixtures/go-module-with-replace").test(ws) + go(version: "1.26.1").module(ws, "fixtures/go-module-with-replace").test(ws) } """ @@ -73,9 +92,6 @@ type E2e { pub baseCheck(ws: Workspace!): Void @check { let tool = go( base: base, - skipLintFilename: ".dagger-skip-lint-disabled", - skipTestFilename: ".dagger-skip-test-disabled", - skipGenerateFilename: ".dagger-skip-generate-disabled", ) let mod = tool.module(ws, baseFixturePath) @@ -85,7 +101,7 @@ type E2e { ) let conflict = try { - go(version: "1.25", base: base).version ?? "missing conflict" + go(version: "1.26.1", base: base).version ?? "missing conflict" } catch { err => err.message } @@ -119,7 +135,7 @@ type E2e { Per-module introspection fields must expose the source selection intermediates. """ pub moduleIntrospectionCheck(ws: Workspace!): Void @check { - let mod = go(version: "1.25").module(ws, "testdata/go-module-with-testdata/testdata") + let mod = go(version: "1.26.1").module(ws, "testdata/go-module-with-testdata/testdata") assert( go().version == "1.26", @@ -130,17 +146,18 @@ type E2e { "module lookup did not snap to containing module: " + mod.path, ) assert( - mod.version == "1.25", + mod.version == "1.26.1", "module did not expose inherited Go version: " + (mod.version ?? ""), ) - let direct = go(version: "1.25").module(ws, "testdata/go-module-with-testdata/testdata", findUp: false) + let direct = go(version: "1.26.1").module(ws, "testdata/go-module-with-testdata/testdata", findUp: false) assert( direct.path == "testdata/go-module-with-testdata/testdata", "module lookup unexpectedly snapped with findUp false: " + direct.path, ) - let allModulePaths = go(version: "1.25").modules(ws).{path} + let tool = go(version: "1.26.1", skipLint: skipLint, skipTest: skipTest, skipGenerate: skipGenerate) + let allModulePaths = tool.modules(ws).{path} assert( containsModulePath(allModulePaths, "fixtures/go-module-cross-include-a"), "unfiltered modules did not include expected fixture module", @@ -154,7 +171,7 @@ type E2e { "unfiltered modules did not include skipped fixture module by default", ) - let includedModulePaths = go(version: "1.25") + let includedModulePaths = tool .modules(ws, include: ["fixtures/go-module-cross-include-a"]) .{path} assert( @@ -166,7 +183,7 @@ type E2e { "modules include filter included non-matching module root", ) - let excludedModulePaths = go(version: "1.25") + let excludedModulePaths = tool .modules(ws, exclude: ["fixtures/go-module-cross-include-a"]) .{path} assert( @@ -174,7 +191,7 @@ type E2e { "modules exclude filter included excluded module root", ) - let combinedModulePaths = go(version: "1.25") + let combinedModulePaths = tool .modules( ws, include: ["fixtures/go-module-cross-include-*"], @@ -190,7 +207,7 @@ type E2e { "modules combined filters included excluded module root", ) - let contentMatchedModulePaths = go(version: "1.25") + let contentMatchedModulePaths = tool .modules(ws, include: ["**/module-a-only.data"]) .{path} assert( @@ -202,7 +219,7 @@ type E2e { "modules include filter matched content outside the module directory", ) - let lintSkippedModulePaths = go(version: "1.25") + let lintSkippedModulePaths = tool .modules(ws, includeSkipLint: false) .{path} assert( @@ -211,18 +228,18 @@ type E2e { ) assert( containsModulePath(lintSkippedModulePaths, "testdata/go-module-empty") == false, - "modules includeSkipLint false included module with lint skip marker", + "modules includeSkipLint false included module with lint skip config", ) assert( containsModulePath(lintSkippedModulePaths, "testdata/go-module-skip-tree/nested") == false, - "modules includeSkipLint false included module with ancestor lint skip marker", + "modules includeSkipLint false included module with ancestor lint skip config", ) assert( containsModulePath(lintSkippedModulePaths, "testdata/go-module-with-testdata"), "modules includeSkipLint false excluded non-lint-skipped module", ) - let testSkippedModulePaths = go(version: "1.25") + let testSkippedModulePaths = tool .modules(ws, includeSkipTest: false) .{path} assert( @@ -231,18 +248,18 @@ type E2e { ) assert( containsModulePath(testSkippedModulePaths, "testdata/go-module-empty") == false, - "modules includeSkipTest false included module with test skip marker", + "modules includeSkipTest false included module with test skip config", ) assert( containsModulePath(testSkippedModulePaths, "testdata/go-module-skip-tree/nested") == false, - "modules includeSkipTest false included module with ancestor test skip marker", + "modules includeSkipTest false included module with ancestor test skip config", ) assert( containsModulePath(testSkippedModulePaths, "testdata/go-module-with-testdata"), "modules includeSkipTest false excluded non-test-skipped module", ) - let generateSkippedModulePaths = go(version: "1.25") + let generateSkippedModulePaths = tool .modules(ws, includeSkipGenerate: false) .{path} assert( @@ -251,7 +268,7 @@ type E2e { ) assert( containsModulePath(generateSkippedModulePaths, "testdata/go-module-skip-tree/nested") == false, - "modules includeSkipGenerate false included module with ancestor generate skip marker", + "modules includeSkipGenerate false included module with ancestor generate skip config", ) assert( containsModulePath(generateSkippedModulePaths, "testdata/go-module-generate"), @@ -259,7 +276,7 @@ type E2e { ) let withExtraFiles = go( - version: "1.25", + version: "1.26.1", includeExtraFiles: ["LICENSE"], ).module(ws, "testdata/go-module-with-testdata") assert( @@ -275,54 +292,54 @@ type E2e { "module base includes exposed workspace-wide Go pattern", ) - let skipped = go(version: "1.25").module(ws, "testdata/go-module-excluded") + let skipped = tool.module(ws, "testdata/go-module-excluded") assert( skipped.skipLint(ws), - "module did not detect lint skip marker", + "module did not detect lint skip config", ) assert( skipped.skipTest(ws), - "module did not detect test skip marker", + "module did not detect test skip config", ) assert( skipped.skipGenerate(ws), - "module did not detect generate skip marker", + "module did not detect generate skip config", ) - let treeSkipped = go(version: "1.25").module(ws, "testdata/go-module-skip-tree/nested") + let treeSkipped = tool.module(ws, "testdata/go-module-skip-tree/nested") assert( treeSkipped.skipLint(ws), - "nested module did not inherit lint skip marker from ancestor", + "nested module did not inherit lint skip config from ancestor", ) assert( treeSkipped.skipTest(ws), - "nested module did not inherit test skip marker from ancestor", + "nested module did not inherit test skip config from ancestor", ) assert( treeSkipped.skipGenerate(ws), - "nested module did not inherit generate skip marker from ancestor", + "nested module did not inherit generate skip config from ancestor", ) assert( mod.skipTest(ws) == false, - "module without marker reported skipped tests", + "module without skip config reported skipped tests", ) assert( mod.skipGenerate(ws) == false, - "module without marker reported skipped generate", + "module without skip config reported skipped generate", ) assert( mod.hasGenerateDirectives(ws) == false, "module without go:generate directive reported generate directives", ) assert( - go(version: "1.25") + go(version: "1.26.1") .module(ws, emptyFixturePath) .hasGenerateDirectives(ws) == false, "module without Go files reported generate directives", ) assert( - go(version: "1.25") + go(version: "1.26.1") .module(ws, generatedFixturePath) .hasGenerateDirectives(ws), "module with go:generate directive did not report generate directives", @@ -368,7 +385,7 @@ type E2e { "testData directory did not include module testdata fixture", ) - let replaced = go(version: "1.25").module(ws, "fixtures/go-module-with-replace") + let replaced = go(version: "1.26.1").module(ws, "fixtures/go-module-with-replace") let replacedIncludes = replaced.includeDiscovered(ws, test: true) assert( containsPath(replacedIncludes, "fixtures/replaced-lib/**/*.go"), @@ -379,7 +396,7 @@ type E2e { "go.mod replace includes did not include replaced lib go:embed file", ) - let includedGoMod = go(version: "1.25").module(ws, "fixtures/go-module-with-included-gomod-replace/sdk/go") + let includedGoMod = go(version: "1.26.1").module(ws, "fixtures/go-module-with-included-gomod-replace/sdk/go") let includedGoModIncludes = includedGoMod.includeDiscovered(ws, generate: true) assert( containsPath( @@ -416,13 +433,13 @@ type E2e { Run go generate and verify its changeset. """ pub generateCheck(ws: Workspace!): Void @check { - go(version: "1.25") + go(version: "1.26.1") .module(ws, "fixtures/go-module-with-included-gomod-replace/sdk/go") .generate(ws) .layer .sync - let changes = go(version: "1.25").generateAll(ws) + let changes = go(version: "1.26.1", skipGenerate: skipGenerate).generateAll(ws) assert( changes.addedPaths.length == 1, @@ -448,8 +465,8 @@ type E2e { ) let emptyChanges = go( - version: "1.25", - skipGenerateFilename: ".dagger-skip-generate-e2e", + version: "1.26.1", + skipGenerate: [generatedFixturePath], ).module(ws, generatedFixturePath).generate(ws) assert( emptyChanges.addedPaths.length == 0, @@ -464,7 +481,7 @@ type E2e { "skipped module generate produced removed paths", ) - let noGoFileChanges = go(version: "1.25").module(ws, emptyFixturePath).generate(ws) + let noGoFileChanges = go(version: "1.26.1").module(ws, emptyFixturePath).generate(ws) assert( noGoFileChanges.addedPaths.length == 0, "module without Go files generate produced added paths", diff --git a/go.dang b/go.dang index d9c9fd8..270e4f8 100644 --- a/go.dang +++ b/go.dang @@ -32,17 +32,17 @@ type Go { """ includeExtraFiles: [String!]! = [], """ - Marker filename that skips lint checks when found at or above a Go module root. + Workspace-relative module roots or ancestor subtrees to skip for lint checks. """ - skipLintFilename: String! = ".dagger-skip-go-lint", + skipLint: [String!]! = [], """ - Marker filename that skips tests when found at or above a Go module root. + Workspace-relative module roots or ancestor subtrees to skip for tests. """ - skipTestFilename: String! = ".dagger-skip-go-test", + skipTest: [String!]! = [], """ - Marker filename that skips go generate when found at or above a Go module root. + Workspace-relative module roots or ancestor subtrees to skip for go generate. """ - skipGenerateFilename: String! = ".dagger-skip-go-generate", + skipGenerate: [String!]! = [], ) { if (version != null and base != null) { raise "version and base are mutually exclusive" @@ -50,9 +50,9 @@ type Go { self.version = if (base == null) { version ?? "1.26" } else { null } self.base = base ?? container.from("golang:" + (version ?? "1.26") + "-alpine") self.includeExtraFiles = includeExtraFiles - self.skipLintFilename = skipLintFilename - self.skipTestFilename = skipTestFilename - self.skipGenerateFilename = skipGenerateFilename + self.skipLint = skipLint + self.skipTest = skipTest + self.skipGenerate = skipGenerate self } } @@ -65,19 +65,19 @@ type Go { pub includeExtraFiles: [String!]! = [] """ - Marker filename that skips lint checks when found at or above a Go module root. + Workspace-relative module roots or ancestor subtrees to skip for lint checks. """ - pub skipLintFilename: String! = ".dagger-skip-go-lint" + pub skipLint: [String!]! = [] """ - Marker filename that skips tests when found at or above a Go module root. + Workspace-relative module roots or ancestor subtrees to skip for tests. """ - pub skipTestFilename: String! = ".dagger-skip-go-test" + pub skipTest: [String!]! = [] """ - Marker filename that skips go generate when found at or above a Go module root. + Workspace-relative module roots or ancestor subtrees to skip for go generate. """ - pub skipGenerateFilename: String! = ".dagger-skip-go-generate" + pub skipGenerate: [String!]! = [] """ Return every Go module discovered from workspace go.mod files. @@ -91,16 +91,6 @@ type Go { includeSkipTest: Boolean! = true, includeSkipGenerate: Boolean! = true, ): [GoModule!]! { - let lintSkipMarkers = ws - .directory("/", include: ["**/" + skipLintFilename]) - .glob("**/" + skipLintFilename) - let testSkipMarkers = ws - .directory("/", include: ["**/" + skipTestFilename]) - .glob("**/" + skipTestFilename) - let generateSkipMarkers = ws - .directory("/", include: ["**/" + skipGenerateFilename]) - .glob("**/" + skipGenerateFilename) - ws .directory("/", include: ["**/go.mod"]) .glob("**/go.mod") @@ -116,12 +106,9 @@ type Go { version: version, baseImage: base, includeExtraFiles: includeExtraFiles, - skipLintFilename: skipLintFilename, - skipTestFilename: skipTestFilename, - skipGenerateFilename: skipGenerateFilename, - lintSkipMarkers: lintSkipMarkers, - testSkipMarkers: testSkipMarkers, - generateSkipMarkers: generateSkipMarkers, + skipLintPaths: skipLint, + skipTestPaths: skipTest, + skipGeneratePaths: skipGenerate, ) } .filter { mod => @@ -156,16 +143,6 @@ type Go { findUp to false when path is already a module root and no lookup is needed. """ pub module(ws: Workspace!, path: String!, findUp: Boolean! = true): GoModule! { - let lintSkipMarkers = ws - .directory("/", include: ["**/" + skipLintFilename]) - .glob("**/" + skipLintFilename) - let testSkipMarkers = ws - .directory("/", include: ["**/" + skipTestFilename]) - .glob("**/" + skipTestFilename) - let generateSkipMarkers = ws - .directory("/", include: ["**/" + skipGenerateFilename]) - .glob("**/" + skipGenerateFilename) - GoModule( path: if (findUp) { let foundGoModPath = ws.findUp("go.mod", path) @@ -183,21 +160,18 @@ type Go { version: version, baseImage: base, includeExtraFiles: includeExtraFiles, - skipLintFilename: skipLintFilename, - skipTestFilename: skipTestFilename, - skipGenerateFilename: skipGenerateFilename, - lintSkipMarkers: lintSkipMarkers, - testSkipMarkers: testSkipMarkers, - generateSkipMarkers: generateSkipMarkers, + skipLintPaths: skipLint, + skipTestPaths: skipTest, + skipGeneratePaths: skipGenerate, ) } """ Run golangci-lint in every discovered Go module. - Modules with the lint skip marker are skipped. + Modules configured to skip lint are skipped. """ pub lintAll(ws: Workspace!): Void @check { - let layers = modules(ws).reduce(directory) { layers, mod => + let layers = modules(ws, includeSkipLint: false).reduce(directory) { layers, mod => layers.withDirectory( mod.path, directory.withFile("go.mod", mod.lintExec(ws).file("go.mod")), @@ -213,10 +187,10 @@ type Go { """ Run tests in every discovered Go module. - Modules with the test skip marker are skipped. + Modules configured to skip tests are skipped. """ pub testAll(ws: Workspace!): Void @check { - let mods = modules(ws).filter { mod => mod.skipTest(ws) == false } + let mods = modules(ws, includeSkipTest: false) let layers = mods.reduce(directory) { layers, mod => layers.withDirectory( mod.path, @@ -233,7 +207,7 @@ type Go { """ Run go generate in every discovered Go module. - Modules with the generate skip marker, or without go:generate directives, + Modules configured to skip generate, or without go:generate directives, are skipped. """ pub generateAll(ws: Workspace!): Changeset! @generate { @@ -282,23 +256,19 @@ type GoModule { pub includeExtraFiles: [String!]! """ - Marker filename that skips lint checks when found at or above this module root. + Workspace-relative module roots or ancestor subtrees to skip for lint checks. """ - let skipLintFilename: String! + let skipLintPaths: [String!]! """ - Marker filename that skips tests when found at or above this module root. + Workspace-relative module roots or ancestor subtrees to skip for tests. """ - let skipTestFilename: String! + let skipTestPaths: [String!]! """ - Marker filename that skips go generate when found at or above this module root. + Workspace-relative module roots or ancestor subtrees to skip for go generate. """ - let skipGenerateFilename: String! - - let lintSkipMarkers: [String!]! - let testSkipMarkers: [String!]! - let generateSkipMarkers: [String!]! + let skipGeneratePaths: [String!]! """ Return a workspace-root path for a module-relative subpath. @@ -335,24 +305,24 @@ type GoModule { } """ - Whether this module or an ancestor contains the configured lint skip marker. + Whether this module or an ancestor subtree is configured to skip lint. """ pub skipLint(ws: Workspace!): Boolean! { - hasMarker(skipLintFilename, lintSkipMarkers) + hasSkipPath(skipLintPaths) } """ - Whether this module or an ancestor contains the configured test skip marker. + Whether this module or an ancestor subtree is configured to skip tests. """ pub skipTest(ws: Workspace!): Boolean! { - hasMarker(skipTestFilename, testSkipMarkers) + hasSkipPath(skipTestPaths) } """ - Whether this module or an ancestor contains the configured generate skip marker. + Whether this module or an ancestor subtree is configured to skip go generate. """ pub skipGenerate(ws: Workspace!): Boolean! { - hasMarker(skipGenerateFilename, generateSkipMarkers) + hasSkipPath(skipGeneratePaths) } """ @@ -382,16 +352,12 @@ type GoModule { } """ - Whether this module root or an ancestor contains a marker filename. + Whether this module root is at or below a configured skip path. """ - let hasMarker(filename: String!, markerPaths: [String!]!): Boolean! { - markerPaths.any { markerPath => - let markerDir = if (markerPath == filename) { - "." - } else { - markerPath.trimSuffix("/" + filename) - } - markerDir == "." or path == markerDir or path.hasPrefix(markerDir + "/") + let hasSkipPath(skipPaths: [String!]!): Boolean! { + skipPaths.any { skipPath => + let clean = skipPath.trimPrefix("/").trimSuffix("/") + clean == "." or clean == "" or path == clean or path.hasPrefix(clean + "/") } } @@ -435,8 +401,7 @@ type GoModule { modulePath: path, baseImage: baseImage, includeExtraFiles: includeExtraFiles, - skipTestFilename: skipTestFilename, - testSkipMarkers: testSkipMarkers, + skipTestPaths: skipTestPaths, ) } } @@ -534,7 +499,7 @@ type GoModule { """ Run golangci-lint in this module. - If the lint skip marker is present, no lint check is run. + If this module is configured to skip lint, no lint check is run. """ pub lint(ws: Workspace!): Void @check { lintExec(ws).sync @@ -543,7 +508,7 @@ type GoModule { """ Run tests in this module. - If the test skip marker is present, no tests are run. + If this module is configured to skip tests, no tests are run. """ pub test(ws: Workspace!): Void @check { testExec(ws).sync @@ -552,7 +517,7 @@ type GoModule { """ Changes made by running go generate in this module. - If the generate skip marker is present or no go:generate directives are + If this module is configured to skip generate or no go:generate directives are found, the changeset is empty. """ pub generate(ws: Workspace!): Changeset! { @@ -661,11 +626,9 @@ type GoDirectory { let baseImage: Container! """ - Marker filename that skips tests when found at or above this directory's Go module root. + Workspace-relative module roots or ancestor subtrees to skip for tests. """ - let skipTestFilename: String! - - let testSkipMarkers: [String!]! + let skipTestPaths: [String!]! """ Return a workspace-root path for a module-relative subpath. @@ -702,16 +665,12 @@ type GoDirectory { } """ - Whether this directory's module or an ancestor contains the configured test skip marker. + Whether this directory's module is at or below a configured test skip path. """ let skipTest: Boolean! { - testSkipMarkers.any { markerPath => - let markerDir = if (markerPath == skipTestFilename) { - "." - } else { - markerPath.trimSuffix("/" + skipTestFilename) - } - markerDir == "." or modulePath == markerDir or modulePath.hasPrefix(markerDir + "/") + skipTestPaths.any { skipPath => + let clean = skipPath.trimPrefix("/").trimSuffix("/") + clean == "." or clean == "" or modulePath == clean or modulePath.hasPrefix(clean + "/") } } diff --git a/helpers/go-includes/.dagger-skip-go-generate b/helpers/go-includes/.dagger-skip-go-generate deleted file mode 100644 index e32e76d..0000000 --- a/helpers/go-includes/.dagger-skip-go-generate +++ /dev/null @@ -1 +0,0 @@ -skip diff --git a/testdata/go-module-custom-base/.dagger-skip-go-generate b/testdata/go-module-custom-base/.dagger-skip-go-generate deleted file mode 100644 index e32e76d..0000000 --- a/testdata/go-module-custom-base/.dagger-skip-go-generate +++ /dev/null @@ -1 +0,0 @@ -skip diff --git a/testdata/go-module-custom-base/.dagger-skip-go-lint b/testdata/go-module-custom-base/.dagger-skip-go-lint deleted file mode 100644 index e32e76d..0000000 --- a/testdata/go-module-custom-base/.dagger-skip-go-lint +++ /dev/null @@ -1 +0,0 @@ -skip diff --git a/testdata/go-module-custom-base/.dagger-skip-go-test b/testdata/go-module-custom-base/.dagger-skip-go-test deleted file mode 100644 index e32e76d..0000000 --- a/testdata/go-module-custom-base/.dagger-skip-go-test +++ /dev/null @@ -1 +0,0 @@ -skip diff --git a/testdata/go-module-custom-base/custom_base_test.go b/testdata/go-module-custom-base/custom_base_test.go index 3331c87..c8cde06 100644 --- a/testdata/go-module-custom-base/custom_base_test.go +++ b/testdata/go-module-custom-base/custom_base_test.go @@ -10,6 +10,6 @@ func TestBase(t *testing.T) { t.Fatalf("DAGGER_GO_CUSTOM_BASE = %q, want yes", got) } if _, err := os.Stat("/custom-go-base"); err != nil { - t.Fatalf("custom base marker file is missing: %v", err) + t.Fatalf("custom base sentinel file is missing: %v", err) } } diff --git a/testdata/go-module-empty/.dagger-skip-go-lint b/testdata/go-module-empty/.dagger-skip-go-lint deleted file mode 100644 index 9a50e69..0000000 --- a/testdata/go-module-empty/.dagger-skip-go-lint +++ /dev/null @@ -1 +0,0 @@ -skip lint for empty module fixture diff --git a/testdata/go-module-empty/.dagger-skip-go-test b/testdata/go-module-empty/.dagger-skip-go-test deleted file mode 100644 index 859e184..0000000 --- a/testdata/go-module-empty/.dagger-skip-go-test +++ /dev/null @@ -1 +0,0 @@ -skip test for empty module fixture diff --git a/testdata/go-module-excluded/.dagger-skip-go-generate b/testdata/go-module-excluded/.dagger-skip-go-generate deleted file mode 100644 index e32e76d..0000000 --- a/testdata/go-module-excluded/.dagger-skip-go-generate +++ /dev/null @@ -1 +0,0 @@ -skip diff --git a/testdata/go-module-excluded/.dagger-skip-go-lint b/testdata/go-module-excluded/.dagger-skip-go-lint deleted file mode 100644 index e32e76d..0000000 --- a/testdata/go-module-excluded/.dagger-skip-go-lint +++ /dev/null @@ -1 +0,0 @@ -skip diff --git a/testdata/go-module-excluded/.dagger-skip-go-test b/testdata/go-module-excluded/.dagger-skip-go-test deleted file mode 100644 index e32e76d..0000000 --- a/testdata/go-module-excluded/.dagger-skip-go-test +++ /dev/null @@ -1 +0,0 @@ -skip diff --git a/testdata/go-module-generate/.dagger-skip-generate-e2e b/testdata/go-module-generate/.dagger-skip-generate-e2e deleted file mode 100644 index e32e76d..0000000 --- a/testdata/go-module-generate/.dagger-skip-generate-e2e +++ /dev/null @@ -1 +0,0 @@ -skip diff --git a/testdata/go-module-skip-tree/.dagger-skip-go-generate b/testdata/go-module-skip-tree/.dagger-skip-go-generate deleted file mode 100644 index e32e76d..0000000 --- a/testdata/go-module-skip-tree/.dagger-skip-go-generate +++ /dev/null @@ -1 +0,0 @@ -skip diff --git a/testdata/go-module-skip-tree/.dagger-skip-go-lint b/testdata/go-module-skip-tree/.dagger-skip-go-lint deleted file mode 100644 index e32e76d..0000000 --- a/testdata/go-module-skip-tree/.dagger-skip-go-lint +++ /dev/null @@ -1 +0,0 @@ -skip diff --git a/testdata/go-module-skip-tree/.dagger-skip-go-test b/testdata/go-module-skip-tree/.dagger-skip-go-test deleted file mode 100644 index e32e76d..0000000 --- a/testdata/go-module-skip-tree/.dagger-skip-go-test +++ /dev/null @@ -1 +0,0 @@ -skip diff --git a/testdata/go-module-skip-tree/nested/fail_test.go b/testdata/go-module-skip-tree/nested/fail_test.go index 2c30a0d..045b51a 100644 --- a/testdata/go-module-skip-tree/nested/fail_test.go +++ b/testdata/go-module-skip-tree/nested/fail_test.go @@ -3,5 +3,5 @@ package skipped import "testing" func TestSkippedModuleIsNotRun(t *testing.T) { - t.Fatal("this module should be skipped by an ancestor marker") + t.Fatal("this module should be skipped by ancestor config") }