import java.io.File;\r
import java.io.IOException;\r
import java.util.ArrayList;\r
-import java.util.Iterator;\r
import java.util.List;\r
\r
/**\r
@NotNull\r
@Override\r
protected BuildFinishedStatus waitForImpl() throws RunBuildException {\r
- final List<String> files = new ArrayList<String>(myParameters.getFiles());\r
\r
boolean found = false;\r
\r
- for(Iterator<String> it = files.iterator(); it.hasNext();) {\r
- final String pattern = it.next().trim();\r
+ final List<String> patterns = new ArrayList<String>();\r
+ for (String _pattern : myParameters.getFiles()) {\r
+ final String pattern = _pattern.trim();\r
if (StringUtil.isEmptyOrSpaces(pattern)) {\r
- it.remove();\r
continue;\r
}\r
\r
final File file = new File(pattern);\r
if (file.isAbsolute()) {\r
found = true;\r
- LOG.debug("Found nugkg to push: " + file);\r
+ LOG.debug("Found .nugkg to push: " + file);\r
myCallback.fileFound(file);\r
- it.remove();\r
+ continue;\r
}\r
+\r
+ patterns.add(pattern.replace('\\', '/'));\r
}\r
\r
- final String[] includes = files.toArray(new String[files.size()]);\r
+ final String[] includes = patterns.toArray(new String[patterns.size()]);\r
AntPatternFileFinder finder = new AntPatternFileFinder(\r
includes,\r
new String[0],\r
}\r
\r
if (!found) {\r
- throw new RunBuildException("Failed to find files to publish matching: " + files + " under " + root + ". No packages to publish. ");\r
+ throw new RunBuildException("Failed to find files to publish matching: " + new ArrayList<String>(myParameters.getFiles()) + " under " + root + ". No packages to publish. ");\r
}\r
\r
return BuildFinishedStatus.FINISHED_SUCCESS;\r
\r
package jetbrains.buildServer.nuget.tests.agent;\r
\r
+import com.intellij.openapi.util.SystemInfo;\r
import jetbrains.buildServer.RunBuildException;\r
import jetbrains.buildServer.agent.AgentRunningBuild;\r
import jetbrains.buildServer.agent.BuildFinishedStatus;\r
m.assertIsSatisfied();\r
}\r
\r
+ @Test\r
+ public void test_match_relative_file_windows_slashes() throws RunBuildException {\r
+ if (!SystemInfo.isWindows) return;\r
+ final File dest = new File(root, "a/b/c/d/e/aaa.txt");\r
+ FileUtil.createParentDirs(dest);\r
+ FileUtil.writeFile(dest, "some content");\r
+\r
+ m.checking(new Expectations() {{\r
+ oneOf(cb).fileFound(dest);\r
+ }});\r
+\r
+ files.add("a\\b\\c\\d\\e\\aaa.txt");\r
+ assertRunSuccessfully(match, BuildFinishedStatus.FINISHED_SUCCESS);\r
+\r
+ m.assertIsSatisfied();\r
+ }\r
+\r
+ @Test\r
+ public void test_match_relative_file_slashes() throws RunBuildException {\r
+ if (!SystemInfo.isWindows) return;\r
+ final File dest = new File(root, "a/b/c/d/e/aaa.txt");\r
+ FileUtil.createParentDirs(dest);\r
+ FileUtil.writeFile(dest, "some content");\r
+\r
+ m.checking(new Expectations() {{\r
+ oneOf(cb).fileFound(dest);\r
+ }});\r
+\r
+ files.add("a/b/c/d/e/aaa.txt");\r
+ assertRunSuccessfully(match, BuildFinishedStatus.FINISHED_SUCCESS);\r
+\r
+ m.assertIsSatisfied();\r
+ }\r
+\r
@Test\r
public void test_match_relative_file_wildcard() throws RunBuildException {\r
final File dest = new File(root, "q/e/r/t/aaa.txt");\r