summaryrefslogtreecommitdiffstats
path: root/.ci/templates
diff options
context:
space:
mode:
Diffstat (limited to '.ci/templates')
-rw-r--r--.ci/templates/build-mock.yml5
-rw-r--r--.ci/templates/build-msvc.yml21
-rw-r--r--.ci/templates/build-single.yml15
-rw-r--r--.ci/templates/merge-private.yml47
-rw-r--r--.ci/templates/mergebot-private.yml30
-rw-r--r--.ci/templates/mergebot.yml2
-rw-r--r--.ci/templates/release-download.yml13
-rw-r--r--.ci/templates/release-github.yml11
-rw-r--r--.ci/templates/release-universal.yml10
9 files changed, 145 insertions, 9 deletions
diff --git a/.ci/templates/build-mock.yml b/.ci/templates/build-mock.yml
new file mode 100644
index 000000000..e7aba93de
--- /dev/null
+++ b/.ci/templates/build-mock.yml
@@ -0,0 +1,5 @@
+steps:
+ - script: mkdir artifacts || echo 'X' > artifacts/T1.txt
+ - publish: artifacts
+ artifact: 'yuzu-$(BuildName)-$(BuildSuffix)'
+ displayName: 'Upload Artifacts' \ No newline at end of file
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'
diff --git a/.ci/templates/build-single.yml b/.ci/templates/build-single.yml
index 357731eb9..002f5d24f 100644
--- a/.ci/templates/build-single.yml
+++ b/.ci/templates/build-single.yml
@@ -7,14 +7,13 @@ steps:
displayName: 'Prepare Environment'
inputs:
dockerVersion: '17.09.0-ce'
-- ${{ if eq(parameters.cache, 'true') }}:
- - task: CacheBeta@0
- displayName: 'Cache Build System'
- inputs:
- 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
+- task: CacheBeta@0
+ displayName: 'Cache Build System'
+ inputs:
+ key: yuzu-v1-$(BuildName)-$(BuildSuffix)-$(CacheSuffix)
+ path: $(System.DefaultWorkingDirectory)/ccache
+ cacheHitVar: CACHE_RESTORED
+- 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'
diff --git a/.ci/templates/merge-private.yml b/.ci/templates/merge-private.yml
new file mode 100644
index 000000000..a640cfbde
--- /dev/null
+++ b/.ci/templates/merge-private.yml
@@ -0,0 +1,47 @@
+jobs:
+- job: merge
+ displayName: 'pull requests'
+ steps:
+ - checkout: self
+ submodules: recursive
+ - template: ./mergebot-private.yml
+ parameters:
+ matchLabel: '$(BuildName)-merge'
+ matchLabelPublic: '$(PublicBuildName)-merge'
+ - task: ArchiveFiles@2
+ displayName: 'Package Source'
+ inputs:
+ rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
+ includeRootFolder: false
+ archiveType: '7z'
+ archiveFile: '$(Build.ArtifactStagingDirectory)/yuzu-$(BuildName)-source.7z'
+ - task: PublishPipelineArtifact@1
+ displayName: 'Upload Artifacts'
+ inputs:
+ targetPath: '$(Build.ArtifactStagingDirectory)/yuzu-$(BuildName)-source.7z'
+ artifact: 'yuzu-$(BuildName)-source'
+ replaceExistingArchive: true
+- job: upload_source
+ displayName: 'upload'
+ dependsOn: merge
+ steps:
+ - template: ./sync-source.yml
+ parameters:
+ artifactSource: 'true'
+ needSubmodules: 'true'
+ - script: chmod a+x $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh && $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh
+ displayName: 'Apply Git Configuration'
+ - script: git tag -a $(BuildName)-$(Build.BuildId) -m "yuzu $(BuildName) $(Build.BuildNumber) $(Build.DefinitionName)"
+ displayName: 'Tag Source'
+ - script: git remote add other $(GitRepoPushChangesURL)
+ displayName: 'Register Repository'
+ - script: git push --follow-tags --force other HEAD:$(GitPushBranch)
+ displayName: 'Update Code'
+ - script: git rev-list -n 1 $(BuildName)-$(Build.BuildId) > $(Build.ArtifactStagingDirectory)/tag-commit.sha
+ displayName: 'Calculate Release Point'
+ - task: PublishPipelineArtifact@1
+ displayName: 'Upload Release Point'
+ inputs:
+ targetPath: '$(Build.ArtifactStagingDirectory)/tag-commit.sha'
+ artifact: 'yuzu-$(BuildName)-release-point'
+ replaceExistingArchive: true \ No newline at end of file
diff --git a/.ci/templates/mergebot-private.yml b/.ci/templates/mergebot-private.yml
new file mode 100644
index 000000000..f9a40cf61
--- /dev/null
+++ b/.ci/templates/mergebot-private.yml
@@ -0,0 +1,30 @@
+parameters:
+ matchLabel: 'dummy-merge'
+ matchLabelPublic: 'dummy-merge'
+
+steps:
+ - script: mkdir $(System.DefaultWorkingDirectory)/patches && pip install requests urllib3
+ displayName: 'Prepare Environment'
+ - script: chmod a+x $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh && $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh
+ displayName: 'Apply Git Configuration'
+ - task: PythonScript@0
+ displayName: 'Discover, Download, and Apply Patches (Mainline)'
+ inputs:
+ scriptSource: 'filePath'
+ scriptPath: '.ci/scripts/merge/apply-patches-by-label.py'
+ arguments: '${{ parameters.matchLabelPublic }} $(MergeTaglinePublic) patches-public'
+ workingDirectory: '$(System.DefaultWorkingDirectory)'
+ - task: PythonScript@0
+ displayName: 'Discover, Download, and Apply Patches (Patreon Public)'
+ inputs:
+ scriptSource: 'filePath'
+ scriptPath: '.ci/scripts/merge/apply-patches-by-label.py'
+ arguments: '${{ parameters.matchLabel }} "$(MergeTaglinePrivate) Public" patches-mixed-public'
+ workingDirectory: '$(System.DefaultWorkingDirectory)'
+ - task: PythonScript@0
+ displayName: 'Discover, Download, and Apply Patches (Patreon Private)'
+ inputs:
+ scriptSource: 'filePath'
+ scriptPath: '.ci/scripts/merge/apply-patches-by-label-private.py'
+ arguments: '$(PrivateMergeUser) ${{ parameters.matchLabel }} "$(MergeTaglinePrivate) Private" patches-private'
+ workingDirectory: '$(System.DefaultWorkingDirectory)'
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)'
diff --git a/.ci/templates/release-download.yml b/.ci/templates/release-download.yml
new file mode 100644
index 000000000..f7e30690f
--- /dev/null
+++ b/.ci/templates/release-download.yml
@@ -0,0 +1,13 @@
+steps:
+ - task: DownloadPipelineArtifact@2
+ displayName: 'Download Windows Release'
+ inputs:
+ artifactName: 'yuzu-$(BuildName)-windows-msvc'
+ buildType: 'current'
+ targetPath: '$(Build.ArtifactStagingDirectory)'
+ - task: DownloadPipelineArtifact@2
+ displayName: 'Download Linux Release'
+ inputs:
+ artifactName: 'yuzu-$(BuildName)-linux'
+ buildType: 'current'
+ targetPath: '$(Build.ArtifactStagingDirectory)' \ No newline at end of file
diff --git a/.ci/templates/release-github.yml b/.ci/templates/release-github.yml
new file mode 100644
index 000000000..39fd47f1c
--- /dev/null
+++ b/.ci/templates/release-github.yml
@@ -0,0 +1,11 @@
+steps:
+ - template: ./release-download.yml
+ - task: GitHubRelease@0
+ inputs:
+ action: 'create'
+ title: 'yuzu $(BuildName) #$(Build.BuildId)'
+ assets: '$(Build.ArtifactStagingDirectory)/*'
+ gitHubConnection: $(GitHubReleaseConnectionName)
+ repositoryName: '$(Build.Repository.Name)'
+ target: '$(Build.SourceVersion)'
+ tagSource: 'auto' \ No newline at end of file
diff --git a/.ci/templates/release-universal.yml b/.ci/templates/release-universal.yml
new file mode 100644
index 000000000..707697007
--- /dev/null
+++ b/.ci/templates/release-universal.yml
@@ -0,0 +1,10 @@
+steps:
+ - template: ./release-download.yml
+ - task: UniversalPackages@0
+ displayName: Publish Artifacts
+ inputs:
+ command: publish
+ publishDirectory: '$(Build.ArtifactStagingDirectory)'
+ vstsFeedPublish: 'yuzu-$(BuildName)'
+ vstsFeedPackagePublish: 'main'
+ packagePublishDescription: 'Yuzu Windows and Linux Executable Packages' \ No newline at end of file