support for wildcard paths '**'
Summary
filepath.Glob is being used for interpreting paths
,
it's docs say that *
should match any non-seperator chars, so it should check only the current directory.
the cache output for linux also hides the fact that it's creating a empty cache which makes you believe that this is a windows only issue (only the second time you build on linux it'll show WARNING: *.o: no matching files
)
Creating cache build-linux...
Created cache
while on windows those messages don't even appear, making it more obvious that the cache isn't being generated...
I see 2 ways of resolving this:
- Using a globber lib that is able to interpret
**
(as filepath.Glob doesn't support that) and warn explicitly of*
usage, see this - change the way in how processPaths() is scanning the filesystem to imitate the recursive usage (which might produce some unwanted side-effects if one is expecting
*
to not go beyond the current folder)
Note: I'm fine with having to change *.obj
to **.obj
, just let me do it in some way.
I currently have to work around this by using the following snippet, which is quite ugly
paths:
- "*.obj"
- "*\*.obj"
- "*\*\*.obj"
- "*\*\*\*.obj"
- "*\*\*\*\*.obj"
- "*\*\*\*\*\*.obj"
Steps to reproduce
create a job which should cache all .obj
files, path will look like "*.obj"
Actual behavior
Nothing is being cached, as the runner can't find any files in the current directory.
Expected behavior
Cache all files ending with .obj
Relevant logs and/or screenshots
Paste any relevant logs - please use code blocks (```) to format console output, logs, and code as it's very hard to read otherwise. Please paste both build log and Runner's log.
Environment description
Custom runner on windows x64
using cmd
shell
Used GitLab Runner version
>"C:\Program Files\Gitlab-CI-Runner\gitlab-ci-runner.exe" --version
Version: 9.3.0
Git revision: 3df822b
Git branch: 9-3-stable
GO version: go1.7.5
Built: Thu, 22 Jun 2017 10:57:49 +0000
OS/Arch: windows/amd64