From c56822a4054eafa1a319c521689b0797fca462e6 Mon Sep 17 00:00:00 2001
From: Zach Hilman <zachhilman@gmail.com>
Date: Wed, 2 Oct 2019 17:53:37 -0400
Subject: [PATCH 1/7] ci: Fix unset environment variable bug

---
 .ci/templates/build-single.yml | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/.ci/templates/build-single.yml b/.ci/templates/build-single.yml
index 9bc27247e..002f5d24f 100644
--- a/.ci/templates/build-single.yml
+++ b/.ci/templates/build-single.yml
@@ -3,8 +3,6 @@ parameters:
   cache: 'false'
 
 steps:
-- script: export DATE=`date '+%Y.%m.%d'` && export CI=true && AZURE_REPO_NAME=yuzu-emu/yuzu-$(BuildName) && AZURE_REPO_TAG=$(BuildName)-$DATE
-  displayName: 'Determine Build Name'
 - task: DockerInstaller@0
   displayName: 'Prepare Environment'
   inputs:
@@ -15,7 +13,7 @@ steps:
     key: yuzu-v1-$(BuildName)-$(BuildSuffix)-$(CacheSuffix)
     path: $(System.DefaultWorkingDirectory)/ccache
     cacheHitVar: CACHE_RESTORED
-- script: chmod a+x ./.ci/scripts/$(ScriptFolder)/exec.sh && ./.ci/scripts/$(ScriptFolder)/exec.sh
+- script: export DATE=`date '+%Y.%m.%d'` && export CI=true && export AZURE_REPO_NAME=yuzu-emu/yuzu-$(BuildName) && export AZURE_REPO_TAG=$(BuildName)-$DATE && chmod a+x ./.ci/scripts/$(ScriptFolder)/exec.sh && ./.ci/scripts/$(ScriptFolder)/exec.sh
   displayName: 'Build'
 - script: chmod a+x ./.ci/scripts/$(ScriptFolder)/upload.sh && RELEASE_NAME=$(BuildName) ./.ci/scripts/$(ScriptFolder)/upload.sh
   displayName: 'Package Artifacts'

From 49344111ccebf43d901c67fc7a9338516cb30d9d Mon Sep 17 00:00:00 2001
From: Zach Hilman <zachhilman@gmail.com>
Date: Wed, 2 Oct 2019 17:53:53 -0400
Subject: [PATCH 2/7] ci: Add Windows MSVC package script

---
 .ci/scripts/windows/upload.ps1 | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)
 create mode 100644 .ci/scripts/windows/upload.ps1

diff --git a/.ci/scripts/windows/upload.ps1 b/.ci/scripts/windows/upload.ps1
new file mode 100644
index 000000000..de86e7390
--- /dev/null
+++ b/.ci/scripts/windows/upload.ps1
@@ -0,0 +1,32 @@
+$GITDATE = $(git show -s --date=short --format='%ad') -replace "-",""
+$GITREV = $(git show -s --format='%h')
+$RELEASE_DIST = "yuzu-windows-msvc"
+
+$MSVC_BUILD_ZIP = "yuzu-windows-msvc-$GITDATE-$GITREV.zip" -replace " ", ""
+$MSVC_BUILD_PDB = "yuzu-windows-msvc-$GITDATE-$GITREV-debugsymbols.zip" -replace " ", ""
+$MSVC_SEVENZIP = "yuzu-windows-msvc-$GITDATE-$GITREV.7z" -replace " ", ""
+
+$env:BUILD_ZIP = $MSVC_BUILD_ZIP
+$env:BUILD_SYMBOLS = $MSVC_BUILD_PDB
+$env:BUILD_UPDATE = $MSVC_SEVENZIP
+
+$BUILD_DIR = ".\build\bin\Release"
+
+mkdir pdb
+Get-ChildItem "$BUILD_DIR\" -Recurse -Filter "*.pdb" | Copy-Item -destination .\pdb
+7z a -tzip $MSVC_BUILD_PDB .\pdb\*.pdb
+rm "$BUILD_DIR\*.pdb"
+mkdir $RELEASE_DIST
+mkdir "artifacts"
+
+Copy-Item "$BUILD_DIR\*" -Destination $RELEASE_DIST -Recurse
+rm "$RELEASE_DIST\*.exe"
+Get-ChildItem "$BUILD_DIR" -Recurse -Filter "yuzu*.exe" | Copy-Item -destination $RELEASE_DIST
+Get-ChildItem "$BUILD_DIR" -Recurse -Filter "QtWebEngineProcess*.exe" | Copy-Item -destination $RELEASE_DIST
+Copy-Item .\license.txt -Destination $RELEASE_DIST
+Copy-Item .\README.md -Destination $RELEASE_DIST
+7z a -tzip $MSVC_BUILD_ZIP $RELEASE_DIST\*
+7z a $MSVC_SEVENZIP $RELEASE_DIST
+
+Get-ChildItem . -Filter "*.zip" | Copy-Item -destination "artifacts"
+Get-ChildItem . -Filter "*.7z" | Copy-Item -destination "artifacts"
\ No newline at end of file

From 514b74a0989d31cc597e5883a652d68fe4f77612 Mon Sep 17 00:00:00 2001
From: Zach Hilman <zachhilman@gmail.com>
Date: Wed, 2 Oct 2019 17:58:33 -0400
Subject: [PATCH 3/7] ci: Add MSVC build template

---
 .ci/templates/build-msvc.yml | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 .ci/templates/build-msvc.yml

diff --git a/.ci/templates/build-msvc.yml b/.ci/templates/build-msvc.yml
new file mode 100644
index 000000000..906afa382
--- /dev/null
+++ b/.ci/templates/build-msvc.yml
@@ -0,0 +1,21 @@
+parameters:
+  artifactSource: 'true'
+  cache: 'false'
+
+steps:
+- script: mkdir build && cd build && set DATE=`date '+%Y.%m.%d'` && set CI=true && set AZURE_REPO_NAME=yuzu-emu/yuzu-$(BuildName) && set AZURE_REPO_TAG=$(BuildName)-$DATE && cmake -G "Visual Studio 15 2017 Win64" --config Release -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_BUNDLED_UNICORN=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DUSE_DISCORD_PRESENCE=ON .. && cd ..
+  displayName: 'Configure CMake'
+- task: MSBuild@1
+  displayName: 'Build'
+  inputs:
+    solution: 'build/yuzu.sln'
+    maximumCpuCount: true
+    configuration: release
+- task: PowerShell@2
+  displayName: 'Package Artifacts'
+  inputs:
+    targetType: 'filePath'
+    filePath: './.ci/scripts/windows/upload.ps1'
+- publish: artifacts
+  artifact: 'yuzu-$(BuildName)-windows-msvc'
+  displayName: 'Upload Artifacts'

From bfa60e2d4e6615b0c39ef2c1507930167aeab299 Mon Sep 17 00:00:00 2001
From: Zach Hilman <zachhilman@gmail.com>
Date: Wed, 2 Oct 2019 17:58:52 -0400
Subject: [PATCH 4/7] ci: Use MSVC windows for mainline

---
 .ci/yuzu-mainline-step2.yml | 39 ++++++++++++++++++++++++++++++++++---
 1 file changed, 36 insertions(+), 3 deletions(-)

diff --git a/.ci/yuzu-mainline-step2.yml b/.ci/yuzu-mainline-step2.yml
index fec724d11..a031941e5 100644
--- a/.ci/yuzu-mainline-step2.yml
+++ b/.ci/yuzu-mainline-step2.yml
@@ -15,9 +15,42 @@ stages:
   dependsOn: format
   displayName: 'build'
   jobs:
-  - template: ./templates/build-standard.yml
-    parameters:
-      cache: 'true'
+  - job: build
+    displayName: 'standard'
+    pool:
+      vmImage: ubuntu-latest
+    strategy:
+      maxParallel: 10
+      matrix:
+        linux:
+          BuildSuffix: 'linux'
+          ScriptFolder: 'linux'
+    steps:
+    - template: ./templates/sync-source.yml
+      parameters:
+        artifactSource: $(parameters.artifactSource)
+        needSubmodules: 'true'
+    - template: ./templates/build-single.yml
+      parameters:
+        artifactSource: 'false'
+        cache: 'true'
+- stage: build-win
+  dependsOn: format
+  displayName: 'build-windows'
+  jobs:
+  - job: build
+    displayName: 'msvc'
+    pool:
+      vmImage: vs2017-win2016
+    steps:
+    - template: ./templates/sync-source.yml
+      parameters:
+        artifactSource: $(parameters.artifactSource)
+        needSubmodules: 'true'
+    - template: ./templates/build-msvc.yml
+      parameters:
+        artifactSource: 'false'
+        cache: 'true'
 - stage: release
   displayName: 'Release'
   dependsOn: build

From d648cd562a7619990d8fc4a0988750f5f5fc705f Mon Sep 17 00:00:00 2001
From: Zach Hilman <zachhilman@gmail.com>
Date: Wed, 2 Oct 2019 18:23:05 -0400
Subject: [PATCH 5/7] ci: Use MSVC windows for patreon

---
 .ci/yuzu-mainline-step2.yml |  2 +-
 .ci/yuzu-patreon-step2.yml  | 22 ++++++++++++----------
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/.ci/yuzu-mainline-step2.yml b/.ci/yuzu-mainline-step2.yml
index a031941e5..1c9b59a02 100644
--- a/.ci/yuzu-mainline-step2.yml
+++ b/.ci/yuzu-mainline-step2.yml
@@ -34,7 +34,7 @@ stages:
       parameters:
         artifactSource: 'false'
         cache: 'true'
-- stage: build-win
+- stage: build_win
   dependsOn: format
   displayName: 'build-windows'
   jobs:
diff --git a/.ci/yuzu-patreon-step2.yml b/.ci/yuzu-patreon-step2.yml
index 080118224..23e45d9dd 100644
--- a/.ci/yuzu-patreon-step2.yml
+++ b/.ci/yuzu-patreon-step2.yml
@@ -15,14 +15,16 @@ stages:
   dependsOn: format
   displayName: 'build'
   jobs:
-  - template: ./templates/build-standard.yml
-    parameters:
-      cache: 'true'
-- stage: release
-  displayName: 'release'
-  dependsOn: build
-  jobs:
-  - job: azure
-    displayName: 'azure'
+  - job: build
+    displayName: 'windows-msvc'
+    pool:
+      vmImage: vs2017-win2016
     steps:
-    - template: ./templates/release-universal.yml
\ No newline at end of file
+    - template: ./templates/sync-source.yml
+      parameters:
+        artifactSource: $(parameters.artifactSource)
+        needSubmodules: 'true'
+    - template: ./templates/build-msvc.yml
+      parameters:
+        artifactSource: 'false'
+        cache: $(parameters.cache)

From 53be058e7497abfda6d8312c83194cbd963ab097 Mon Sep 17 00:00:00 2001
From: Zach Hilman <zachhilman@gmail.com>
Date: Wed, 2 Oct 2019 18:51:17 -0400
Subject: [PATCH 6/7] ci: Add Mainline tagline

---
 .ci/templates/mergebot.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.ci/templates/mergebot.yml b/.ci/templates/mergebot.yml
index 5211efcc6..a4c5c2a28 100644
--- a/.ci/templates/mergebot.yml
+++ b/.ci/templates/mergebot.yml
@@ -11,5 +11,5 @@ steps:
     inputs:
       scriptSource: 'filePath'
       scriptPath: '.ci/scripts/merge/apply-patches-by-label.py'
-      arguments: '${{ parameters.matchLabel }} patches'
+      arguments: '${{ parameters.matchLabel }} Tagged patches'
       workingDirectory: '$(System.DefaultWorkingDirectory)'

From a86e52a3751405920a2b93d4cd8f5ec0ef62bf2f Mon Sep 17 00:00:00 2001
From: Zach Hilman <zachhilman@gmail.com>
Date: Wed, 2 Oct 2019 18:54:05 -0400
Subject: [PATCH 7/7] ci: Correct mainline release dependency

---
 .ci/templates/release-download.yml | 2 +-
 .ci/yuzu-mainline-step2.yml        | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/.ci/templates/release-download.yml b/.ci/templates/release-download.yml
index 50ca06bb2..f7e30690f 100644
--- a/.ci/templates/release-download.yml
+++ b/.ci/templates/release-download.yml
@@ -2,7 +2,7 @@ steps:
   - task: DownloadPipelineArtifact@2
     displayName: 'Download Windows Release'
     inputs:
-      artifactName: 'yuzu-$(BuildName)-windows-mingw'
+      artifactName: 'yuzu-$(BuildName)-windows-msvc'
       buildType: 'current'
       targetPath: '$(Build.ArtifactStagingDirectory)'
   - task: DownloadPipelineArtifact@2
diff --git a/.ci/yuzu-mainline-step2.yml b/.ci/yuzu-mainline-step2.yml
index 1c9b59a02..0c1af397b 100644
--- a/.ci/yuzu-mainline-step2.yml
+++ b/.ci/yuzu-mainline-step2.yml
@@ -53,7 +53,9 @@ stages:
         cache: 'true'
 - stage: release
   displayName: 'Release'
-  dependsOn: build
+  dependsOn:
+  - build
+  - build_win
   jobs:
   - job: github
     displayName: 'GitHub Release'