# ASP.NET Core (.NET Framework) # 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 trigger: - feature/testability pool: vmImage: 'windows-latest' variables: solution: '**/*.sln' buildPlatform: 'Any CPU' buildConfiguration: 'Release' steps: - script: choco install sql-server-express - task: NuGetToolInstaller@1 - task: VisualStudioTestPlatformInstaller@1 displayName: 'Visual Studio Test Platform Installer' inputs: versionSelector: latestStable - task: NuGetCommand@2 inputs: restoreSolution: '$(solution)' - task: DotNetCoreCLI@2 displayName: Build inputs: command: build projects: '**/*.csproj' arguments: '--configuration Debug' # Update this to match your need - script: 'dotnet tool install --global dotnet-ef' displayName: 'Generate EF Code First Migrations SQL Script Update script' - script: 'dotnet ef migrations script -i -o %BUILD_ARTIFACTSTAGINGDIRECTORY%\migrate.sql --project .\SomeAcme\SomeAcme.csproj' displayName: 'Generate EF Code First Migrations migrate.sql' - script: 'sqlcmd -S .\SQLEXPRESS -Q "CREATE DATABASE [SomeAcmeDb]"' displayName: 'Create database SomeAcmeDb in Azure Devops SQL EXPRESS' - script: 'sqlcmd -i %BUILD_ARTIFACTSTAGINGDIRECTORY%\migrate.sql -S .\SQLEXPRESS -d SomeAcmeDb' displayName: ' Run migrate.sql on SQL EXPRESS in Azure Devops' # PowerShell # Run a PowerShell script on Linux, macOS, or Windows - task: PowerShell@2 inputs: targetType: 'inline' # Optional. Options: filePath, inline #filePath: # Required when targetType == FilePath #arguments: # Optional script: 'gci -recurse -filter *.dll' # Required when targetType == Inline #errorActionPreference: 'stop' # Optional. Options: stop, continue, silentlyContinue #failOnStderr: false # Optional #ignoreLASTEXITCODE: false # Optional #pwsh: false # Optional #workingDirectory: # Optional - task: VSTest@2 displayName: 'VsTest - testAssemblies' inputs: testAssemblyVer2: | **\*SomeAcme.Tests.dll !**\*TestAdapter.dll !**\obj\** vsTestVersion: toolsInstaller testFiltercriteria: 'Category=IntegrationTest' runInParallel: false codeCoverageEnabled: false testRunTitle: 'XUnit tests SomeAcme solution integration test starting' failOnMinTestsNotRun: true rerunFailedTests: false
Showing posts with label SQL Express. Show all posts
Showing posts with label SQL Express. Show all posts
Sunday, 5 April 2020
Deploying an SQL Express database in Azure Devops pipeline with YAML and generating and updating the database with migrate scripts using EF Core Code First tools
Here a full example of how I achieved running Integration tests using Sql Express in Azure Devops. I had to use the YAML based pipelines so I could use simonauner's approach using Chocolatey to install Sql Express. Make note that I had to install EF Core tools since I use .Net Core 3.1 in this pipeline. Also note that I generate an EF Code First migration SQL file on the fly so that the rigged SQL Express instance is filled with contents.
Deploy SQL Express instance in Azure Devops, install and generate and run EF Code first migration sql script to update database with schema and seed data using EF Code First tools.
Etiketter:
Azure Devops,
Chocolatey,
Code First,
DevOps,
EF,
EF Core,
EF Core Code First,
entityframework,
Pipeline,
SQL Express,
YAML
Subscribe to:
Posts (Atom)