Its been a very slow road for me and coding the last few weeks. Between constant meetings and having to rebuild my home workstation (beta –> RC), I’m surprised I’ve got anything done.

Current Status

AutoDeploy consists of internal services and a task is simply a container for the service definition and required attributes. the current services and completion % (total guess…there is no road-map so its pretty hard too tell)

  1. ASP.NET Build – 80%
  2. C# Build– 80%
  3. Custom Task (MEF) – 80%
  4. Database Migration – Not Started
  5. Email – 80%
  6. FileCopy – 80%
  7. Folder Monitor – 80%
  8. Ftp – 80%
  9. MS SQL Script – Not Started
  10. Subversion – 90%
  11. Vb Build – 80%
  12. Zip Compress – Not Started

Those listed with 80% function but have limited logging. Logging has been my biggest challenge. I want to ensure the logging (status, audit, etc) is available to the host program. AutoDeploy is only a dll and I’m having a hard time finding the best implementation to ensure that messages flow back to the host.

Without any more delay I present the current hotness…

The fluent interface (take 2)

   1:  var deployment = new Deployment();
   2:      deployment
   3:          .Named("PROJECTNAME")
   4:          .AtInterval(1)
   5:          .AddTask(
   6:              new FluentTask()
   7:              .Type(Task.TaskType.FolderMonitor)
   8:              .Source("http://REPO/tags/")
   9:              .Destination(@"D:Temp")
  10:              .Authentication()
  11:              .Credential(new NetworkCredential(@"UID","PASS"))
  12:              .Save()
  13:      )
  14:      .AddTask(
  15:          new FluentTask()
  16:          .Type(Task.TaskType.AspnetBuild)
  17:          .Save()
  18:      )
  19:      .AddTask(
  20:          new FluentTask()
  21:          .Type(Task.TaskType.FileCopy)
  22:          .Destination(@"\SERVER_OR_LOCALDeployment")
  23:          .Save()
  24:      )
  25:      .AddCustomTask("WaitN")
  26:      .Save();
 
 
 

 

Changes of Note:

  1. Source and destination can be omitted and left to convention. In the second task there is no source or destination. The source will be the destination of the pervious task. The destination will be the destination of the pervious task plus the deployment name.

Classic Usage

 

   1:  var _deploymentContainer = DeploymentContainer.GetInstance;
   2:  var deployment = new Deployment();
   3:  deployment.Name = "PROJECT";
   4:  deployment.Interval = 5;
   5:   
   6:  var monitorTask = new Task();
   7:  monitorTask.Type = Task.TaskType.FolderMonitor;
   8:  monitorTask.Source = "http://subversion/repo/tags/";
   9:  monitorTask.Destination = @"C:Temp";
  10:  monitorTask.Authentication.Credentials _
  11:   = new NetworkCredential(@"DOMAINPolerckyE", "PASSWORD");
  12:   
  13:  deployment.AddTask(monitorTask);
  14:   
  15:  var buildTask = new Task();
  16:  buildTask.Type = Task.TaskType.AspnetBuild;
  17:  deployment.AddTask(buildTask);
  18:   
  19:  var copyTask = new Task();
  20:  copyTask.Type = Task.TaskType.FileCopy;
  21:  copyTask.Destination = @"\ServerNamepath";
  22:  deployment.AddTask(copyTask);
  23:   
  24:  deployment.AddCustomTask("WaitN");
  25:   
  26:  _deploymentContainer.AddDeployment(deployment);
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

   
© 2012 eric.polerecky.com Suffusion theme by Sayontan Sinha