diff options
Diffstat (limited to '.ci')
-rw-r--r-- | .ci/scripts/linux/docker.sh | 5 | ||||
-rw-r--r-- | .ci/scripts/linux/exec.sh | 2 | ||||
-rw-r--r-- | .ci/scripts/merge/apply-patches-by-label-private.py | 45 | ||||
-rw-r--r-- | .ci/scripts/merge/apply-patches-by-label.py | 16 | ||||
-rw-r--r-- | .ci/scripts/windows/docker.sh | 2 | ||||
-rw-r--r-- | .ci/scripts/windows/exec.sh | 2 | ||||
-rw-r--r-- | .ci/scripts/windows/upload.ps1 | 38 | ||||
-rw-r--r-- | .ci/templates/build-mock.yml | 2 | ||||
-rw-r--r-- | .ci/templates/build-msvc.yml | 22 | ||||
-rw-r--r-- | .ci/templates/build-single.yml | 5 | ||||
-rw-r--r-- | .ci/templates/build-standard.yml | 6 | ||||
-rw-r--r-- | .ci/templates/build-testing.yml | 4 | ||||
-rw-r--r-- | .ci/templates/merge-private.yml | 37 | ||||
-rw-r--r-- | .ci/templates/merge.yml | 12 | ||||
-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 | 2 | ||||
-rw-r--r-- | .ci/templates/release-github.yml | 6 | ||||
-rw-r--r-- | .ci/templates/release-private-tag.yml | 9 | ||||
-rw-r--r-- | .ci/yuzu-mainline-step2.yml | 52 | ||||
-rw-r--r-- | .ci/yuzu-patreon-step1.yml | 8 | ||||
-rw-r--r-- | .ci/yuzu-patreon-step2.yml | 42 | ||||
-rw-r--r-- | .ci/yuzu-patreon.yml | 19 |
23 files changed, 314 insertions, 54 deletions
diff --git a/.ci/scripts/linux/docker.sh b/.ci/scripts/linux/docker.sh index f538a4081..090ca75f1 100644 --- a/.ci/scripts/linux/docker.sh +++ b/.ci/scripts/linux/docker.sh @@ -5,10 +5,11 @@ cd /yuzu ccache -s mkdir build || true && cd build -cmake .. -G Ninja -DYUZU_USE_BUNDLED_UNICORN=ON -DYUZU_USE_QT_WEB_ENGINE=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DUSE_DISCORD_PRESENCE=ON +cmake .. -G Ninja -DDISPLAY_VERSION=$1 -DYUZU_USE_BUNDLED_UNICORN=ON -DYUZU_USE_QT_WEB_ENGINE=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DUSE_DISCORD_PRESENCE=ON ninja ccache -s -ctest -VV -C Release +# Ignore zlib's tests, since they aren't gated behind a CMake option. +ctest -VV -E "(example|example64)" -C Release diff --git a/.ci/scripts/linux/exec.sh b/.ci/scripts/linux/exec.sh index a5a6c34b9..9fafa9208 100644 --- a/.ci/scripts/linux/exec.sh +++ b/.ci/scripts/linux/exec.sh @@ -2,4 +2,4 @@ mkdir -p "ccache" || true chmod a+x ./.ci/scripts/linux/docker.sh -docker run -e ENABLE_COMPATIBILITY_REPORTING -e CCACHE_DIR=/yuzu/ccache -v $(pwd):/yuzu yuzuemu/build-environments:linux-fresh /bin/bash /yuzu/.ci/scripts/linux/docker.sh +docker run -e ENABLE_COMPATIBILITY_REPORTING -e CCACHE_DIR=/yuzu/ccache -v $(pwd):/yuzu yuzuemu/build-environments:linux-fresh /bin/bash /yuzu/.ci/scripts/linux/docker.sh $1 diff --git a/.ci/scripts/merge/apply-patches-by-label-private.py b/.ci/scripts/merge/apply-patches-by-label-private.py new file mode 100644 index 000000000..fe0acd510 --- /dev/null +++ b/.ci/scripts/merge/apply-patches-by-label-private.py @@ -0,0 +1,45 @@ +# Download all pull requests as patches that match a specific label +# Usage: python download-patches-by-label.py <Label to Match> <Root Path Folder to DL to> + +import requests, sys, json, shutil, subprocess, os, traceback + +org = os.getenv("PRIVATEMERGEORG", "yuzu-emu") +repo = os.getenv("PRIVATEMERGEREPO", "yuzu-private") +tagline = sys.argv[3] +user = sys.argv[1] + +dl_list = {} + +TAG_NAME = sys.argv[2] + +def check_individual(repo_id, pr_id): + url = 'https://%sdev.azure.com/%s/%s/_apis/git/repositories/%s/pullRequests/%s/labels?api-version=5.1-preview.1' % (user, org, repo, repo_id, pr_id) + response = requests.get(url) + if (response.ok): + try: + js = response.json() + return any(tag.get('name') == TAG_NAME for tag in js['value']) + except: + return False + return False + +def merge_pr(pn, ref): + print("Matched PR# %s" % pn) + print(subprocess.check_output(["git", "fetch", "https://%sdev.azure.com/%s/_git/%s" % (user, org, repo), ref, "-f"])) + print(subprocess.check_output(["git", "merge", "--squash", 'origin/' + ref.replace('refs/heads/','')])) + print(subprocess.check_output(["git", "commit", "-m\"Merge %s PR %s\"" % (tagline, pn)])) + +def main(): + url = 'https://%sdev.azure.com/%s/%s/_apis/git/pullrequests?api-version=5.1' % (user, org, repo) + response = requests.get(url) + if (response.ok): + js = response.json() + tagged_prs = filter(lambda pr: check_individual(pr['repository']['id'], pr['pullRequestId']), js['value']) + map(lambda pr: merge_pr(pr['pullRequestId'], pr['sourceRefName']), tagged_prs) + +if __name__ == '__main__': + try: + main() + except: + traceback.print_exc(file=sys.stdout) + sys.exit(-1) diff --git a/.ci/scripts/merge/apply-patches-by-label.py b/.ci/scripts/merge/apply-patches-by-label.py index b346001a5..43ed74d7f 100644 --- a/.ci/scripts/merge/apply-patches-by-label.py +++ b/.ci/scripts/merge/apply-patches-by-label.py @@ -1,7 +1,9 @@ # Download all pull requests as patches that match a specific label # Usage: python download-patches-by-label.py <Label to Match> <Root Path Folder to DL to> -import requests, sys, json, urllib3.request, shutil, subprocess +import requests, sys, json, urllib3.request, shutil, subprocess, os + +tagline = sys.argv[2] http = urllib3.PoolManager() dl_list = {} @@ -12,17 +14,23 @@ def check_individual(labels): return True return False -try: - url = 'https://api.github.com/repos/yuzu-emu/yuzu/pulls' +def do_page(page): + url = 'https://api.github.com/repos/yuzu-emu/yuzu/pulls?page=%s' % page response = requests.get(url) if (response.ok): j = json.loads(response.content) + if j == []: + return for pr in j: if (check_individual(pr["labels"])): pn = pr["number"] print("Matched PR# %s" % pn) print(subprocess.check_output(["git", "fetch", "https://github.com/yuzu-emu/yuzu.git", "pull/%s/head:pr-%s" % (pn, pn), "-f"])) print(subprocess.check_output(["git", "merge", "--squash", "pr-%s" % pn])) - print(subprocess.check_output(["git", "commit", "-m\"Merge PR %s\"" % pn])) + print(subprocess.check_output(["git", "commit", "-m\"Merge %s PR %s\"" % (tagline, pn)])) + +try: + for i in range(1,30): + do_page(i) except: sys.exit(-1) diff --git a/.ci/scripts/windows/docker.sh b/.ci/scripts/windows/docker.sh index f7093363b..e8f26933a 100644 --- a/.ci/scripts/windows/docker.sh +++ b/.ci/scripts/windows/docker.sh @@ -13,7 +13,7 @@ echo '' >> /bin/cmd chmod +x /bin/cmd mkdir build || true && cd build -cmake .. -G Ninja -DCMAKE_TOOLCHAIN_FILE="$(pwd)/../CMakeModules/MinGWCross.cmake" -DUSE_CCACHE=ON -DYUZU_USE_BUNDLED_UNICORN=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DCMAKE_BUILD_TYPE=Release +cmake .. -G Ninja -DDISPLAY_VERSION=$1 -DCMAKE_TOOLCHAIN_FILE="$(pwd)/../CMakeModules/MinGWCross.cmake" -DUSE_CCACHE=ON -DYUZU_USE_BUNDLED_UNICORN=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DCMAKE_BUILD_TYPE=Release ninja # Clean up the dirty hacks diff --git a/.ci/scripts/windows/exec.sh b/.ci/scripts/windows/exec.sh index d6a994856..4155ed5fc 100644 --- a/.ci/scripts/windows/exec.sh +++ b/.ci/scripts/windows/exec.sh @@ -2,4 +2,4 @@ mkdir -p "ccache" || true chmod a+x ./.ci/scripts/windows/docker.sh -docker run -e CCACHE_DIR=/yuzu/ccache -v $(pwd):/yuzu yuzuemu/build-environments:linux-mingw /bin/bash -ex /yuzu/.ci/scripts/windows/docker.sh +docker run -e CCACHE_DIR=/yuzu/ccache -v $(pwd):/yuzu yuzuemu/build-environments:linux-mingw /bin/bash -ex /yuzu/.ci/scripts/windows/docker.sh $1 diff --git a/.ci/scripts/windows/upload.ps1 b/.ci/scripts/windows/upload.ps1 new file mode 100644 index 000000000..3cb709924 --- /dev/null +++ b/.ci/scripts/windows/upload.ps1 @@ -0,0 +1,38 @@ +$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 " ", "" +$MSVC_TAR = "yuzu-windows-msvc-$GITDATE-$GITREV.tar" -replace " ", "" +$MSVC_TARXZ = "yuzu-windows-msvc-$GITDATE-$GITREV.tar.xz" -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 + +7z a -r -ttar $MSVC_TAR $RELEASE_DIST +7z a -r -txz $MSVC_TARXZ $MSVC_TAR + +Get-ChildItem . -Filter "*.zip" | Copy-Item -destination "artifacts" +Get-ChildItem . -Filter "*.7z" | Copy-Item -destination "artifacts" +Get-ChildItem . -Filter "*.tar.xz" | Copy-Item -destination "artifacts"
\ No newline at end of file diff --git a/.ci/templates/build-mock.yml b/.ci/templates/build-mock.yml index e7aba93de..0318a0ad8 100644 --- a/.ci/templates/build-mock.yml +++ b/.ci/templates/build-mock.yml @@ -1,5 +1,5 @@ steps: - script: mkdir artifacts || echo 'X' > artifacts/T1.txt - publish: artifacts - artifact: 'yuzu-$(BuildName)-$(BuildSuffix)' + artifact: 'yuzu-$(BuildName)-mock' 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..b44a08247 --- /dev/null +++ b/.ci/templates/build-msvc.yml @@ -0,0 +1,22 @@ +parameters: + artifactSource: 'true' + cache: 'false' + version: '' + +steps: +- script: mkdir build && cd build && 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 -DDISPLAY_VERSION=${{ parameters['version'] }} .. && 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 9bc27247e..7b27693be 100644 --- a/.ci/templates/build-single.yml +++ b/.ci/templates/build-single.yml @@ -1,10 +1,9 @@ parameters: artifactSource: 'true' cache: 'false' + version: '' 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 +14,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: chmod a+x ./.ci/scripts/$(ScriptFolder)/exec.sh && ./.ci/scripts/$(ScriptFolder)/exec.sh ${{ parameters['version'] }} 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/build-standard.yml b/.ci/templates/build-standard.yml index aa180894e..7422c8346 100644 --- a/.ci/templates/build-standard.yml +++ b/.ci/templates/build-standard.yml @@ -1,3 +1,6 @@ +parameters: + version: '' + jobs: - job: build displayName: 'standard' @@ -20,4 +23,5 @@ jobs: - template: ./build-single.yml parameters: artifactSource: 'false' - cache: $(parameters.cache)
\ No newline at end of file + cache: $(parameters.cache) + version: $(parameters.version)
\ No newline at end of file diff --git a/.ci/templates/build-testing.yml b/.ci/templates/build-testing.yml index 4c9625944..30c8aaac3 100644 --- a/.ci/templates/build-testing.yml +++ b/.ci/templates/build-testing.yml @@ -1,3 +1,6 @@ +parameters: + version: '' + jobs: - job: build_test displayName: 'testing' @@ -31,3 +34,4 @@ jobs: parameters: artifactSource: 'false' cache: 'false' + version: $(parameters.version)
\ No newline at end of file diff --git a/.ci/templates/merge-private.yml b/.ci/templates/merge-private.yml new file mode 100644 index 000000000..f15a74355 --- /dev/null +++ b/.ci/templates/merge-private.yml @@ -0,0 +1,37 @@ +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 remote add other $(GitRepoPushChangesURL) + displayName: 'Register Repository' + - script: git push --force other HEAD:$(GitPushBranch) + displayName: 'Update Code' diff --git a/.ci/templates/merge.yml b/.ci/templates/merge.yml index efc82778a..460dfa1c1 100644 --- a/.ci/templates/merge.yml +++ b/.ci/templates/merge.yml @@ -30,17 +30,7 @@ jobs: 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) + - script: git push --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 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/templates/release-github.yml b/.ci/templates/release-github.yml index 39fd47f1c..c200954f1 100644 --- a/.ci/templates/release-github.yml +++ b/.ci/templates/release-github.yml @@ -1,11 +1,13 @@ steps: - template: ./release-download.yml - task: GitHubRelease@0 + displayName: 'GitHub Release' inputs: action: 'create' - title: 'yuzu $(BuildName) #$(Build.BuildId)' + title: '$(ReleasePrefix) $(DisplayVersion)' assets: '$(Build.ArtifactStagingDirectory)/*' gitHubConnection: $(GitHubReleaseConnectionName) repositoryName: '$(Build.Repository.Name)' target: '$(Build.SourceVersion)' - tagSource: 'auto'
\ No newline at end of file + tagSource: manual + tag: $(BuildName)-$(DisplayPrefix)-$(DisplayVersion)
\ No newline at end of file diff --git a/.ci/templates/release-private-tag.yml b/.ci/templates/release-private-tag.yml new file mode 100644 index 000000000..e80d57593 --- /dev/null +++ b/.ci/templates/release-private-tag.yml @@ -0,0 +1,9 @@ +steps: + - 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)-$(DisplayPrefix)-$(DisplayVersion) -m "yuzu $(BuildName) $(Build.BuildNumber) $(Build.DefinitionName) $(DisplayPrefix)-$(DisplayVersion)" + displayName: 'Tag Source' + - script: git remote add other $(GitRepoPushChangesURL) + displayName: 'Register Repository' + - script: git push other $(BuildName)-$(DisplayPrefix)-$(DisplayVersion) + displayName: 'Update Code'
\ No newline at end of file diff --git a/.ci/yuzu-mainline-step2.yml b/.ci/yuzu-mainline-step2.yml index fec724d11..5f2dfb3d8 100644 --- a/.ci/yuzu-mainline-step2.yml +++ b/.ci/yuzu-mainline-step2.yml @@ -1,6 +1,9 @@ trigger: - master +variables: + DisplayVersion: $[counter(variables['DisplayPrefix'], 1)] + stages: - stage: format displayName: 'format' @@ -15,14 +18,51 @@ 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' + version: $(DisplayVersion) +- 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' + version: $(DisplayVersion) - stage: release - displayName: 'Release' - dependsOn: build + displayName: 'release' + dependsOn: + - build + - build_win jobs: - job: github - displayName: 'GitHub Release' + displayName: 'github' steps: - template: ./templates/release-github.yml
\ No newline at end of file diff --git a/.ci/yuzu-patreon-step1.yml b/.ci/yuzu-patreon-step1.yml new file mode 100644 index 000000000..cf30397cd --- /dev/null +++ b/.ci/yuzu-patreon-step1.yml @@ -0,0 +1,8 @@ +trigger: +- master + +stages: +- stage: merge + displayName: 'merge' + jobs: + - template: ./templates/merge-private.yml diff --git a/.ci/yuzu-patreon-step2.yml b/.ci/yuzu-patreon-step2.yml new file mode 100644 index 000000000..35c5fbe36 --- /dev/null +++ b/.ci/yuzu-patreon-step2.yml @@ -0,0 +1,42 @@ +trigger: +- master + +variables: + DisplayVersion: $[counter(variables['DisplayPrefix'], 1)] + +stages: +- stage: format + displayName: 'format' + jobs: + - job: format + displayName: 'clang' + pool: + vmImage: ubuntu-latest + steps: + - template: ./templates/format-check.yml +- stage: build + dependsOn: format + displayName: 'build' + jobs: + - job: build + displayName: 'windows-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: $(parameters.cache) + version: $(DisplayVersion) +- stage: release + displayName: 'release' + dependsOn: build + jobs: + - job: release + displayName: 'source' + steps: + - template: ./templates/release-private-tag.yml diff --git a/.ci/yuzu-patreon.yml b/.ci/yuzu-patreon.yml deleted file mode 100644 index aa912913d..000000000 --- a/.ci/yuzu-patreon.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Starter pipeline -# Start with a minimal pipeline that you can customize to build and deploy your code. -# Add steps that build, run tests, deploy, and more: -# https://aka.ms/yaml - -trigger: -- master - -pool: - vmImage: 'ubuntu-latest' - -steps: -- script: echo Hello, world! - displayName: 'Run a one-line script' - -- script: | - echo Add other tasks to build, test, and deploy your project. - echo See https://aka.ms/yaml - displayName: 'Run a multi-line script' |