diff options
Diffstat (limited to '.ci/scripts')
| -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 | 52 | ||||
| -rw-r--r-- | .ci/scripts/merge/apply-patches-by-label.py | 12 | ||||
| -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 |
7 files changed, 81 insertions, 32 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 index 11ec60010..fe0acd510 100644 --- a/.ci/scripts/merge/apply-patches-by-label-private.py +++ b/.ci/scripts/merge/apply-patches-by-label-private.py @@ -1,41 +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, urllib3.request, shutil, subprocess, os, traceback +import requests, sys, json, shutil, subprocess, os, traceback -org = os.getenv("PrivateMergeOrg".upper(), "yuzu-emu") -repo = os.getenv("PrivateMergeRepo".upper(), "yuzu-private") -tagline = os.getenv("MergeTaglinePrivate".upper(), "") +org = os.getenv("PRIVATEMERGEORG", "yuzu-emu") +repo = os.getenv("PRIVATEMERGEREPO", "yuzu-private") +tagline = sys.argv[3] user = sys.argv[1] -http = urllib3.PoolManager() 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): - j = json.loads(response.content) - for tg in j['value']: - if (tg['name'] == sys.argv[2]): - return True + try: + js = response.json() + return any(tag.get('name') == TAG_NAME for tag in js['value']) + except: + return False return False -try: +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): - j = json.loads(response.content) - for pr in j["value"]: - repo_id = pr['repository']['id'] - pr_id = pr['pullRequestId'] - if (check_individual(repo_id, pr_id)): - pn = pr_id - ref = pr['sourceRefName'] - 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)])) -except: - traceback.print_exc(file=sys.stdout) - sys.exit(-1) + 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 7f1ea06cf..43ed74d7f 100644 --- a/.ci/scripts/merge/apply-patches-by-label.py +++ b/.ci/scripts/merge/apply-patches-by-label.py @@ -3,7 +3,7 @@ import requests, sys, json, urllib3.request, shutil, subprocess, os -tagline = os.getenv("MergeTaglinePublic".upper(), "") +tagline = sys.argv[2] http = urllib3.PoolManager() dl_list = {} @@ -14,11 +14,13 @@ 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"] @@ -26,5 +28,9 @@ try: 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 %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 |
