add default value to make nuget pack runner use 'Release' configuration in .csproj...
[teamcity/dotNetPackagesSupport.git] / nuget-server / src / jetbrains / buildServer / nuget / server / runner / pack / PackRunType.java
1 /*\r
2  * Copyright 2000-2011 JetBrains s.r.o.\r
3  *\r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  * http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 \r
17 package jetbrains.buildServer.nuget.server.runner.pack;\r
18 \r
19 import jetbrains.buildServer.agent.ServerProvidedProperties;\r
20 import jetbrains.buildServer.nuget.common.PackagesConstants;\r
21 import jetbrains.buildServer.nuget.server.runner.NuGetRunType;\r
22 import jetbrains.buildServer.nuget.server.util.BasePropertiesProcessor;\r
23 import jetbrains.buildServer.parameters.ReferencesResolverUtil;\r
24 import jetbrains.buildServer.serverSide.InvalidProperty;\r
25 import jetbrains.buildServer.serverSide.PropertiesProcessor;\r
26 import jetbrains.buildServer.web.openapi.PluginDescriptor;\r
27 import org.jetbrains.annotations.NotNull;\r
28 \r
29 import java.util.Collection;\r
30 import java.util.HashMap;\r
31 import java.util.Map;\r
32 \r
33 import static jetbrains.buildServer.nuget.common.PackagesConstants.*;\r
34 \r
35 /**\r
36  * @author Eugene Petrenko (eugene.petrenko@gmail.com)\r
37  *         Date: 22.08.11 21:05\r
38  */\r
39 public class PackRunType extends NuGetRunType {\r
40   public PackRunType(@NotNull final PluginDescriptor descriptor) {\r
41     super(descriptor);\r
42   }\r
43 \r
44   @NotNull\r
45   @Override\r
46   public String getType() {\r
47     return PackagesConstants.PACK_RUN_TYPE;\r
48   }\r
49 \r
50   @Override\r
51   public String getDisplayName() {\r
52     return "NuGet Packages Pack";\r
53   }\r
54 \r
55   @Override\r
56   public String getDescription() {\r
57     return "Creates NuGet package from a given spec file";\r
58   }\r
59 \r
60   @NotNull\r
61   @Override\r
62   public String describeParameters(@NotNull Map<String, String> parameters) {\r
63     StringBuilder sb = new StringBuilder();\r
64 \r
65     sb.append("Pack: ").append(parameters.get(PackagesConstants.NUGET_PACK_SPEC_FILE)).append("\n");\r
66     sb.append("Version: ").append(parameters.get(PackagesConstants.NUGET_PACK_VERSION)).append("\n");\r
67     return sb.toString();\r
68   }\r
69 \r
70   @NotNull\r
71   @Override\r
72   public PropertiesProcessor getRunnerPropertiesProcessor() {\r
73     return new BasePropertiesProcessor() {\r
74       @Override\r
75       protected void checkProperties(@NotNull Map<String, String> map, @NotNull Collection<InvalidProperty> result) {\r
76         notEmpty(NUGET_PATH, "Path to nuget.exe must be specified", map, result);\r
77         notEmpty(NUGET_PACK_SPEC_FILE, "Package definition file must be specified", map, result);\r
78         notEmpty(NUGET_PACK_OUTPUT_DIR, "Package creation output directory must be specified", map, result);\r
79         final String version = notEmpty(NUGET_PACK_VERSION, "Version must be specified", map, result);\r
80         if (version != null && !ReferencesResolverUtil.containsReference(version) && !version.matches("\\d+(\\.\\d+){0,3}")) {\r
81           result.add(new InvalidProperty(NUGET_PACK_VERSION, "Version must be in assmebly version format: D[.D[.D[.D]]], i.e. 1.2.3 or 5.4.3.2"));\r
82         }\r
83 \r
84         //TODO: check properties are well-formed\r
85       }\r
86     };\r
87   }\r
88 \r
89   @NotNull\r
90   @Override\r
91   protected String getEditJsp() {\r
92     return "pack/editPack.jsp";\r
93   }\r
94 \r
95   @NotNull\r
96   @Override\r
97   protected String getViewJsp() {\r
98     return "pack/viewPack.jsp";\r
99   }\r
100 \r
101   @Override\r
102   public Map<String, String> getDefaultRunnerProperties() {\r
103     return new HashMap<String, String>(){{\r
104       put(PackagesConstants.NUGET_PACK_VERSION, "%" + ServerProvidedProperties.BUILD_NUMBER_PROP + "%");\r
105       put(PackagesConstants.NUGET_PACK_OUTPUT_CLEAR, "checked");\r
106       put(PackagesConstants.NUGET_PACK_PROPERTIES, "Configuration=Release");\r
107     }};\r
108   }\r
109 }\r