diff --git a/ImpostorHQ.Command/Impostor.Commands.Core/Impostor.Commands.Core.csproj b/ImpostorHQ.Command/Impostor.Commands.Core/Impostor.Commands.Core.csproj
index b3a531f..5bf0e6b 100644
--- a/ImpostorHQ.Command/Impostor.Commands.Core/Impostor.Commands.Core.csproj
+++ b/ImpostorHQ.Command/Impostor.Commands.Core/Impostor.Commands.Core.csproj
@@ -11,6 +11,9 @@
false
true
+
+ true
+
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
new file mode 100644
index 0000000..d403fdb
--- /dev/null
+++ b/azure-pipelines.yml
@@ -0,0 +1,107 @@
+# Made by Gavin Steinhoff
+trigger:
+ branches:
+ include:
+ - main
+ paths:
+ exclude:
+ - ImpostorHQ.Dashboard/*
+
+pr:
+ branches:
+ include:
+ - main
+ paths:
+ exclude:
+ - ImpostorHQ.Dashboard/*
+
+pool:
+ vmImage: 'windows-latest'
+
+variables:
+ solution: '**/*.sln'
+ buildPlatform: 'Any CPU'
+ buildConfiguration: 'Release'
+
+steps:
+- task: NuGetCommand@2
+ displayName: Nuget Restore
+ inputs:
+ command: 'restore'
+ restoreSolution: '**/ImpostorHQ.Plugin.Fashionable.Designer.csproj'
+ feedsToUse: 'select'
+- task: MSBuild@1
+ displayName: MS Build
+ inputs:
+ solution: '**/ImpostorHQ.Plugin.Fashionable.Designer.csproj'
+ configuration: '$(buildConfiguration)'
+- task: DotNetCoreCLI@2
+ displayName: ".Net Restore"
+ inputs:
+ command: 'restore'
+ projects: |
+ **/*.csproj
+ !**/ImpostorHQ.Plugin.Fashionable.Designer.csproj
+ arguments: '--configuration $(buildConfiguration)'
+
+- task: DotNetCoreCLI@2
+ displayName: ".Net Build"
+ inputs:
+ command: 'build'
+ projects: |
+ **/*.csproj
+ !**/ImpostorHQ.Plugin.Fashionable.Designer.csproj
+ arguments: '--configuration $(buildConfiguration) --no-restore'
+- task: CopyFiles@2
+ condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
+ inputs:
+ Contents: '**/Impostor.Commands.Core.dll'
+ TargetFolder: '$(Build.ArtifactStagingDirectory)/ImpostorCommandsCore'
+ flattenFolders: true
+- task: CopyFiles@2
+ condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
+ inputs:
+ Contents: '**/ImpostorHQ.Plugin.Fashionable.dll'
+ TargetFolder: '$(Build.ArtifactStagingDirectory)/ImpostorHQPlugin'
+ flattenFolders: true
+- task: CopyFiles@2
+ condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
+ inputs:
+ Contents: '**/ImpostorHQ.Plugin.HallOfShame.dll'
+ TargetFolder: '$(Build.ArtifactStagingDirectory)/ImpostorHQPlugin'
+ flattenFolders: true
+- task: CopyFiles@2
+ condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
+ inputs:
+ Contents: '**/Plugin.Test.dll'
+ TargetFolder: '$(Build.ArtifactStagingDirectory)/ImpostorHQPlugin'
+ flattenFolders: true
+- task: CopyFiles@2
+ condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
+ inputs:
+ Contents: '**/LogParser.exe'
+ TargetFolder: '$(Build.ArtifactStagingDirectory)/LogParser'
+ flattenFolders: true
+- task: CopyFiles@2
+ condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
+ inputs:
+ Contents: '**/ImpostorHQ.Plugin.Fashionable.Designer.exe'
+ TargetFolder: '$(Build.ArtifactStagingDirectory)/FashionableDesigner'
+ flattenFolders: true
+
+- publish: '$(Build.ArtifactStagingDirectory)/ImpostorCommandsCore'
+ condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
+ artifact: ImpostorCommandsCore
+
+- publish: '$(Build.ArtifactStagingDirectory)/ImpostorHQPlugin'
+ condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
+ artifact: ImpostorHQPlugins
+
+- publish: '$(Build.ArtifactStagingDirectory)/LogParser'
+ condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
+ artifact: LogParser
+
+- publish: '$(Build.ArtifactStagingDirectory)/FashionableDesigner'
+ condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
+ artifact: FashionableDesigner
+