Uploaded image for project: 'NPanday'
  1. NPanday
  2. NPANDAY-480

Support Windows Azure Cloud Service Project and Packaging (CCPack)

    Details

      Description

      We want to build and package Azure Projects using NPanday. What that exactly means still has to be figured out here.

      High-level requirements

      • NPanday Addin must support Azure project types (*.ccproj + ServiceConfiguration)
      • NPanday must support Azure Packaging Type (-> *.cspkg) including an appropriate lifecycle until package-phase (publish is excluded!)
      • NPanday should resolve all roles though Maven dependency mechanism.
        • Web Roles should be resolved as (msdeploy-package) ( requires NPANDAY-488)
        • Worker roles should be resolved as (dotnet-library)
        • Silverlight?
      • The addin must be able to import Azure Cloud Service Projects *.ccproj -> generate pom.xml
      • The addin must be able to track changes on Azure Projects (Add/Remove Roles)
      • The addin must be able to import .NET 4.0/C#/VB Azure WCF Service Web Role Projects
      • The addin must be able to import .NET 4.0/C#/VB Azure Worker Role Projects
      • The addin must be able to import .NET 4.0/C#/VB Azure Web Role Silverlight Business Application Projects

      Optional

      • The addin should be able to import .NET 4.0/C#/VB Azure ASP.NET MVC 2 Web Role Projects
      • The addin should be able to import .NET 4.0/C#/VB Azure ASP.NET MVC 3 Web Role Projects

      Limitations

      • Support for .NET 3.5 is not planned, but could be added later if needed
      • Support Azure SDKs < 1.6 is not planned, but could be added later if needed
      • Support of new Azure Tools will most certainly require new NPanday release; additional configuration can also be provided locally, though (-> NPANDAY-499)

      Flow

      To test how this could work out, I used the custom lifecycle plugin plus registration of

      {azure-cloud-service}

      as package type for *.cspkg. Then, as soon as we know how this should exactly work, we can start creating the needed plugins.

      prepare-package

      • {dependency:copy-dependencies}

        resolve web roles as msdeploy.zip)

      • {exec:exec: msdeploy -verb:sync -source:package=<resolved web role pkg> -dest:dirPath:<tmpdir>}

      package

      • {exec:exec: cspack ServiceDefinition.csdef /out:<final-name> /role:<webrole> /sites:<unpacked msdeploy package>}

      Just some notes

      • It seems like MSBuild CCPack task handles the packaging:
        (on my machine: {{ {C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Windows Azure Tools\1.6}

        }}

      • It looks like Azure Packaging also packages the WebRoles by obtaining the files to be packaged from the MSBUILD PROJECT FILES!!!

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                lcorneliussen Lars Corneliussen
                Reporter:
                lcorneliussen Lars Corneliussen
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: