diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 00000000..20735b85 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,128 @@ +stages: +- stage: Build + jobs: + - job: Build + pool: + name: Azure Pipelines + demands: + - msbuild + - visualstudio + vmImage: 'windows-2022' + variables: + solution: '**\src\VSTSDemoGeneratorV2.sln' + artifactName: 'drop' + steps: + - task: NuGetToolInstaller@0 + displayName: 'Use NuGet 5.11.0' + inputs: + versionSpec: 5.11.0 + - task: NuGetCommand@2 + displayName: 'NuGet restore' + inputs: + restoreSolution: '$(solution)' + - task: VSBuild@1 + displayName: 'Build solution' + inputs: + solution: '$(solution)' + msbuildArgs: '/p:Configuration=Debug /p:Platform="Any CPU" /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"' + - task: CopyFiles@1 + displayName: 'Copy Files to: $(build.sourcesdirectory)\src\VstsDemoBuilder\obj\Release\Package\PackageTmp' + inputs: + SourceFolder: '$(build.artifactstagingdirectory)\' + Contents: '**\*' + TargetFolder: '$(build.sourcesdirectory)\Artifacts' + - task: PublishBuildArtifacts@1 + displayName: 'Publish Artifact' + inputs: + PathtoPublish: '$(build.sourcesdirectory)\Artifacts' + ArtifactName: '$(artifactName)' + +- stage: Staging + condition: and(succeeded(), or(eq(variables['Build.Reason'], 'IndividualCI'), eq(variables['Build.Reason'], 'PullRequest'))) + dependsOn: Build + displayName: Staging Deployment + jobs: + - deployment: Staging + environment: 'Staging' + pool: + vmImage: 'windows-2022' + strategy: + runOnce: + deploy: + steps: + - task: DownloadBuildArtifacts@0 + displayName: 'Download Build Artifacts' + inputs: + buildType: 'current' + downloadType: 'single' + artifactName: 'drop' + downloadPath: '$(System.DefaultWorkingDirectory)' + - task: AzureRmWebAppDeployment@4 + inputs: + ConnectionType: 'AzureRM' + azureSubscription: 'AzureDevOpsDemoGenProd' + appType: 'webApp' + WebAppName: 'azuredevopsdemogenerator' + deployToSlotOrASE: true + ResourceGroupName: 'azuredevopsdemogenerator-production-group' + SlotName: 'staging' + package: '$(System.DefaultWorkingDirectory)/**/*.zip' + AppSettings: '-DefaultTemplate eShopOnWeb -Password $(Password) -ClientId $(ClientId-stage) -ClientSecret $(ClientSecret-stage) -RedirectUri $(RedirectUri-stage) -AppScope $(AppScope-stage)' + enableCustomDeployment: true + DeploymentType: 'webDeploy' + +- stage: Preprod + condition: and(succeeded(), eq(variables['Build.Reason'], 'Manual')) + dependsOn: Build + displayName: Preprod Deployment + jobs: + - deployment: Preprod + environment: 'Preprod' + pool: + vmImage: 'windows-2022' + strategy: + runOnce: + deploy: + steps: + - task: DownloadBuildArtifacts@0 + displayName: 'Download Build Artifacts' + inputs: + buildType: 'current' + downloadType: 'single' + artifactName: 'drop' + downloadPath: '$(System.DefaultWorkingDirectory)' + - task: AzureRmWebAppDeployment@4 + inputs: + ConnectionType: 'AzureRM' + azureSubscription: 'AzureDevOpsDemoGenProd' + appType: 'webApp' + WebAppName: 'azuredevopsdemogenerator' + deployToSlotOrASE: true + ResourceGroupName: 'azuredevopsdemogenerator-production-group' + SlotName: 'preprod' + package: '$(System.DefaultWorkingDirectory)/**/*.zip' + AppSettings: '-DefaultTemplate eShopOnWeb -Password $(Password) -ClientId $(ClientId-preprod) -ClientSecret $(ClientSecret-preprod) -RedirectUri $(RedirectUri-preprod) -AppScope $(AppScope-preprod)' + enableCustomDeployment: true + DeploymentType: 'webDeploy' + +- stage: Prod + condition: and(succeeded(), eq(variables['Build.Reason'], 'Manual')) + dependsOn: Preprod + displayName: Prod Deployment + jobs: + - deployment: Prod + environment: 'Prod' + pool: + vmImage: 'windows-2022' + strategy: + runOnce: + deploy: + steps: + - task: AzureAppServiceManage@0 + displayName: App Service Manage + inputs: + azureSubscription: 'AzureDevOpsDemoGenProd' + Action: 'Swap Slots' + WebAppName: 'azuredevopsdemogenerator' + ResourceGroupName: 'azuredevopsdemogenerator-production-group' + SourceSlot: 'preprod' \ No newline at end of file diff --git a/src/VstsDemoBuilder/ApplicationInsights.config b/src/VstsDemoBuilder/ApplicationInsights.config index 44eddd1a..f87c7795 100644 --- a/src/VstsDemoBuilder/ApplicationInsights.config +++ b/src/VstsDemoBuilder/ApplicationInsights.config @@ -1,8 +1,43 @@  7f2c2d9c-82b6-4c29-a5ec-55dc332f3f7a + + + + + + + + + search|spider|crawl|Bot|Monitor|AlwaysOn + + + + + + + + + - + + + + core.windows.net + core.chinacloudapi.cn + core.cloudapi.de + core.usgovcloudapi.net + + + Microsoft.Azure.EventHubs + Microsoft.Azure.ServiceBus + + + + + + - + + + - System.Web.Handlers.TransferRequestHandler Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler System.Web.StaticFileHandler System.Web.Handlers.AssemblyResourceLoader @@ -49,38 +112,30 @@ + - - - - 5 + + + + + + + + 5 + Event + + + 5 + Event + + + - - + - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/VstsDemoBuilder/Views/Account/Verify.cshtml b/src/VstsDemoBuilder/Views/Account/Verify.cshtml index 4aa7e1b5..ee92a429 100644 --- a/src/VstsDemoBuilder/Views/Account/Verify.cshtml +++ b/src/VstsDemoBuilder/Views/Account/Verify.cshtml @@ -38,9 +38,10 @@

The purpose of this system is to simplify working with the Azure Devops hands-on-labs, demos and other education material provided by the Microsoft Azure Marketing team.

-
- +
+

Starting February 28, 2025, we are eliminating the need for us to authenticate on your behalf. Instead you will have access to an executable (.exe) file to create projects. The application is available now and you can learn how to run it in the AzDevOpsDemoGenerator repo. If you encounter any issues, please let us know by creating an issue here

+

Don’t have an Azure DevOps Organization?

@@ -53,24 +54,24 @@

@ViewBag.resMessage

} + +

+