コード例 #1
0
        /*
         * Trying to read the "artifactory.build" file for deployment configuration.
         */
        public bool parseArtifactoryConfigFile(string projectArtifactoryConfigPath, ArtifactoryBuild task)
        {
            FileInfo artifactoryConfigurationFile = new FileInfo(projectArtifactoryConfigPath + "Artifactory.build");

            if (artifactoryConfigurationFile.Exists)
            {
                StringBuilder xmlContent = SolutionHandler.MsbuildInterpreter(artifactoryConfigurationFile, task);
                System.Xml.Serialization.XmlSerializer reader = new System.Xml.Serialization.XmlSerializer(typeof(ArtifactoryConfig));
                ArtifactoryConfiguration = (ArtifactoryConfig)reader.Deserialize(new System.IO.StringReader(xmlContent.ToString()));

                //Validate the xml file
                if (ArtifactoryConfiguration.PropertyGroup == null || ArtifactoryConfiguration.PropertyGroup.Deployments == null ||
                    ArtifactoryConfiguration.PropertyGroup.Deployments.Deploy == null)
                {
                    return(false);
                }

                return(true);
            }

            return(false);
        }
コード例 #2
0
        public override bool Execute()
        {
            try
            {
                buildInfoLog = new BuildInfoLog(Log);

                //Incase the MSBuild process is up, and the global variable is still exist.
                deployableArtifactBuilderMap.Clear();

                
                //System.Diagnostics.Debugger.Launch();
                buildInfoLog.Info("Artifactory Post-Build task started");

                if (!string.IsNullOrWhiteSpace(TfsActive) && TfsActive.Equals("True"))
                {
                    buildInfoLog.Info("Running inside TFS...");
                }

                SolutionHandler solution = new SolutionHandler(this, buildInfoLog);
                solution.Execute();

                BuildDeploymentHelper buildDeploymentHelper = new BuildDeploymentHelper();
                buildDeploymentHelper.deploy(this, solution._buildInfo, buildInfoLog);

                return true;
            }
            catch (Exception ex)
            {
                buildInfoLog.Error("Exception from Artifactory Task: " + ex.Message, ex);
                /*By returning false in exception, the task will not fail the all build.*/
                throw new Exception("Exception from Artifactory Task: " + ex.Message);
                //return false;
            }
            finally 
            {
                deployableArtifactBuilderMap.Clear();
            } 
        }