diff options
Diffstat (limited to '.ci/templates')
-rw-r--r-- | .ci/templates/build-mock.yml | 5 | ||||
-rw-r--r-- | .ci/templates/build-msvc.yml | 21 | ||||
-rw-r--r-- | .ci/templates/build-single.yml | 15 | ||||
-rw-r--r-- | .ci/templates/merge-private.yml | 47 | ||||
-rw-r--r-- | .ci/templates/mergebot-private.yml | 30 | ||||
-rw-r--r-- | .ci/templates/mergebot.yml | 2 | ||||
-rw-r--r-- | .ci/templates/release-download.yml | 13 | ||||
-rw-r--r-- | .ci/templates/release-github.yml | 11 | ||||
-rw-r--r-- | .ci/templates/release-universal.yml | 10 |
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 |