diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 000000000..b9402feed --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,109 @@ +# 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: +- master + +pool: + vmImage: 'windows-latest' + +variables: + solution: '**/FluentMigrator.sln' + buildPlatform: 'Any CPU' + buildConfiguration: 'Release' + +steps: +- task: NuGetToolInstaller@1 + +- task: GitVersion@5 + displayName: 'GitVersion' + inputs: + runtime: 'core' + updateAssemblyInfo: false + +- script: echo %Action%%BuildVersion% + displayName: 'Set build version' + env: + Action: '##vso[build.updatebuildnumber]' + BuildVersion: $(GitVersion.NuGetVersionV2) + +- script: echo "##vso[task.setvariable variable=assemblyVersion]$(GitVersion.AssemblySemVer) +- script: echo "##vso[task.setvariable variable=assemblyFileVersion]$(GitVersion.MajorMinorPatch).0 +- script: echo "The build number is:" $(build.buildNumber) +- script: echo "Assembly version is:" $(assemblyVersion) +- script: echo "Assembly file version is:" $(assemblyFileVersion) + +- task: NuGetCommand@2 + inputs: + restoreSolution: '$(solution)' + +- task: VSBuild@1 + inputs: + solution: '$(solution)' + platform: '$(buildPlatform)' + configuration: '$(buildConfiguration)' + msbuildArgs: '/p:Version="$(assemblyVersion)" /p:AssemblyFileVersion="$(assemblyFileVersion)" /p:AssemblyInformationalVersion="$(build.buildNumber)"' + +- task: VSTest@2 + inputs: + platform: '$(buildPlatform)' + configuration: '$(buildConfiguration)' + +- task: CmdLine@2 + inputs: + script: 'dotnet pack $(Build.SourcesDirectory)\FluentMigrator.sln --output $(Build.ArtifactStagingDirectory) --include-symbols -p:Configuration=$(buildConfiguration) -p:Version=$(build.buildNumber) --verbosity Detailed' + +- task: DotNetCoreCLI@2 + inputs: + command: 'publish' + publishWebProjects: false + projects: 'src/FluentMigrator.Console/FluentMigrator.Console.csproj' + arguments: '-c $(buildConfiguration) -r win7-x86 -o "$(Build.ArtifactStagingDirectory)/publish/tools/net461/x86" -p:Platform=x86 -p:TargetFramework=net461 -p:Version=$(assemblyVersion)' + zipAfterPublish: false + modifyOutputPath: false + +- task: DotNetCoreCLI@2 + inputs: + command: 'publish' + publishWebProjects: false + projects: 'src/FluentMigrator.Console/FluentMigrator.Console.csproj' + arguments: '-c $(buildConfiguration) -r win7-x64 -o "$(Build.ArtifactStagingDirectory)/publish/tools/net461/x64" -p:Platform=x64 -p:TargetFramework=net461 -p:Version=$(assemblyVersion)' + zipAfterPublish: false + modifyOutputPath: false + +- task: DotNetCoreCLI@2 + inputs: + command: 'publish' + publishWebProjects: false + projects: 'src/FluentMigrator.Console/FluentMigrator.Console.csproj' + arguments: '-c $(buildConfiguration) -r any -o "$(Build.ArtifactStagingDirectory)/publish/tools/net461/any" -p:Platform=AnyCpu -p:TargetFramework=net461 -p:Version=$(assemblyVersion)' + zipAfterPublish: false + modifyOutputPath: false + +- task: CopyFiles@2 + inputs: + SourceFolder: 'publish' + Contents: '**' + TargetFolder: '$(Build.ArtifactStagingDirectory)/publish' + +- task: NuGetCommand@2 + inputs: + command: 'pack' + packagesToPack: '$(Build.ArtifactStagingDirectory)/publish/FluentMigrator.Console.nuspec' + versioningScheme: 'byBuildNumber' + buildProperties: '-OutputDirectory "$(Build.ArtifactStagingDirectory)/output" -Properties Configuration=$(buildConfiguration)' + +- task: NuGetCommand@2 + inputs: + command: 'pack' + packagesToPack: '$(Build.ArtifactStagingDirectory)/publish/FluentMigrator.Tools.nuspec' + versioningScheme: 'byBuildNumber' + buildProperties: '-OutputDirectory "$(Build.ArtifactStagingDirectory)/output" -Properties Configuration=$(buildConfiguration)' + +- task: PublishBuildArtifacts@1 + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)' + ArtifactName: 'drop' + publishLocation: 'Container' \ No newline at end of file