moby/datakit

CI: job names cannot have slashes in them

avsm opened this issue · 7 comments

avsm commented

Building a Term name with a forward slash fails dynamically when it runs through DataKitCI:

DataKitCI: internal error, uncaught exception:
           (Invalid_argument "'/' in path step \"2: Revdeps/Compilers\"")

I guess that's correct... the bridge expects the term name to be a directory name, so it can't contain a slash. I don't know if there's some escaping mechanism - @samoht?

Where does this name appear on the filesystem? The bridge support nested build status.

Hmm, good point, but I don't think Anil wanted a "Compilers" status in a "2: Revdeps" directory, right? We could interpret status names as paths if desired, though.

I think in this case the current behaviour is correct - test names should not contain slashes (though maybe with a better error message).

@avsm: what do want to do about this? We could allow nested statuses, but I don't think that's what you want here. Otherwise, I think the error is correct: a GitHub status shouldn't use / as part of the name because it's the directory separator character.

avsm commented

I'm happy to disallow these, but would prefer a slightly better error. Would it be possible to generate something more friendly earlier when the Term is constructed?

The current error is:

Fatal error: exception (Invalid_argument
  "Bad path ci/datakit/my/test: '/' in path step \"my/test\"")

If it needs further improvement, it's not very clear where to fix this. The CI itself doesn't know that the context is supposed to be a valid Datakit_path - it uses Datakit_github_conv, which just asks for a string list.

Closing this as it's a lot of work to fix, for very little gain.