Using different deployment targets to executed multiple 'Deploy a Release' steps in a project - octopus-deploy

I am having 3 “Deploy a Release” steps in a Octopus project. I need to deploy each steps in a different Azure WebApp. How can achieve the this.
For example I have an octopus project named ‘Fruit’, and I have 3 steps in the project, each one to “Deploy a Release”
Step 1: Apple - To be deployed on an Azure Web-app ‘Alpha’ in Dev Environment.
Step 2: Orange - To be deployed on an Azure Web-app ‘Bravo’ in Dev Environment.
Step 3: Mango - To be deployed on an Azure Web-app ‘Charlie’ in Dev Environment.
All the azure web apps are under the same account. Kindly help.

Assuming that you will be having separate package feeds (alpha package,...) for each steps, you should be able to achieve deployment to each web app in same environment by using variables scoped to each specific step.
variable scoping

Related

How to handle App Settings JSON file in App Service Deployment Slots

I have to deploy Dotnet application (Target Framework is 4.7) in Azure App Service using Azure DevOps Pipeline and manually. And it has three deployment slots like Dev, QA and Staging. Is there any way to handle appsetting.json for deployment slots? (I mean if I have appsettings.development.json, appsetting.QA.json...)

Continuous Integration with VSTS

I am trying to do a PoC on how to achieve continuous integration and deployment using VSTS.
I have been successful in the build process i.e. from VSTS it will pull the code (asp.net based application) and build. The build process is also getting successful.
Now after the build is done I want to deploy the application and run my maven based selenium test cases written in java on the application. This is the part where I am struck. As in the deployment step it is not able to put the artifacts to the remote path that I am mentioning.
Can anyone please provide me some pointers on how to achieve the deployment on a remote machine and then run the java based test cases on this application?
Any pointers would be greatly appreciated.
Ok..here is the complete scenario...
1. I have the asp.net code on cloud in my vsts
2. I have been able to add a build step and create the artifacts successfully
3. Now I have a IIS server where i want to deploy these artifacts, and the server is not accessible from the public network and is behind a firewall.
Hence I am looking for any task that would help me achieve this. I am not sure of the complications that might arise due to the firewall and hence am trying out different methods to understand the complete big picture.
I received a reply here to use the Win RM tasks. I used that but it is giving a 53 error and not able to connect to the server that I am trying to deploy the code on.
To deploy asp.net based application, you can use IIS Web App Deployment step/task to deploy to your server or deploy to azure web site by using Azure App Service Deploy step/task.
To do Java test, there is a Maven step/task.

Single Visual Studio Azure Project deploy multiple Cloud Service

Somewhat new to Azure. We have 3 different cloud service accounts (dev/qa/prod). We have the same 1 web role and 2 worker roles we'd like to deploy to these cloud service accounts. In Visual Studio (2013), I have currently one Azure Project with the 1 web role and 2 worker roles. I have created 3 different ServiceConfigurations for each environment. I can create a deployment package using the corresponding ServiceConfiguration. So far so good.
Now, it seems I can only have one ServiceDefintion.csdef file. If I want different VM sizing for my envs (i.e. different ServiceDefinition.csdef file for each env), how can I accomplish this?
Found various solutions/options:
http://blogs.msdn.com/b/philliphoff/archive/2012/07/02/transform-windows-azure-service-model-files-during-packaging.aspx
Azure: Is there any way to deploy different instance sizes for test/production
However, I ultimately resolved the issue at our deployment server (Octopus). I have a single definition file and 2 config files (local and cloud) - the defaults in VS. For workstation debug the local serviceconfiguration is used. When I build and package I use the cloud serviceconfiguration as starting point. Then in Octopus I transform / variable substitute both the servicedefintion and serviceconfiguration based on target deployment environment.

How to keep deployment history of azure cloud services?

I'm using Jenkins to produce cspkg files using msbuild. It stores build results in azure blob storage. Then I use management portal to deploy them.
The biggest drawbacks I see are:
1. Deployments can be accidentally deleted easily.
2. There is no straightforward* way to check which version the cloud service has.
Is there a better way to manage deployments?
Its definitely not the best experience is it?
The approach I tend to use is as follows:
Build the deployment package and add the version number to the package filename (taken from AssemblyInfo.cs) e.g. MyCloudService-1.2.0.0.cspkg - this should be trivial using msbuild.
Push the package to Cloud Storage.
Perform the deployment of the package from Storage, with the Deployment Label '[CLOUD SERVICE NAME]-[VERSION] # [DATE & TIME]' e.g. 'MyCloudService-1.2.0.0 # 10-09-2015 16:30'
Check the deployment package into a 'Packages' directory in source control.
If you need to identify the version of the package deployed to the cloud service, you can see the Deployment Label on the Azure Management Portal:
'Old' Portal (manage.windowsazure.com):
'New' Portal (portal.azure.com):

Deploy multiple web application on different website using Web deploy in TFS

I have a solution which have three applications
a. One web application
b. Two web services
I want to host
applicaton on One website A
and services on Another website B
When I am trying to host build using automatic build deployment in TFS, I am getting only one web service. Can anybody tell me how to host these 3 applications.
Following is the build arguments which I am using in build definition
/p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:CreatePackageOnPublish=False /p:MSDeployPublishMethod=WMSVC /p:Configuration=Dev /p:MSDeployServiceUrl="https://X.X.X.X:8172/MsDeploy.axd" /p:DeployIisAppPath="Default Web Site/SampleApplicaion" /p:UserName="username" /p:Password="password" /p:AllowUntrustedCertificate=True
Thanks,
Ashwani
In your arguments you are specifying that all deploys should go to "Default Web Site/SampleApplicaion". The command arguments will override any values you have set in your project configuration and so all apps will be deployed to this IIS website.
Instead you need to set the IIS site in the configuration settings of your project. Then you can specify Website A and B and that setting will be used when running your build.

Resources