From 7cad7e4cb6604ee14b88ab13e9dc4c466b39729b Mon Sep 17 00:00:00 2001 From: Huei Feng <695979933@qq.com> Date: Wed, 30 Sep 2020 11:14:28 +0800 Subject: [PATCH] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 179 ++++++++++++++++++++++++++------------------ 1 file changed, 107 insertions(+), 72 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index b4f54742..ab837151 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -2,7 +2,6 @@ # Build and test ASP.NET Core projects targeting the full .NET Framework. # Add steps that publish symbols, save build artifacts, and more: # https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core - schedules: - cron: "0 */6 * * *" displayName: Daily midnight build @@ -10,80 +9,116 @@ schedules: include: - master always: true - + trigger: - branches: - include: - - master -pool: - vmImage: 'ubuntu-latest' + branches: + include: + - master -variables: - solution: '**/*.sln' - buildPlatform: 'Any CPU' - buildConfiguration: 'Release' +stages: -steps: -- task: UseDotNet@2 - inputs: - packageType: 'sdk' - version: '3.x' -- task: CmdLine@2 - displayName: 'install dotnet-ef' - inputs: - script: 'dotnet tool install -g dotnet-ef' +- stage: Stage1 + jobs: + - job: Job1 + pool: + vmImage: ubuntu-latest + steps: + - task: UseDotNet@2 + inputs: + packageType: 'sdk' + version: '3.x' -- task: CmdLine@2 - inputs: - script: | - echo commands - sed -i '0,/Default[^,]*/s//$(ConnectionStrings)"/g' samples/EShopSample/aspnet-core/src/EShopSample.Web/appsettings.json - echo commands executed -- task: CmdLine@2 - inputs: - script: | - echo commands - sed -i '0,/Default[^,]*/s//$(ConnectionStrings)"/g' samples/EShopSample/aspnet-core/src/EShopSample.DbMigrator/appsettings.json - echo commands executed -- task: DotNetCoreCLI@2 - displayName: 'restore' - inputs: - command: 'restore' - feedsToUse: 'select' + - task: DotNetCoreCLI@2 + displayName: 'restore' + inputs: + command: 'restore' + feedsToUse: 'select' -- task: DotNetCoreCLI@2 - displayName: 'build' - inputs: - command: 'build' + - task: DotNetCoreCLI@2 + displayName: 'build' + inputs: + command: 'build' + + - task: CmdLine@2 + displayName: 'publish' + inputs: + script: | + dotnet publish -- task: CmdLine@2 - displayName: 'publish' - inputs: - script: | - dotnet publish -- task: CmdLine@2 - displayName: 'drop database' - inputs: - script: | - dotnet ef database drop --project samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore.DbMigrations/EShopSample.EntityFrameworkCore.DbMigrations.csproj -s samples/EShopSample/aspnet-core/src/EShopSample.Web/EShopSample.Web.csproj -f - -- task: CmdLine@2 - displayName: 'update database' - inputs: - script: | - dotnet ef database update --project samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore.DbMigrations/EShopSample.EntityFrameworkCore.DbMigrations.csproj -s samples/EShopSample/aspnet-core/src/EShopSample.Web/EShopSample.Web.csproj -- task: CmdLine@2 - inputs: - script: | - cd samples/EShopSample/aspnet-core/src/EShopSample.DbMigrator - - dotnet run -- task: Docker@2 - displayName: 'build and push docker' - inputs: - containerRegistry: $(DockerRegistry) - repository: $(repository) - command: 'buildAndPush' - Dockerfile: 'samples/EShopSample/aspnet-core/src/EShopSample.Web/Dockerfile' - buildContext: . - tags: 'latest' +- stage: Stage2 + jobs: + - job: Job1 + pool: + vmImage: windows-2019 + steps: + - task: SqlDacpacDeploymentOnMachineGroup@0 + displayName: 'drop database' + inputs: + TaskType: 'sqlInline' + InlineSql: | + DECLARE @SQL VARCHAR(MAX); + SET @SQL='' + SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID) + FROM master..sysprocesses + WHERE dbid=DB_ID('EShopSample'); + EXEC(@SQL); + + drop DATABASE EShopSample + ServerName: $(ServerName) + DatabaseName: $(DatabaseName) + AuthScheme: 'sqlServerAuthentication' + SqlUsername: $(SqlUsername) + SqlPassword: $(SqlPassword) + continueOnError: true + + +- stage: Stage3 + jobs: + - job: Job1 + pool: + vmImage: ubuntu-latest + steps: + - task: CmdLine@2 + inputs: + script: | + echo commands + sed -i '0,/Default[^,]*/s//$(ConnectionStrings)"/g' samples/EShopSample/aspnet-core/src/EShopSample.Web/appsettings.json + echo commands executed + + - task: CmdLine@2 + inputs: + script: | + echo commands + sed -i '0,/Default[^,]*/s//$(ConnectionStrings)"/g' samples/EShopSample/aspnet-core/src/EShopSample.DbMigrator/appsettings.json + echo commands executed + - task: UseDotNet@2 + inputs: + packageType: 'sdk' + version: '3.x' + + - task: CmdLine@2 + displayName: 'install dotnet-ef' + inputs: + script: 'dotnet tool install -g dotnet-ef' + + - task: CmdLine@2 + displayName: 'update database' + inputs: + script: | + dotnet ef database update --project samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore.DbMigrations/EShopSample.EntityFrameworkCore.DbMigrations.csproj -s samples/EShopSample/aspnet-core/src/EShopSample.Web/EShopSample.Web.csproj + + - task: CmdLine@2 + inputs: + script: | + cd samples/EShopSample/aspnet-core/src/EShopSample.DbMigrator + + dotnet run + - task: Docker@2 + displayName: 'build and push docker' + inputs: + containerRegistry: $(DockerRegistry) + repository: $(repository) + command: 'buildAndPush' + Dockerfile: 'samples/EShopSample/aspnet-core/src/EShopSample.Web/Dockerfile' + buildContext: . + tags: 'latest'