diff options
| author | briar <205427297+icybriarr@users.noreply.github.com> | 2025-03-31 01:59:52 +0200 |
|---|---|---|
| committer | Briar <205427297+icybriarr@users.noreply.github.com> | 2025-04-04 03:23:31 +0200 |
| commit | 43ef13973c60e06ef6485b8dcdbede5df78ebc05 (patch) | |
| tree | 85f565a67bb846664f441e2f96e957685f5c38f5 | |
| parent | 24fb37525cfc1f03246de9b247977c595d1e7257 (diff) | |
ci/cd: Delete old files
57 files changed, 0 insertions, 2308 deletions
diff --git a/.ci/scripts/android/build.sh b/.ci/scripts/android/build.sh deleted file mode 100755 index 98593017f0..0000000000 --- a/.ci/scripts/android/build.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -ex - -# SPDX-FileCopyrightText: 2023 yuzu Emulator Project -# SPDX-License-Identifier: GPL-3.0-or-later - -export NDK_CCACHE="$(which ccache)" -ccache -s - -BUILD_FLAVOR="mainline" - -BUILD_TYPE="release" -if [ "${GITHUB_REPOSITORY}" == "yuzu-emu/yuzu" ]; then - BUILD_TYPE="relWithDebInfo" -fi - -if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then - export ANDROID_KEYSTORE_FILE="${GITHUB_WORKSPACE}/ks.jks" - base64 --decode <<< "${ANDROID_KEYSTORE_B64}" > "${ANDROID_KEYSTORE_FILE}" -fi - -cd src/android -chmod +x ./gradlew -./gradlew "assemble${BUILD_FLAVOR}${BUILD_TYPE}" "bundle${BUILD_FLAVOR}${BUILD_TYPE}" - -ccache -s - -if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then - rm "${ANDROID_KEYSTORE_FILE}" -fi diff --git a/.ci/scripts/android/eabuild.sh b/.ci/scripts/android/eabuild.sh deleted file mode 100644 index 1672f29489..0000000000 --- a/.ci/scripts/android/eabuild.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -ex - -# SPDX-FileCopyrightText: 2024 yuzu Emulator Project -# SPDX-License-Identifier: GPL-3.0-or-later - -export NDK_CCACHE="$(which ccache)" -ccache -s - -export ANDROID_KEYSTORE_FILE="${GITHUB_WORKSPACE}/ks.jks" -base64 --decode <<< "${EA_PLAY_ANDROID_KEYSTORE_B64}" > "${ANDROID_KEYSTORE_FILE}" -export ANDROID_KEY_ALIAS="${PLAY_ANDROID_KEY_ALIAS}" -export ANDROID_KEYSTORE_PASS="${PLAY_ANDROID_KEYSTORE_PASS}" -export SERVICE_ACCOUNT_KEY_PATH="${GITHUB_WORKSPACE}/sa.json" -base64 --decode <<< "${EA_SERVICE_ACCOUNT_KEY_B64}" > "${SERVICE_ACCOUNT_KEY_PATH}" -./gradlew "publishEaReleaseBundle" - -ccache -s - -if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then - rm "${ANDROID_KEYSTORE_FILE}" -fi diff --git a/.ci/scripts/android/mainlinebuild.sh b/.ci/scripts/android/mainlinebuild.sh deleted file mode 100644 index f3b89ed1c1..0000000000 --- a/.ci/scripts/android/mainlinebuild.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -ex - -# SPDX-FileCopyrightText: 2024 yuzu Emulator Project -# SPDX-License-Identifier: GPL-3.0-or-later - -export NDK_CCACHE="$(which ccache)" -ccache -s - -export ANDROID_KEYSTORE_FILE="${GITHUB_WORKSPACE}/ks.jks" -base64 --decode <<< "${MAINLINE_PLAY_ANDROID_KEYSTORE_B64}" > "${ANDROID_KEYSTORE_FILE}" -export ANDROID_KEY_ALIAS="${PLAY_ANDROID_KEY_ALIAS}" -export ANDROID_KEYSTORE_PASS="${PLAY_ANDROID_KEYSTORE_PASS}" -export SERVICE_ACCOUNT_KEY_PATH="${GITHUB_WORKSPACE}/sa.json" -base64 --decode <<< "${MAINLINE_SERVICE_ACCOUNT_KEY_B64}" > "${SERVICE_ACCOUNT_KEY_PATH}" -./gradlew "publishMainlineReleaseBundle" - -ccache -s - -if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then - rm "${ANDROID_KEYSTORE_FILE}" -fi diff --git a/.ci/scripts/android/upload.sh b/.ci/scripts/android/upload.sh deleted file mode 100755 index 26b1a7efa2..0000000000 --- a/.ci/scripts/android/upload.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -ex - -# SPDX-FileCopyrightText: 2023 yuzu Emulator Project -# SPDX-License-Identifier: GPL-3.0-or-later - -. ./.ci/scripts/common/pre-upload.sh - -REV_NAME="yuzu-${GITDATE}-${GITREV}" - -BUILD_FLAVOR="mainline" - -BUILD_TYPE_LOWER="release" -BUILD_TYPE_UPPER="Release" -if [ "${GITHUB_REPOSITORY}" == "yuzu-emu/yuzu" ]; then - BUILD_TYPE_LOWER="relWithDebInfo" - BUILD_TYPE_UPPER="RelWithDebInfo" -fi - -cp src/android/app/build/outputs/apk/"${BUILD_FLAVOR}/${BUILD_TYPE_LOWER}/app-${BUILD_FLAVOR}-${BUILD_TYPE_LOWER}.apk" \ - "artifacts/${REV_NAME}.apk" -cp src/android/app/build/outputs/bundle/"${BUILD_FLAVOR}${BUILD_TYPE_UPPER}"/"app-${BUILD_FLAVOR}-${BUILD_TYPE_LOWER}.aab" \ - "artifacts/${REV_NAME}.aab" diff --git a/.ci/scripts/clang/docker.sh b/.ci/scripts/clang/docker.sh deleted file mode 100755 index f878e24e15..0000000000 --- a/.ci/scripts/clang/docker.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -ex - -# SPDX-FileCopyrightText: 2021 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -# Exit on error, rather than continuing with the rest of the script. -set -e - -ccache -s - -mkdir build || true && cd build -cmake .. \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_CXX_FLAGS="-march=x86-64-v2" \ - -DCMAKE_CXX_COMPILER=/usr/lib/ccache/clang++ \ - -DCMAKE_C_COMPILER=/usr/lib/ccache/clang \ - -DCMAKE_INSTALL_PREFIX="/usr" \ - -DDISPLAY_VERSION=$1 \ - -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \ - -DENABLE_QT_TRANSLATION=ON \ - -DUSE_DISCORD_PRESENCE=ON \ - -DYUZU_CRASH_DUMPS=ON \ - -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \ - -DYUZU_USE_BUNDLED_FFMPEG=ON \ - -GNinja - -ninja - -ccache -s - -ctest -VV -C Release - diff --git a/.ci/scripts/clang/exec.sh b/.ci/scripts/clang/exec.sh deleted file mode 100644 index 664fce5f84..0000000000 --- a/.ci/scripts/clang/exec.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -ex - -# SPDX-FileCopyrightText: 2021 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -mkdir -p "ccache" || true -chmod a+x ./.ci/scripts/clang/docker.sh -# the UID for the container yuzu user is 1027 -sudo chown -R 1027 ./ -docker run -e ENABLE_COMPATIBILITY_REPORTING -e CCACHE_DIR=/yuzu/ccache -v "$(pwd):/yuzu" -w /yuzu yuzuemu/build-environments:linux-fresh /bin/bash /yuzu/.ci/scripts/clang/docker.sh "$1" -sudo chown -R $UID ./ diff --git a/.ci/scripts/clang/upload.sh b/.ci/scripts/clang/upload.sh deleted file mode 100755 index 0b4b3e330b..0000000000 --- a/.ci/scripts/clang/upload.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -ex - -# SPDX-FileCopyrightText: 2021 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -. .ci/scripts/common/pre-upload.sh - -REV_NAME="yuzu-linux-${GITDATE}-${GITREV}" -ARCHIVE_NAME="${REV_NAME}.tar.xz" -COMPRESSION_FLAGS="-cJvf" - -if [ "${RELEASE_NAME}" = "mainline" ]; then - DIR_NAME="${REV_NAME}" -else - DIR_NAME="${REV_NAME}_${RELEASE_NAME}" -fi - -mkdir "$DIR_NAME" - -cp build/bin/yuzu-cmd "$DIR_NAME" -cp build/bin/yuzu "$DIR_NAME" - -. .ci/scripts/common/post-upload.sh diff --git a/.ci/scripts/common/post-upload.sh b/.ci/scripts/common/post-upload.sh deleted file mode 100644 index 0930b7a7bd..0000000000 --- a/.ci/scripts/common/post-upload.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -ex - -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -# Copy documentation -cp LICENSE.txt "$DIR_NAME" -cp README.md "$DIR_NAME" - -if [[ -z "${NO_SOURCE_PACK}" ]]; then - git clone --depth 1 file://$(readlink -e .) ${REV_NAME}-source - tar -cJvf "${REV_NAME}-source.tar.xz" ${REV_NAME}-source - cp -v "${REV_NAME}-source.tar.xz" "$DIR_NAME" - cp -v "${REV_NAME}-source.tar.xz" "${ARTIFACTS_DIR}/" -fi - -tar $COMPRESSION_FLAGS "$ARCHIVE_NAME" "$DIR_NAME" - -# move the compiled archive into the artifacts directory to be uploaded by travis releases -mv "$ARCHIVE_NAME" "${ARTIFACTS_DIR}/" diff --git a/.ci/scripts/common/pre-upload.sh b/.ci/scripts/common/pre-upload.sh deleted file mode 100644 index 3583f98402..0000000000 --- a/.ci/scripts/common/pre-upload.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -ex - -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -GITDATE="`git show -s --date=short --format='%ad' | sed 's/-//g'`" -GITREV="`git show -s --format='%h'`" -ARTIFACTS_DIR="$PWD/artifacts" - -mkdir -p "${ARTIFACTS_DIR}/" diff --git a/.ci/scripts/format/docker.sh b/.ci/scripts/format/docker.sh deleted file mode 100644 index a0f7a61cce..0000000000 --- a/.ci/scripts/format/docker.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -ex - -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -# Run clang-format -cd /yuzu -chmod a+x ./.ci/scripts/format/script.sh -./.ci/scripts/format/script.sh diff --git a/.ci/scripts/format/exec.sh b/.ci/scripts/format/exec.sh deleted file mode 100644 index 40ab41abda..0000000000 --- a/.ci/scripts/format/exec.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -ex - -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -chmod a+x ./.ci/scripts/format/docker.sh -# the UID for the container yuzu user is 1027 -sudo chown -R 1027 ./ -docker run -v "$(pwd):/yuzu" -w /yuzu yuzuemu/build-environments:linux-clang-format /bin/bash -ex /yuzu/.ci/scripts/format/docker.sh -sudo chown -R $UID ./ diff --git a/.ci/scripts/format/script.sh b/.ci/scripts/format/script.sh deleted file mode 100755 index f9c63dbfa3..0000000000 --- a/.ci/scripts/format/script.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -ex - -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -shopt -s nullglob globstar - -if git grep -nrI '\s$' src **/*.yml **/*.txt **/*.md Doxyfile .gitignore .gitmodules .ci* dist/*.desktop dist/*.svg dist/*.xml; then - echo Trailing whitespace found, aborting - exit 1 -fi - -# Default clang-format points to default 3.5 version one -CLANG_FORMAT="${CLANG_FORMAT:-clang-format-15}" -"$CLANG_FORMAT" --version - -# Turn off tracing for this because it's too verbose -set +x - -# Check everything for branch pushes -FILES_TO_LINT="$(find src/ -name '*.cpp' -or -name '*.h')" - -for f in $FILES_TO_LINT; do - echo "$f" - "$CLANG_FORMAT" -i "$f" -done - -DIFF=$(git -c core.fileMode=false diff) - -if [ ! -z "$DIFF" ]; then - echo "!!! Not compliant to coding style, here is the fix:" - echo "$DIFF" - exit 1 -fi - -cd src/android -./gradlew ktlintCheck diff --git a/.ci/scripts/linux/docker.sh b/.ci/scripts/linux/docker.sh deleted file mode 100755 index 7bba01d62a..0000000000 --- a/.ci/scripts/linux/docker.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/bash -ex - -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -# Exit on error, rather than continuing with the rest of the script. -set -e - -ccache -s - -mkdir build || true && cd build -cmake .. \ - -DBoost_USE_STATIC_LIBS=ON \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_CXX_FLAGS="-march=x86-64-v2" \ - -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ \ - -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc \ - -DCMAKE_INSTALL_PREFIX="/usr" \ - -DDISPLAY_VERSION=$1 \ - -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \ - -DENABLE_QT_TRANSLATION=ON \ - -DUSE_DISCORD_PRESENCE=ON \ - -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \ - -DYUZU_USE_BUNDLED_FFMPEG=ON \ - -DYUZU_ENABLE_LTO=ON \ - -DYUZU_CRASH_DUMPS=ON \ - -GNinja - -ninja - -ccache -s - -ctest -VV -C Release - -# Separate debug symbols from specified executables -for EXE in yuzu; do - EXE_PATH="bin/$EXE" - # Copy debug symbols out - objcopy --only-keep-debug $EXE_PATH $EXE_PATH.debug - # Add debug link and strip debug symbols - objcopy -g --add-gnu-debuglink=$EXE_PATH.debug $EXE_PATH $EXE_PATH.out - # Overwrite original with stripped copy - mv $EXE_PATH.out $EXE_PATH -done -# Strip debug symbols from all executables -find bin/ -type f -not -regex '.*.debug' -exec strip -g {} ';' - -DESTDIR="$PWD/AppDir" ninja install -rm -vf AppDir/usr/bin/yuzu-cmd AppDir/usr/bin/yuzu-tester - -# Download tools needed to build an AppImage -wget -nc https://raw.githubusercontent.com/yuzu-emu/ext-linux-bin/main/appimage/deploy-linux.sh -wget -nc https://raw.githubusercontent.com/yuzu-emu/AppImageKit-checkrt/old/AppRun.sh -wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/exec-x86_64.so -# Set executable bit -chmod 755 \ - deploy-linux.sh \ - AppRun.sh \ - exec-x86_64.so \ - -# Workaround for https://github.com/AppImage/AppImageKit/issues/828 -export APPIMAGE_EXTRACT_AND_RUN=1 - -mkdir -p AppDir/usr/optional -mkdir -p AppDir/usr/optional/libstdc++ -mkdir -p AppDir/usr/optional/libgcc_s - -# Deploy yuzu's needed dependencies -DEPLOY_QT=1 ./deploy-linux.sh AppDir/usr/bin/yuzu AppDir - -# Workaround for libQt5MultimediaGstTools indirectly requiring libwayland-client and breaking Vulkan usage on end-user systems -find AppDir -type f -regex '.*libwayland-client\.so.*' -delete -print - -# Workaround for building yuzu with GCC 10 but also trying to distribute it to Ubuntu 18.04 et al. -# See https://github.com/darealshinji/AppImageKit-checkrt -cp exec-x86_64.so AppDir/usr/optional/exec.so -cp AppRun.sh AppDir/AppRun -cp --dereference /usr/lib/x86_64-linux-gnu/libstdc++.so.6 AppDir/usr/optional/libstdc++/libstdc++.so.6 -cp --dereference /lib/x86_64-linux-gnu/libgcc_s.so.1 AppDir/usr/optional/libgcc_s/libgcc_s.so.1 diff --git a/.ci/scripts/linux/exec.sh b/.ci/scripts/linux/exec.sh deleted file mode 100644 index 04e2486a1b..0000000000 --- a/.ci/scripts/linux/exec.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -ex - -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -mkdir -p "ccache" || true -chmod a+x ./.ci/scripts/linux/docker.sh -# the UID for the container yuzu user is 1027 -sudo chown -R 1027 ./ - -# The environment variables listed below: -# AZURECIREPO TITLEBARFORMATIDLE TITLEBARFORMATRUNNING DISPLAYVERSION -# are requested in src/common/CMakeLists.txt and appear to be provided somewhere in Azure DevOps - -docker run -e AZURECIREPO -e TITLEBARFORMATIDLE -e TITLEBARFORMATRUNNING -e DISPLAYVERSION -e ENABLE_COMPATIBILITY_REPORTING -e CCACHE_DIR=/yuzu/ccache -v "$(pwd):/yuzu" -w /yuzu yuzuemu/build-environments:linux-fresh /bin/bash /yuzu/.ci/scripts/linux/docker.sh "$1" -sudo chown -R $UID ./ diff --git a/.ci/scripts/linux/upload.sh b/.ci/scripts/linux/upload.sh deleted file mode 100755 index fbb2d9c1b0..0000000000 --- a/.ci/scripts/linux/upload.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/bash -ex - -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -. .ci/scripts/common/pre-upload.sh - -APPIMAGE_NAME="yuzu-${RELEASE_NAME}-${GITDATE}-${GITREV}.AppImage" -BASE_NAME="yuzu-linux" -REV_NAME="${BASE_NAME}-${GITDATE}-${GITREV}" -ARCHIVE_NAME="${REV_NAME}.tar.xz" -COMPRESSION_FLAGS="-cJvf" - -if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then - DIR_NAME="${BASE_NAME}-${RELEASE_NAME}" -else - DIR_NAME="${REV_NAME}-${RELEASE_NAME}" -fi - -mkdir "$DIR_NAME" - -cp build/bin/yuzu-cmd "$DIR_NAME" -if [ "${RELEASE_NAME}" != "early-access" ] && [ "${RELEASE_NAME}" != "mainline" ]; then - cp build/bin/yuzu "$DIR_NAME" -fi - -# Build an AppImage -cd build - -wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/appimagetool-x86_64.AppImage -chmod 755 appimagetool-x86_64.AppImage - -# if FUSE is not available, then fallback to extract and run -if ! ./appimagetool-x86_64.AppImage --version; then - export APPIMAGE_EXTRACT_AND_RUN=1 -fi - -# Don't let AppImageLauncher ask to integrate EA -if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then - echo "X-AppImage-Integrate=false" >> AppDir/org.yuzu_emu.yuzu.desktop -fi - -if [ "${RELEASE_NAME}" = "mainline" ]; then - # Generate update information if releasing to mainline - ./appimagetool-x86_64.AppImage -u "gh-releases-zsync|yuzu-emu|yuzu-${RELEASE_NAME}|latest|yuzu-*.AppImage.zsync" AppDir "${APPIMAGE_NAME}" -else - ./appimagetool-x86_64.AppImage AppDir "${APPIMAGE_NAME}" -fi -cd .. - -# Copy the AppImage and update info to the artifacts directory and avoid compressing it -cp "build/${APPIMAGE_NAME}" "${ARTIFACTS_DIR}/" -if [ -f "build/${APPIMAGE_NAME}.zsync" ]; then - cp "build/${APPIMAGE_NAME}.zsync" "${ARTIFACTS_DIR}/" -fi - -# Copy the AppImage to the general release directory and remove git revision info -if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then - cp "build/${APPIMAGE_NAME}" "${DIR_NAME}/yuzu-${RELEASE_NAME}.AppImage" -fi - -# Copy debug symbols to artifacts -cd build/bin -tar $COMPRESSION_FLAGS "${ARTIFACTS_DIR}/${REV_NAME}-debug.tar.xz" *.debug -cd - - -. .ci/scripts/common/post-upload.sh diff --git a/.ci/scripts/merge/apply-patches-by-label-private.py b/.ci/scripts/merge/apply-patches-by-label-private.py deleted file mode 100644 index c640c4c4da..0000000000 --- a/.ci/scripts/merge/apply-patches-by-label-private.py +++ /dev/null @@ -1,48 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -# 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", "--no-recurse-submodules"])) - 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 deleted file mode 100644 index 17bb7dc13d..0000000000 --- a/.ci/scripts/merge/apply-patches-by-label.py +++ /dev/null @@ -1,38 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -# Download all pull requests as patches that match a specific label -# Usage: python apply-patches-by-label.py <Label to Match> - -import json, requests, subprocess, sys, traceback - -tagline = sys.argv[2] - -def check_individual(labels): - for label in labels: - if (label["name"] == sys.argv[1]): - return True - return False - -def do_page(page): - url = f"https://api.github.com/repos/yuzu-emu/yuzu/pulls?page={page}" - response = requests.get(url) - response.raise_for_status() - if (response.ok): - j = json.loads(response.content) - if j == []: - return - for pr in j: - if (check_individual(pr["labels"])): - pn = pr["number"] - print(f"Matched PR# {pn}") - print(subprocess.check_output(["git", "fetch", "https://github.com/yuzu-emu/yuzu.git", f"pull/{pn}/head:pr-{pn}", "-f", "--no-recurse-submodules"])) - print(subprocess.check_output(["git", "merge", "--squash", f"pr-{pn}"])) - print(subprocess.check_output(["git", "commit", f"-m\"Merge {tagline} PR {pn}\""])) - -try: - for i in range(1,10): - do_page(i) -except: - traceback.print_exc(file=sys.stdout) - sys.exit(-1) diff --git a/.ci/scripts/merge/check-label-presence.py b/.ci/scripts/merge/check-label-presence.py deleted file mode 100644 index 51cf681291..0000000000 --- a/.ci/scripts/merge/check-label-presence.py +++ /dev/null @@ -1,21 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -# Checks to see if the specified pull request # has the specified tag -# Usage: python check-label-presence.py <Pull Request ID> <Name of Label> - -import requests, json, sys - -try: - url = 'https://api.github.com/repos/yuzu-emu/yuzu/issues/%s' % sys.argv[1] - response = requests.get(url) - if (response.ok): - j = json.loads(response.content) - for label in j["labels"]: - if label["name"] == sys.argv[2]: - print('##vso[task.setvariable variable=enabletesting;]true') - sys.exit() -except: - sys.exit(-1) - -print('##vso[task.setvariable variable=enabletesting;]false') diff --git a/.ci/scripts/merge/yuzubot-git-config.sh b/.ci/scripts/merge/yuzubot-git-config.sh deleted file mode 100644 index d7f1f29dba..0000000000 --- a/.ci/scripts/merge/yuzubot-git-config.sh +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -git config --global user.email "yuzu@yuzu-emu.org" -git config --global user.name "yuzubot"
\ No newline at end of file diff --git a/.ci/scripts/transifex/docker.sh b/.ci/scripts/transifex/docker.sh deleted file mode 100755 index 6ddbfd0dda..0000000000 --- a/.ci/scripts/transifex/docker.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -e - -# SPDX-FileCopyrightText: 2021 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -set -x - -echo -e "\e[1m\e[33mBuild tools information:\e[0m" -cmake --version -gcc -v -tx --version - -mkdir build && cd build -cmake .. -DENABLE_QT_TRANSLATION=ON -DGENERATE_QT_TRANSLATION=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_SDL2=OFF -DYUZU_TESTS=OFF -DYUZU_USE_BUNDLED_VCPKG=ON -make translation -cd .. - -cd dist/languages -tx push -s diff --git a/.ci/scripts/windows/docker.sh b/.ci/scripts/windows/docker.sh deleted file mode 100755 index 44023600d7..0000000000 --- a/.ci/scripts/windows/docker.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/bash -ex - -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -set -e - -#cd /yuzu - -ccache -sv - -mkdir -p build && cd build -cmake .. \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_TOOLCHAIN_FILE="${PWD}/../CMakeModules/MinGWCross.cmake" \ - -DDISPLAY_VERSION="$1" \ - -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \ - -DENABLE_QT_TRANSLATION=ON \ - -DUSE_CCACHE=ON \ - -DYUZU_USE_BUNDLED_SDL2=OFF \ - -DYUZU_USE_EXTERNAL_SDL2=OFF \ - -DYUZU_TESTS=OFF \ - -GNinja -ninja yuzu yuzu-cmd - -ccache -sv - -echo "Tests skipped" -#ctest -VV -C Release - -echo 'Prepare binaries...' -cd .. -mkdir package - -if [ -d "/usr/x86_64-w64-mingw32/lib/qt5/plugins/platforms/" ]; then - QT_PLUGINS_PATH='/usr/x86_64-w64-mingw32/lib/qt5/plugins' -else - #fallback to qt - QT_PLUGINS_PATH='/usr/x86_64-w64-mingw32/lib/qt/plugins' -fi - -find build/ -name "yuzu*.exe" -exec cp {} 'package' \; - -# copy Qt plugins -mkdir package/platforms -cp -v "${QT_PLUGINS_PATH}/platforms/qwindows.dll" package/platforms/ -cp -rv "${QT_PLUGINS_PATH}/mediaservice/" package/ -cp -rv "${QT_PLUGINS_PATH}/imageformats/" package/ -cp -rv "${QT_PLUGINS_PATH}/styles/" package/ -rm -f package/mediaservice/*d.dll - -for i in package/*.exe; do - # we need to process pdb here, however, cv2pdb - # does not work here, so we just simply strip all the debug symbols - x86_64-w64-mingw32-strip "${i}" -done - -python3 .ci/scripts/windows/scan_dll.py package/*.exe package/imageformats/*.dll "package/" - -# copy FFmpeg libraries -EXTERNALS_PATH="$(pwd)/build/externals" -FFMPEG_DLL_PATH="$(find "${EXTERNALS_PATH}" -maxdepth 1 -type d | grep 'ffmpeg-')/bin" -find ${FFMPEG_DLL_PATH} -type f -regex ".*\.dll" -exec cp -nv {} package/ ';' - -# copy libraries from yuzu.exe path -find "$(pwd)/build/bin/" -type f -regex ".*\.dll" -exec cp -v {} package/ ';' diff --git a/.ci/scripts/windows/exec.sh b/.ci/scripts/windows/exec.sh deleted file mode 100644 index ca74eeba56..0000000000 --- a/.ci/scripts/windows/exec.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -ex - -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -mkdir -p "ccache" || true -chmod a+x ./.ci/scripts/windows/docker.sh -# the UID for the container yuzu user is 1027 -sudo chown -R 1027 ./ -docker run -e CCACHE_DIR=/yuzu/ccache -v "$(pwd):/yuzu" -w /yuzu yuzuemu/build-environments:linux-mingw /bin/bash -ex /yuzu/.ci/scripts/windows/docker.sh "$1" -sudo chown -R $UID ./ diff --git a/.ci/scripts/windows/install-vulkan-sdk.ps1 b/.ci/scripts/windows/install-vulkan-sdk.ps1 deleted file mode 100644 index de218d90ad..0000000000 --- a/.ci/scripts/windows/install-vulkan-sdk.ps1 +++ /dev/null @@ -1,33 +0,0 @@ -# SPDX-FileCopyrightText: 2023 yuzu Emulator Project -# SPDX-License-Identifier: GPL-3.0-or-later - -$ErrorActionPreference = "Stop" - -$VulkanSDKVer = "1.3.250.1" -$ExeFile = "VulkanSDK-$VulkanSDKVer-Installer.exe" -$Uri = "https://sdk.lunarg.com/sdk/download/$VulkanSDKVer/windows/$ExeFile" -$Destination = "./$ExeFile" - -echo "Downloading Vulkan SDK $VulkanSDKVer from $Uri" -$WebClient = New-Object System.Net.WebClient -$WebClient.DownloadFile($Uri, $Destination) -echo "Finished downloading $ExeFile" - -$VULKAN_SDK = "C:/VulkanSDK/$VulkanSDKVer" -$Arguments = "--root `"$VULKAN_SDK`" --accept-licenses --default-answer --confirm-command install" - -echo "Installing Vulkan SDK $VulkanSDKVer" -$InstallProcess = Start-Process -FilePath $Destination -NoNewWindow -PassThru -Wait -ArgumentList $Arguments -$ExitCode = $InstallProcess.ExitCode - -if ($ExitCode -ne 0) { - echo "Error installing Vulkan SDK $VulkanSDKVer (Error: $ExitCode)" - Exit $ExitCode -} - -echo "Finished installing Vulkan SDK $VulkanSDKVer" - -if ("$env:GITHUB_ACTIONS" -eq "true") { - echo "VULKAN_SDK=$VULKAN_SDK" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - echo "$VULKAN_SDK/Bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append -} diff --git a/.ci/scripts/windows/scan_dll.py b/.ci/scripts/windows/scan_dll.py deleted file mode 100644 index a536f73759..0000000000 --- a/.ci/scripts/windows/scan_dll.py +++ /dev/null @@ -1,109 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -import pefile -import sys -import re -import os -import queue -import shutil - -# constant definitions -KNOWN_SYS_DLLS = ['WINMM.DLL', 'MSVCRT.DLL', 'VERSION.DLL', 'MPR.DLL', - 'DWMAPI.DLL', 'UXTHEME.DLL', 'DNSAPI.DLL', 'IPHLPAPI.DLL'] -# below is for Ubuntu 18.04 with specified PPA enabled, if you are using -# other distro or different repositories, change the following accordingly -DLL_PATH = [ - '/usr/x86_64-w64-mingw32/bin/', - '/usr/x86_64-w64-mingw32/lib/', - '/usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/' -] - -missing = [] - - -def parse_imports(file_name): - results = [] - pe = pefile.PE(file_name, fast_load=True) - pe.parse_data_directories() - - for entry in pe.DIRECTORY_ENTRY_IMPORT: - current = entry.dll.decode() - current_u = current.upper() # b/c Windows is often case insensitive - # here we filter out system dlls - # dll w/ names like *32.dll are likely to be system dlls - if current_u.upper() not in KNOWN_SYS_DLLS and not re.match(string=current_u, pattern=r'.*32\.DLL'): - results.append(current) - - return results - - -def parse_imports_recursive(file_name, path_list=[]): - q = queue.Queue() # create a FIFO queue - # file_name can be a string or a list for the convenience - if isinstance(file_name, str): - q.put(file_name) - elif isinstance(file_name, list): - for i in file_name: - q.put(i) - full_list = [] - while q.qsize(): - current = q.get_nowait() - print('> %s' % current) - deps = parse_imports(current) - # if this dll does not have any import, ignore it - if not deps: - continue - for dep in deps: - # the dependency already included in the list, skip - if dep in full_list: - continue - # find the requested dll in the provided paths - full_path = find_dll(dep) - if not full_path: - missing.append(dep) - continue - full_list.append(dep) - q.put(full_path) - path_list.append(full_path) - return full_list - - -def find_dll(name): - for path in DLL_PATH: - for root, _, files in os.walk(path): - for f in files: - if name.lower() == f.lower(): - return os.path.join(root, f) - - -def deploy(name, dst, dry_run=False): - dlls_path = [] - parse_imports_recursive(name, dlls_path) - for dll_entry in dlls_path: - if not dry_run: - shutil.copy(dll_entry, dst) - else: - print('[Dry-Run] Copy %s to %s' % (dll_entry, dst)) - print('Deploy completed.') - return dlls_path - - -def main(): - if len(sys.argv) < 3: - print('Usage: %s [files to examine ...] [target deploy directory]') - return 1 - to_deploy = sys.argv[1:-1] - tgt_dir = sys.argv[-1] - if not os.path.isdir(tgt_dir): - print('%s is not a directory.' % tgt_dir) - return 1 - print('Scanning dependencies...') - deploy(to_deploy, tgt_dir) - if missing: - print('Following DLLs are not found: %s' % ('\n'.join(missing))) - return 0 - - -if __name__ == '__main__': - main() diff --git a/.ci/scripts/windows/upload.ps1 b/.ci/scripts/windows/upload.ps1 deleted file mode 100644 index 492763420e..0000000000 --- a/.ci/scripts/windows/upload.ps1 +++ /dev/null @@ -1,118 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -param($BUILD_NAME) - -$GITDATE = $(git show -s --date=short --format='%ad') -replace "-", "" -$GITREV = $(git show -s --format='%h') - -if ("$BUILD_NAME" -eq "mainline") { - $RELEASE_DIST = "yuzu-windows-msvc" -} -else { - $RELEASE_DIST = "yuzu-windows-msvc-$BUILD_NAME" -} - -$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 " ", "" -$MSVC_SOURCE = "yuzu-windows-msvc-source-$GITDATE-$GITREV" -replace " ", "" -$MSVC_SOURCE_TAR = "$MSVC_SOURCE.tar" -$MSVC_SOURCE_TARXZ = "$MSVC_SOURCE_TAR.xz" - -$env:BUILD_ZIP = $MSVC_BUILD_ZIP -$env:BUILD_SYMBOLS = $MSVC_BUILD_PDB -$env:BUILD_UPDATE = $MSVC_SEVENZIP - -if (Test-Path -Path ".\build\bin\Release") { - $BUILD_DIR = ".\build\bin\Release" -} else { - $BUILD_DIR = ".\build\bin\" -} - -# Cleanup unneeded data in submodules -git submodule foreach git clean -fxd - -# Upload debugging symbols -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" - -# Create artifact directories -mkdir $RELEASE_DIST -mkdir $MSVC_SOURCE -mkdir "artifacts" - -$CURRENT_DIR = Convert-Path . - -# Build a tar.xz for the source of the release -git clone --depth 1 file://$CURRENT_DIR $MSVC_SOURCE -7z a -r -ttar $MSVC_SOURCE_TAR $MSVC_SOURCE -7z a -r -txz $MSVC_SOURCE_TARXZ $MSVC_SOURCE_TAR - -# Following section is quick hack to package artifacts differently for GitHub Actions -if ("$env:GITHUB_ACTIONS" -eq "true") { - echo "Hello GitHub Actions" - - # With vcpkg we now have a few more dll files - ls .\build\bin\*.dll - cp .\build\bin\*.dll .\artifacts\ - - # Hopefully there is an exe in either .\build\bin or .\build\bin\Release - cp .\build\bin\yuzu*.exe .\artifacts\ - Copy-Item "$BUILD_DIR\*" -Destination "artifacts" -Recurse - Remove-Item .\artifacts\tests.exe -ErrorAction ignore - - # None of the other GHA builds are including source, so commenting out today - #Copy-Item $MSVC_SOURCE_TARXZ -Destination "artifacts" - - # Debugging symbols - cp .\build\bin\yuzu*.pdb .\artifacts\ - - # Write out a tag BUILD_TAG to environment for the Upload step - # We're getting ${{ github.event.number }} as $env:PR_NUMBER" - echo "env:PR_NUMBER: $env:PR_NUMBER" - if (Test-Path env:PR_NUMBER) { - $PR_NUMBER = $env:PR_NUMBER.Substring(2) -as [int] - $PR_NUMBER_TAG = "pr"+([string]$PR_NUMBER).PadLeft(5,'0') - if ($PR_NUMBER -gt 1){ - $BUILD_TAG="verify-$PR_NUMBER_TAG-$GITDATE-$GITREV" - } else { - $BUILD_TAG = "verify-$GITDATE-$GITREV" - } - } else { - # If env:PR_NUMBER isn't set, we should still write out a variable - $BUILD_TAG = "verify-$GITDATE-$GITREV" - } - echo "BUILD_TAG=$BUILD_TAG" - echo "BUILD_TAG=$BUILD_TAG" >> $env:GITHUB_ENV - - # For extra job, just the exe - $INDIVIDUAL_EXE = "yuzu-msvc-$BUILD_TAG.exe" - echo "INDIVIDUAL_EXE=$INDIVIDUAL_EXE" - echo "INDIVIDUAL_EXE=$INDIVIDUAL_EXE" >> $env:GITHUB_ENV - echo "Just the exe: $INDIVIDUAL_EXE" - cp .\artifacts\yuzu.exe .\$INDIVIDUAL_EXE - - -} else { - -# Build the final release artifacts -Copy-Item $MSVC_SOURCE_TARXZ -Destination $RELEASE_DIST -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 -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" -} diff --git a/.ci/scripts/windows/upload.sh b/.ci/scripts/windows/upload.sh deleted file mode 100755 index 4aa5be544f..0000000000 --- a/.ci/scripts/windows/upload.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -ex - -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -. .ci/scripts/common/pre-upload.sh - -REV_NAME="yuzu-windows-mingw-${GITDATE}-${GITREV}" -ARCHIVE_NAME="${REV_NAME}.tar.xz" -COMPRESSION_FLAGS="-cJvf" - -if [ "${RELEASE_NAME}" = "mainline" ]; then - DIR_NAME="${REV_NAME}" -else - DIR_NAME="${REV_NAME}_${RELEASE_NAME}" -fi - -mkdir "$DIR_NAME" -# get around the permission issues -cp -r package/* "$DIR_NAME" - -. .ci/scripts/common/post-upload.sh diff --git a/.ci/templates/build-mock.yml b/.ci/templates/build-mock.yml deleted file mode 100644 index 3d3bb6d866..0000000000 --- a/.ci/templates/build-mock.yml +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -steps: - - script: mkdir artifacts || echo 'X' > artifacts/T1.txt - - publish: artifacts - 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 deleted file mode 100644 index 1e259df059..0000000000 --- a/.ci/templates/build-msvc.yml +++ /dev/null @@ -1,31 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -parameters: - artifactSource: 'true' - cache: 'false' - version: '' - -steps: -- task: Powershell@2 - displayName: 'Install Vulkan SDK' - inputs: - targetType: 'filePath' - filePath: './.ci/scripts/windows/install-vulkan-sdk.ps1' -- script: refreshenv && glslangValidator --version && mkdir build && cd build && cmake -E env CXXFLAGS="/Gw" cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_POLICY_DEFAULT_CMP0069=NEW -DYUZU_ENABLE_LTO=ON -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DYUZU_TESTS=OFF -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DDISPLAY_VERSION=${{ parameters['version'] }} -DCMAKE_BUILD_TYPE=Release -DYUZU_CRASH_DUMPS=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' - arguments: '$(BuildName)' -- publish: artifacts - artifact: 'yuzu-$(BuildName)-windows-msvc' - displayName: 'Upload Artifacts' diff --git a/.ci/templates/build-single.yml b/.ci/templates/build-single.yml deleted file mode 100644 index 3f81f91978..0000000000 --- a/.ci/templates/build-single.yml +++ /dev/null @@ -1,26 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -parameters: - artifactSource: 'true' - cache: 'false' - version: '' - -steps: -- task: DockerInstaller@0 - displayName: 'Prepare Environment' - inputs: - dockerVersion: '17.09.0-ce' -- 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 ${{ parameters['version'] }} - displayName: 'Build' -- script: chmod a+x ./.ci/scripts/$(ScriptFolder)/upload.sh && RELEASE_NAME=$(BuildName) ./.ci/scripts/$(ScriptFolder)/upload.sh - displayName: 'Package Artifacts' -- publish: artifacts - artifact: 'yuzu-$(BuildName)-$(BuildSuffix)' - displayName: 'Upload Artifacts' diff --git a/.ci/templates/build-standard.yml b/.ci/templates/build-standard.yml deleted file mode 100644 index 314076f1fd..0000000000 --- a/.ci/templates/build-standard.yml +++ /dev/null @@ -1,33 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -parameters: - version: '' - -jobs: -- job: build - displayName: 'standard' - pool: - vmImage: ubuntu-latest - strategy: - maxParallel: 10 - matrix: - windows: - BuildSuffix: 'windows-mingw' - ScriptFolder: 'windows' - clang: - BuildSuffix: 'clang' - ScriptFolder: 'clang' - linux: - BuildSuffix: 'linux' - ScriptFolder: 'linux' - steps: - - template: ./sync-source.yml - parameters: - artifactSource: $(parameters.artifactSource) - needSubmodules: 'true' - - template: ./build-single.yml - parameters: - artifactSource: 'false' - cache: $(parameters.cache) - version: $(parameters.version) diff --git a/.ci/templates/build-testing.yml b/.ci/templates/build-testing.yml deleted file mode 100644 index c8390b3276..0000000000 --- a/.ci/templates/build-testing.yml +++ /dev/null @@ -1,40 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -parameters: - version: '' - -jobs: -- job: build_test - displayName: 'testing' - pool: - vmImage: ubuntu-latest - strategy: - maxParallel: 5 - matrix: - windows: - BuildSuffix: 'windows-testing' - ScriptFolder: 'windows' - steps: - - script: sudo apt-get update && sudo apt-get --only-upgrade -y install python3-pip && pip install requests urllib3 - displayName: 'Prepare Environment' - - task: PythonScript@0 - condition: eq(variables['Build.Reason'], 'PullRequest') - displayName: 'Determine Testing Status' - inputs: - scriptSource: 'filePath' - scriptPath: '.ci/scripts/merge/check-label-presence.py' - arguments: '$(System.PullRequest.PullRequestNumber) create-testing-build' - - ${{ if eq(variables.enabletesting, 'true') }}: - - template: ./sync-source.yml - parameters: - artifactSource: $(parameters.artifactSource) - needSubmodules: 'true' - - template: ./mergebot.yml - parameters: - matchLabel: 'testing-merge' - - template: ./build-single.yml - parameters: - artifactSource: 'false' - cache: 'false' - version: $(parameters.version)
\ No newline at end of file diff --git a/.ci/templates/format-check.yml b/.ci/templates/format-check.yml deleted file mode 100644 index 1042e7d132..0000000000 --- a/.ci/templates/format-check.yml +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -parameters: - artifactSource: 'true' - -steps: -- template: ./sync-source.yml - parameters: - artifactSource: $(parameters.artifactSource) - needSubmodules: 'false' -- task: DockerInstaller@0 - displayName: 'Prepare Environment' - inputs: - dockerVersion: '17.09.0-ce' -- script: chmod a+x ./.ci/scripts/format/exec.sh && ./.ci/scripts/format/exec.sh - displayName: 'Verify Formatting' diff --git a/.ci/templates/merge-private.yml b/.ci/templates/merge-private.yml deleted file mode 100644 index 8b14065a39..0000000000 --- a/.ci/templates/merge-private.yml +++ /dev/null @@ -1,44 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -jobs: -- job: merge - displayName: 'pull requests' - pool: - vmImage: 'ubuntu-latest' - 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 - pool: - vmImage: 'ubuntu-latest' - 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 deleted file mode 100644 index eec3421202..0000000000 --- a/.ci/templates/merge.yml +++ /dev/null @@ -1,43 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -jobs: -- job: merge - displayName: 'pull requests' - pool: - vmImage: 'ubuntu-latest' - steps: - - checkout: self - submodules: recursive - - template: ./mergebot.yml - parameters: - matchLabel: '$(BuildName)-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 - pool: - vmImage: 'ubuntu-latest' - 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/mergebot-private.yml b/.ci/templates/mergebot-private.yml deleted file mode 100644 index 1560f9a9ca..0000000000 --- a/.ci/templates/mergebot-private.yml +++ /dev/null @@ -1,33 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -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 deleted file mode 100644 index 59523161c8..0000000000 --- a/.ci/templates/mergebot.yml +++ /dev/null @@ -1,18 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -parameters: - matchLabel: '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' - inputs: - scriptSource: 'filePath' - scriptPath: '.ci/scripts/merge/apply-patches-by-label.py' - arguments: '${{ parameters.matchLabel }} Tagged patches' - workingDirectory: '$(System.DefaultWorkingDirectory)' diff --git a/.ci/templates/release-download.yml b/.ci/templates/release-download.yml deleted file mode 100644 index bd32de3959..0000000000 --- a/.ci/templates/release-download.yml +++ /dev/null @@ -1,16 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -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 deleted file mode 100644 index d20296ca08..0000000000 --- a/.ci/templates/release-github.yml +++ /dev/null @@ -1,16 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -steps: - - template: ./release-download.yml - - task: GitHubRelease@0 - displayName: 'GitHub Release' - inputs: - action: 'create' - title: '$(ReleasePrefix) $(DisplayVersion)' - assets: '$(Build.ArtifactStagingDirectory)/*' - gitHubConnection: $(GitHubReleaseConnectionName) - repositoryName: '$(Build.Repository.Name)' - target: '$(Build.SourceVersion)' - 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 deleted file mode 100644 index 70a8543b59..0000000000 --- a/.ci/templates/release-private-tag.yml +++ /dev/null @@ -1,12 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -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/templates/release-universal.yml b/.ci/templates/release-universal.yml deleted file mode 100644 index 151c8f35ce..0000000000 --- a/.ci/templates/release-universal.yml +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -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 diff --git a/.ci/templates/retrieve-artifact-source.yml b/.ci/templates/retrieve-artifact-source.yml deleted file mode 100644 index b4cce58901..0000000000 --- a/.ci/templates/retrieve-artifact-source.yml +++ /dev/null @@ -1,19 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -steps: -- checkout: none -- task: DownloadPipelineArtifact@2 - displayName: 'Download Source' - inputs: - artifactName: 'yuzu-$(BuildName)-source' - buildType: 'current' - targetPath: '$(Build.ArtifactStagingDirectory)' -- script: rm -rf $(System.DefaultWorkingDirectory) && mkdir $(System.DefaultWorkingDirectory) - displayName: 'Clean Working Directory' -- task: ExtractFiles@1 - displayName: 'Prepare Source' - inputs: - archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/*.7z' - destinationFolder: '$(System.DefaultWorkingDirectory)' - cleanDestinationFolder: false
\ No newline at end of file diff --git a/.ci/templates/retrieve-master-source.yml b/.ci/templates/retrieve-master-source.yml deleted file mode 100644 index e497c0e180..0000000000 --- a/.ci/templates/retrieve-master-source.yml +++ /dev/null @@ -1,14 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -parameters: - needSubmodules: 'true' - -steps: -- checkout: self - displayName: 'Checkout Recursive' - submodules: recursive -# condition: eq(parameters.needSubmodules, 'true') -#- checkout: self -# displayName: 'Checkout Fast' -# condition: ne(parameters.needSubmodules, 'true') diff --git a/.ci/templates/sync-source.yml b/.ci/templates/sync-source.yml deleted file mode 100644 index e796b6238a..0000000000 --- a/.ci/templates/sync-source.yml +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -steps: -- ${{ if eq(parameters.artifactSource, 'true') }}: - - template: ./retrieve-artifact-source.yml -- ${{ if ne(parameters.artifactSource, 'true') }}: - - template: ./retrieve-master-source.yml - parameters: - needSubmodules: $(parameters.needSubmodules)
\ No newline at end of file diff --git a/.ci/yuzu-mainline-step1.yml b/.ci/yuzu-mainline-step1.yml deleted file mode 100644 index 207bddfa31..0000000000 --- a/.ci/yuzu-mainline-step1.yml +++ /dev/null @@ -1,14 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -trigger: -- master - -pool: - vmImage: 'ubuntu-latest' - -stages: -- stage: merge - displayName: 'merge' - jobs: - - template: ./templates/merge.yml diff --git a/.ci/yuzu-mainline-step2.yml b/.ci/yuzu-mainline-step2.yml deleted file mode 100644 index 825be121ae..0000000000 --- a/.ci/yuzu-mainline-step2.yml +++ /dev/null @@ -1,64 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -trigger: -- master - -variables: - DisplayVersion: $[counter(variables['DisplayPrefix'], 1)] - -stages: -- stage: build - displayName: 'build' - jobs: - - job: build - timeoutInMinutes: 120 - 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 - displayName: 'build-windows' - jobs: - - job: build - timeoutInMinutes: 120 - displayName: 'msvc' - pool: - vmImage: windows-2022 - 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 - - build_win - jobs: - - job: github - displayName: 'github' - pool: - vmImage: ubuntu-latest - steps: - - template: ./templates/release-github.yml diff --git a/.ci/yuzu-patreon-step1.yml b/.ci/yuzu-patreon-step1.yml deleted file mode 100644 index 44e0a5c819..0000000000 --- a/.ci/yuzu-patreon-step1.yml +++ /dev/null @@ -1,14 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -trigger: -- master - -pool: - vmImage: 'ubuntu-latest' - -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 deleted file mode 100644 index 71a23ebe62..0000000000 --- a/.ci/yuzu-patreon-step2.yml +++ /dev/null @@ -1,59 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -trigger: -- master - -variables: - DisplayVersion: $[counter(variables['DisplayPrefix'], 1)] - -stages: -- stage: build - displayName: 'build' - jobs: - - job: linux - timeoutInMinutes: 120 - displayName: 'linux' - 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: $(parameters.cache) - version: $(DisplayVersion) - - job: msvc - timeoutInMinutes: 120 - displayName: 'windows' - pool: - vmImage: windows-2022 - 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' - pool: - vmImage: 'ubuntu-latest' - steps: - - template: ./templates/release-private-tag.yml diff --git a/.ci/yuzu-repo-sync.yml b/.ci/yuzu-repo-sync.yml deleted file mode 100644 index c5b6ba927f..0000000000 --- a/.ci/yuzu-repo-sync.yml +++ /dev/null @@ -1,22 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -trigger: -- master - -jobs: -- job: copy - displayName: 'Sync Repository' - pool: - vmImage: 'ubuntu-latest' - steps: - - script: echo 'https://$(GitUsername):$(GitAccessToken)@dev.azure.com' > $HOME/.git-credentials - displayName: 'Load Credentials' - - script: git config --global credential.helper store - displayName: 'Register Credential Helper' - - script: git remote add other $(GitRepoPushChangesURL) - displayName: 'Register Repository' - - script: git push --force other HEAD:$(GitPushBranch) - displayName: 'Update Code' - - script: rm -rf $HOME/.git-credentials - displayName: 'Clear Cached Credentials' diff --git a/.ci/yuzu-verify.yml b/.ci/yuzu-verify.yml deleted file mode 100644 index 38e3e6121e..0000000000 --- a/.ci/yuzu-verify.yml +++ /dev/null @@ -1,23 +0,0 @@ -# SPDX-FileCopyrightText: 2019 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -stages: -- stage: format - displayName: 'format' - jobs: - - job: format - displayName: 'clang' - pool: - vmImage: ubuntu-latest - steps: - - template: ./templates/format-check.yml - parameters: - artifactSource: 'false' -- stage: build - displayName: 'build' - dependsOn: format - jobs: - - template: ./templates/build-standard.yml - parameters: - cache: 'false' - - template: ./templates/build-testing.yml diff --git a/.github/workflows/android-build.yml b/.github/workflows/android-build.yml deleted file mode 100644 index 80aea4aa7c..0000000000 --- a/.github/workflows/android-build.yml +++ /dev/null @@ -1,80 +0,0 @@ -# SPDX-FileCopyrightText: 2022 yuzu Emulator Project -# SPDX-License-Identifier: GPL-3.0-or-later - -name: 'yuzu-android-build' - -on: - push: - tags: [ "*" ] - -jobs: - android: - runs-on: ubuntu-latest - if: ${{ github.repository == 'yuzu-emu/yuzu-android' }} - steps: - - uses: actions/checkout@v3 - with: - submodules: recursive - fetch-depth: 0 - - name: Set up JDK 17 - uses: actions/setup-java@v3 - with: - java-version: '17' - distribution: 'temurin' - - name: Set up cache - uses: actions/cache@v3 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - ~/.ccache - key: ${{ runner.os }}-android-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-android- - - name: Query tag name - uses: olegtarasov/get-tag@v2.1.2 - id: tagName - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install -y ccache apksigner glslang-dev glslang-tools - - name: Build - run: ./.ci/scripts/android/build.sh - env: - ANDROID_KEYSTORE_B64: ${{ secrets.ANDROID_KEYSTORE_B64 }} - ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }} - ANDROID_KEYSTORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASS }} - - name: Copy artifacts - run: ./.ci/scripts/android/upload.sh - - name: Upload - uses: actions/upload-artifact@v3 - with: - name: android - path: artifacts/ - # release steps - release-android: - runs-on: ubuntu-latest - needs: [android] - if: ${{ startsWith(github.ref, 'refs/tags/') }} - permissions: - contents: write - steps: - - uses: actions/download-artifact@v3 - - name: Query tag name - uses: olegtarasov/get-tag@v2.1.2 - id: tagName - - name: Create release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ steps.tagName.outputs.tag }} - release_name: ${{ steps.tagName.outputs.tag }} - draft: false - prerelease: false - - name: Upload artifacts - uses: alexellis/upload-assets@0.2.3 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - asset_paths: '["./**/*.apk","./**/*.aab"]' diff --git a/.github/workflows/android-ea-play-release.yml b/.github/workflows/android-ea-play-release.yml deleted file mode 100644 index 0cf78279c2..0000000000 --- a/.github/workflows/android-ea-play-release.yml +++ /dev/null @@ -1,66 +0,0 @@ -# SPDX-FileCopyrightText: 2024 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -name: yuzu-android-ea-play-release - -on: - workflow_dispatch: - inputs: - release-track: - description: 'Play store release track (internal/alpha/beta/production)' - required: true - default: 'alpha' - -jobs: - android: - runs-on: ubuntu-latest - if: ${{ github.repository == 'yuzu-emu/yuzu' }} - steps: - - uses: actions/checkout@v3 - name: Checkout - with: - fetch-depth: 0 - submodules: true - token: ${{ secrets.ALT_GITHUB_TOKEN }} - - run: npm install execa@5 - - uses: actions/github-script@v5 - name: 'Merge and publish Android EA changes' - env: - ALT_GITHUB_TOKEN: ${{ secrets.ALT_GITHUB_TOKEN }} - BUILD_EA: true - with: - script: | - const execa = require("execa"); - const mergebot = require('./.github/workflows/android-merge.js').mergebot; - process.chdir('${{ github.workspace }}'); - mergebot(github, context, execa); - - name: Get tag name - run: echo "GIT_TAG_NAME=$(cat tag-name.txt)" >> $GITHUB_ENV - - name: Set up JDK 17 - uses: actions/setup-java@v3 - with: - java-version: '17' - distribution: 'temurin' - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install -y ccache apksigner glslang-dev glslang-tools - - name: Build - run: ./.ci/scripts/android/eabuild.sh - env: - EA_PLAY_ANDROID_KEYSTORE_B64: ${{ secrets.PLAY_ANDROID_KEYSTORE_B64 }} - PLAY_ANDROID_KEY_ALIAS: ${{ secrets.PLAY_ANDROID_KEY_ALIAS }} - PLAY_ANDROID_KEYSTORE_PASS: ${{ secrets.PLAY_ANDROID_KEYSTORE_PASS }} - EA_SERVICE_ACCOUNT_KEY_B64: ${{ secrets.EA_SERVICE_ACCOUNT_KEY_B64 }} - STORE_TRACK: ${{ github.event.inputs.release-track }} - AUTO_VERSIONED: true - BUILD_EA: true - - name: Create release - uses: softprops/action-gh-release@v1 - with: - tag_name: ${{ env.EA_TAG_NAME }} - name: ${{ env.EA_TAG_NAME }} - draft: false - prerelease: false - repository: yuzu/yuzu-android - token: ${{ secrets.ALT_GITHUB_TOKEN }} diff --git a/.github/workflows/android-mainline-play-release.yml b/.github/workflows/android-mainline-play-release.yml deleted file mode 100644 index 8255e0a40d..0000000000 --- a/.github/workflows/android-mainline-play-release.yml +++ /dev/null @@ -1,59 +0,0 @@ -# SPDX-FileCopyrightText: 2024 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -name: yuzu-android-mainline-play-release - -on: - workflow_dispatch: - inputs: - release-tag: - description: 'Tag # from yuzu-android that you want to build and publish' - required: true - default: '200' - release-track: - description: 'Play store release track (internal/alpha/beta/production)' - required: true - default: 'alpha' - -jobs: - android: - runs-on: ubuntu-latest - if: ${{ github.repository == 'yuzu-emu/yuzu' }} - steps: - - uses: actions/checkout@v3 - name: Checkout - with: - fetch-depth: 0 - submodules: true - token: ${{ secrets.ALT_GITHUB_TOKEN }} - - run: npm install execa@5 - - uses: actions/github-script@v5 - name: 'Pull mainline tag' - env: - MAINLINE_TAG: ${{ github.event.inputs.release-tag }} - with: - script: | - const execa = require("execa"); - const mergebot = require('./.github/workflows/android-merge.js').getMainlineTag; - process.chdir('${{ github.workspace }}'); - mergebot(execa); - - name: Set up JDK 17 - uses: actions/setup-java@v3 - with: - java-version: '17' - distribution: 'temurin' - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install -y ccache apksigner glslang-dev glslang-tools - - name: Build - run: | - echo "GIT_TAG_NAME=android-${{ github.event.inputs.releast-tag }}" >> $GITHUB_ENV - ./.ci/scripts/android/mainlinebuild.sh - env: - MAINLINE_PLAY_ANDROID_KEYSTORE_B64: ${{ secrets.PLAY_ANDROID_KEYSTORE_B64 }} - PLAY_ANDROID_KEY_ALIAS: ${{ secrets.PLAY_ANDROID_KEY_ALIAS }} - PLAY_ANDROID_KEYSTORE_PASS: ${{ secrets.PLAY_ANDROID_KEYSTORE_PASS }} - SERVICE_ACCOUNT_KEY_B64: ${{ secrets.MAINLINE_SERVICE_ACCOUNT_KEY_B64 }} - STORE_TRACK: ${{ github.event.inputs.release-track }} - AUTO_VERSIONED: true diff --git a/.github/workflows/android-merge.js b/.github/workflows/android-merge.js deleted file mode 100644 index 315f81ba03..0000000000 --- a/.github/workflows/android-merge.js +++ /dev/null @@ -1,318 +0,0 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -// Note: This is a GitHub Actions script -// It is not meant to be executed directly on your machine without modifications - -const fs = require("fs"); -// which label to check for changes -const CHANGE_LABEL_MAINLINE = 'android-merge'; -const CHANGE_LABEL_EA = 'android-ea-merge'; -// how far back in time should we consider the changes are "recent"? (default: 24 hours) -const DETECTION_TIME_FRAME = (parseInt(process.env.DETECTION_TIME_FRAME)) || (24 * 3600 * 1000); -const BUILD_EA = process.env.BUILD_EA == 'true'; -const MAINLINE_TAG = process.env.MAINLINE_TAG; - -async function checkBaseChanges(github) { - // query the commit date of the latest commit on this branch - const query = `query($owner:String!, $name:String!, $ref:String!) { - repository(name:$name, owner:$owner) { - ref(qualifiedName:$ref) { - target { - ... on Commit { id pushedDate oid } - } - } - } - }`; - const variables = { - owner: 'yuzu-emu', - name: 'yuzu', - ref: 'refs/heads/master', - }; - const result = await github.graphql(query, variables); - const pushedAt = result.repository.ref.target.pushedDate; - console.log(`Last commit pushed at ${pushedAt}.`); - const delta = new Date() - new Date(pushedAt); - if (delta <= DETECTION_TIME_FRAME) { - console.info('New changes detected, triggering a new build.'); - return true; - } - console.info('No new changes detected.'); - return false; -} - -async function checkAndroidChanges(github) { - if (checkBaseChanges(github)) return true; - const pulls = getPulls(github, false); - for (let i = 0; i < pulls.length; i++) { - let pull = pulls[i]; - if (new Date() - new Date(pull.headRepository.pushedAt) <= DETECTION_TIME_FRAME) { - console.info(`${pull.number} updated at ${pull.headRepository.pushedAt}`); - return true; - } - } - console.info("No changes detected in any tagged pull requests."); - return false; -} - -async function tagAndPush(github, owner, repo, execa, commit=false) { - let altToken = process.env.ALT_GITHUB_TOKEN; - if (!altToken) { - throw `Please set ALT_GITHUB_TOKEN environment variable. This token should have write access to ${owner}/${repo}.`; - } - const query = `query ($owner:String!, $name:String!) { - repository(name:$name, owner:$owner) { - refs(refPrefix: "refs/tags/", orderBy: {field: TAG_COMMIT_DATE, direction: DESC}, first: 10) { - nodes { name } - } - } - }`; - const variables = { - owner: owner, - name: repo, - }; - const tags = await github.graphql(query, variables); - const tagList = tags.repository.refs.nodes; - let lastTag = 'android-1'; - for (let i = 0; i < tagList.length; ++i) { - if (tagList[i].name.includes('android-')) { - lastTag = tagList[i].name; - break; - } - } - const tagNumber = /\w+-(\d+)/.exec(lastTag)[1] | 0; - const channel = repo.split('-')[1]; - const newTag = `${channel}-${tagNumber + 1}`; - console.log(`New tag: ${newTag}`); - if (commit) { - let channelName = channel[0].toUpperCase() + channel.slice(1); - console.info(`Committing pending commit as ${channelName} ${tagNumber + 1}`); - await execa("git", ['commit', '-m', `${channelName} ${tagNumber + 1}`]); - } - console.info('Pushing tags to GitHub ...'); - await execa("git", ['tag', newTag]); - await execa("git", ['remote', 'add', 'target', `https://${altToken}@github.com/${owner}/${repo}.git`]); - await execa("git", ['push', 'target', 'master', '-f']); - await execa("git", ['push', 'target', 'master', '--tags']); - console.info('Successfully pushed new changes.'); -} - -async function tagAndPushEA(github, owner, repo, execa) { - let altToken = process.env.ALT_GITHUB_TOKEN; - if (!altToken) { - throw `Please set ALT_GITHUB_TOKEN environment variable. This token should have write access to ${owner}/${repo}.`; - } - const query = `query ($owner:String!, $name:String!) { - repository(name:$name, owner:$owner) { - refs(refPrefix: "refs/tags/", orderBy: {field: TAG_COMMIT_DATE, direction: DESC}, first: 10) { - nodes { name } - } - } - }`; - const variables = { - owner: owner, - name: repo, - }; - const tags = await github.graphql(query, variables); - const tagList = tags.repository.refs.nodes; - let lastTag = 'ea-1'; - for (let i = 0; i < tagList.length; ++i) { - if (tagList[i].name.includes('ea-')) { - lastTag = tagList[i].name; - break; - } - } - const tagNumber = /\w+-(\d+)/.exec(lastTag)[1] | 0; - const newTag = `ea-${tagNumber + 1}`; - console.log(`New tag: ${newTag}`); - console.info('Pushing tags to GitHub ...'); - await execa("git", ["remote", "add", "android", "https://github.com/yuzu-emu/yuzu-android.git"]); - await execa("git", ["fetch", "android"]); - - await execa("git", ['tag', newTag]); - await execa("git", ['push', 'android', `${newTag}`]); - - fs.writeFile('tag-name.txt', newTag, (err) => { - if (err) throw 'Could not write tag name to file!' - }) - - console.info('Successfully pushed new changes.'); -} - -async function generateReadme(pulls, context, mergeResults, execa) { - let baseUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/`; - let output = - "| Pull Request | Commit | Title | Author | Merged? |\n|----|----|----|----|----|\n"; - for (let pull of pulls) { - let pr = pull.number; - let result = mergeResults[pr]; - output += `| [${pr}](${baseUrl}/pull/${pr}) | [\`${result.rev || "N/A"}\`](${baseUrl}/pull/${pr}/files) | ${pull.title} | [${pull.author.login}](https://github.com/${pull.author.login}/) | ${result.success ? "Yes" : "No"} |\n`; - } - output += - "\n\nEnd of merge log. You can find the original README.md below the break.\n\n-----\n\n"; - output += fs.readFileSync("./README.md"); - fs.writeFileSync("./README.md", output); - await execa("git", ["add", "README.md"]); -} - -async function fetchPullRequests(pulls, repoUrl, execa) { - console.log("::group::Fetch pull requests"); - for (let pull of pulls) { - let pr = pull.number; - console.info(`Fetching PR ${pr} ...`); - await execa("git", [ - "fetch", - "-f", - "--no-recurse-submodules", - repoUrl, - `pull/${pr}/head:pr-${pr}`, - ]); - } - console.log("::endgroup::"); -} - -async function mergePullRequests(pulls, execa) { - let mergeResults = {}; - console.log("::group::Merge pull requests"); - await execa("git", ["config", "--global", "user.name", "yuzubot"]); - await execa("git", [ - "config", - "--global", - "user.email", - "yuzu\x40yuzu-emu\x2eorg", // prevent email harvesters from scraping the address - ]); - let hasFailed = false; - for (let pull of pulls) { - let pr = pull.number; - console.info(`Merging PR ${pr} ...`); - try { - const process1 = execa("git", [ - "merge", - "--squash", - "--no-edit", - `pr-${pr}`, - ]); - process1.stdout.pipe(process.stdout); - await process1; - - const process2 = execa("git", ["commit", "-m", `Merge yuzu-emu#${pr}`]); - process2.stdout.pipe(process.stdout); - await process2; - - const process3 = await execa("git", ["rev-parse", "--short", `pr-${pr}`]); - mergeResults[pr] = { - success: true, - rev: process3.stdout, - }; - } catch (err) { - console.log( - `::error title=#${pr} not merged::Failed to merge pull request: ${pr}: ${err}` - ); - mergeResults[pr] = { success: false }; - hasFailed = true; - await execa("git", ["reset", "--hard"]); - } - } - console.log("::endgroup::"); - if (hasFailed) { - throw 'There are merge failures. Aborting!'; - } - return mergeResults; -} - -async function resetBranch(execa) { - console.log("::group::Reset master branch"); - let hasFailed = false; - try { - await execa("git", ["remote", "add", "source", "https://github.com/yuzu-emu/yuzu.git"]); - await execa("git", ["fetch", "source"]); - const process1 = await execa("git", ["rev-parse", "source/master"]); - const headCommit = process1.stdout; - - await execa("git", ["reset", "--hard", headCommit]); - } catch (err) { - console.log(`::error title=Failed to reset master branch`); - hasFailed = true; - } - console.log("::endgroup::"); - if (hasFailed) { - throw 'Failed to reset the master branch. Aborting!'; - } -} - -async function getPulls(github) { - const query = `query ($owner:String!, $name:String!, $label:String!) { - repository(name:$name, owner:$owner) { - pullRequests(labels: [$label], states: OPEN, first: 100) { - nodes { - number title author { login } - } - } - } - }`; - const mainlineVariables = { - owner: 'yuzu-emu', - name: 'yuzu', - label: CHANGE_LABEL_MAINLINE, - }; - const mainlineResult = await github.graphql(query, mainlineVariables); - const pulls = mainlineResult.repository.pullRequests.nodes; - if (BUILD_EA) { - const eaVariables = { - owner: 'yuzu-emu', - name: 'yuzu', - label: CHANGE_LABEL_EA, - }; - const eaResult = await github.graphql(query, eaVariables); - const eaPulls = eaResult.repository.pullRequests.nodes; - return pulls.concat(eaPulls); - } - return pulls; -} - -async function getMainlineTag(execa) { - console.log(`::group::Getting mainline tag android-${MAINLINE_TAG}`); - let hasFailed = false; - try { - await execa("git", ["remote", "add", "mainline", "https://github.com/yuzu-emu/yuzu-android.git"]); - await execa("git", ["fetch", "mainline", "--tags"]); - await execa("git", ["checkout", `tags/android-${MAINLINE_TAG}`]); - await execa("git", ["submodule", "update", "--init", "--recursive"]); - } catch (err) { - console.log('::error title=Failed pull tag'); - hasFailed = true; - } - console.log("::endgroup::"); - if (hasFailed) { - throw 'Failed pull mainline tag. Aborting!'; - } -} - -async function mergebot(github, context, execa) { - // Reset our local copy of master to what appears on yuzu-emu/yuzu - master - await resetBranch(execa); - - const pulls = await getPulls(github); - let displayList = []; - for (let i = 0; i < pulls.length; i++) { - let pull = pulls[i]; - displayList.push({ PR: pull.number, Title: pull.title }); - } - console.info("The following pull requests will be merged:"); - console.table(displayList); - await fetchPullRequests(pulls, "https://github.com/yuzu-emu/yuzu", execa); - const mergeResults = await mergePullRequests(pulls, execa); - - if (BUILD_EA) { - await tagAndPushEA(github, 'yuzu-emu', `yuzu-android`, execa); - } else { - await generateReadme(pulls, context, mergeResults, execa); - await tagAndPush(github, 'yuzu-emu', `yuzu-android`, execa, true); - } -} - -module.exports.mergebot = mergebot; -module.exports.checkAndroidChanges = checkAndroidChanges; -module.exports.tagAndPush = tagAndPush; -module.exports.checkBaseChanges = checkBaseChanges; -module.exports.getMainlineTag = getMainlineTag; diff --git a/.github/workflows/android-publish.yml b/.github/workflows/android-publish.yml deleted file mode 100644 index 61f739e96a..0000000000 --- a/.github/workflows/android-publish.yml +++ /dev/null @@ -1,57 +0,0 @@ -# SPDX-FileCopyrightText: 2024 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -name: yuzu-android-publish - -on: - schedule: - - cron: '37 0 * * *' - workflow_dispatch: - inputs: - android: - description: 'Whether to trigger an Android build (true/false/auto)' - required: false - default: 'true' - -jobs: - android: - runs-on: ubuntu-latest - if: ${{ github.event.inputs.android != 'false' && github.repository == 'yuzu-emu/yuzu' }} - steps: - # this checkout is required to make sure the GitHub Actions scripts are available - - uses: actions/checkout@v3 - name: Pre-checkout - with: - submodules: false - - uses: actions/github-script@v6 - id: check-changes - name: 'Check for new changes' - env: - # 24 hours - DETECTION_TIME_FRAME: 86400000 - with: - script: | - if (context.payload.inputs && context.payload.inputs.android === 'true') return true; - const checkAndroidChanges = require('./.github/workflows/android-merge.js').checkAndroidChanges; - return checkAndroidChanges(github); - - run: npm install execa@5 - if: ${{ steps.check-changes.outputs.result == 'true' }} - - uses: actions/checkout@v3 - name: Checkout - if: ${{ steps.check-changes.outputs.result == 'true' }} - with: - path: 'yuzu-merge' - fetch-depth: 0 - submodules: true - token: ${{ secrets.ALT_GITHUB_TOKEN }} - - uses: actions/github-script@v5 - name: 'Check and merge Android changes' - if: ${{ steps.check-changes.outputs.result == 'true' }} - env: - ALT_GITHUB_TOKEN: ${{ secrets.ALT_GITHUB_TOKEN }} - with: - script: | - const execa = require("execa"); - const mergebot = require('./.github/workflows/android-merge.js').mergebot; - process.chdir('${{ github.workspace }}/yuzu-merge'); - mergebot(github, context, execa); diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 25ef1f0789..0000000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,33 +0,0 @@ -# SPDX-FileCopyrightText: 2021 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -name: yuzu-ci - -on: - push: - branches: [ master ] - tags: [ "*" ] - pull_request: - branches: [ master ] - -jobs: - transifex: - runs-on: ubuntu-latest - container: yuzuemu/build-environments:linux-transifex - if: ${{ github.repository == 'yuzu-emu/yuzu' && !github.head_ref }} - steps: - - uses: actions/checkout@v3 - with: - submodules: recursive - fetch-depth: 0 - - name: Update Translation - run: ./.ci/scripts/transifex/docker.sh - env: - TX_TOKEN: ${{ secrets.TRANSIFEX_API_TOKEN }} - - reuse: - runs-on: ubuntu-latest - if: ${{ github.repository == 'yuzu-emu/yuzu' }} - steps: - - uses: actions/checkout@v3 - - uses: fsfe/reuse-action@v1 diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml deleted file mode 100644 index d873fb725c..0000000000 --- a/.github/workflows/codespell.yml +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-FileCopyrightText: 2023 yuzu Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later -# GitHub Action to automate the identification of common misspellings in text files. -# https://github.com/codespell-project/actions-codespell -# https://github.com/codespell-project/codespell -name: codespell -on: pull_request -permissions: {} -jobs: - codespell: - name: Check for spelling errors - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - persist-credentials: false - - uses: codespell-project/actions-codespell@master diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml deleted file mode 100644 index 13bde68c3c..0000000000 --- a/.github/workflows/verify.yml +++ /dev/null @@ -1,192 +0,0 @@ -# SPDX-FileCopyrightText: 2022 yuzu Emulator Project -# SPDX-License-Identifier: GPL-3.0-or-later - -name: 'yuzu verify' - -on: - pull_request: - branches: [ master ] -env: - PR_NUMBER: pr${{ github.event.number }} - -jobs: - format: - name: 'verify format' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - submodules: false - - name: set up JDK 17 - uses: actions/setup-java@v3 - with: - java-version: '17' - distribution: 'temurin' - - name: 'Verify Formatting' - run: bash -ex ./.ci/scripts/format/script.sh - build: - name: 'test build' - needs: format - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - - type: clang - image: linux-fresh - - type: linux - image: linux-fresh - - type: windows - image: linux-mingw - container: - image: yuzuemu/build-environments:${{ matrix.image }} - options: -u 1001 - steps: - - uses: actions/checkout@v3 - with: - submodules: recursive - fetch-depth: 0 - - name: Set up cache - uses: actions/cache@v3 - id: ccache-restore - with: - path: ~/.ccache - key: ${{ runner.os }}-${{ matrix.type }}-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-${{ matrix.type }}- - - name: Create ccache directory - if: steps.ccache-restore.outputs.cache-hit != 'true' - run: mkdir -p ~/.ccache - - name: Build - run: ./.ci/scripts/${{ matrix.type }}/docker.sh - env: - ENABLE_COMPATIBILITY_REPORTING: "ON" - - name: Pack - run: ./.ci/scripts/${{ matrix.type }}/upload.sh - env: - NO_SOURCE_PACK: "YES" - - name: Upload - uses: actions/upload-artifact@v3 - with: - name: ${{ matrix.type }} - path: artifacts/ - build-mac: - name: 'test build (macos)' - needs: format - runs-on: macos-14 - steps: - - uses: actions/checkout@v3 - with: - submodules: recursive - fetch-depth: 0 - - name: Install dependencies - run: | - brew install autoconf automake boost ccache ffmpeg fmt glslang hidapi libtool libusb lz4 ninja nlohmann-json openssl pkg-config qt@5 sdl2 speexdsp zlib zlib zstd - - name: Build - run: | - mkdir build - cd build - export Qt5_DIR="$(brew --prefix qt@5)/lib/cmake" - cmake .. -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DYUZU_USE_BUNDLED_VCPKG=OFF -DYUZU_TESTS=OFF -DENABLE_WEB_SERVICE=OFF -DENABLE_LIBUSB=OFF - ninja - build-msvc: - name: 'test build (windows, msvc)' - needs: format - runs-on: windows-2022 - steps: - - uses: actions/checkout@v3 - with: - submodules: recursive - fetch-depth: 0 - - name: Set up cache - uses: actions/cache@v3 - with: - path: ~/.buildcache - key: ${{ runner.os }}-msvc-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-msvc- - - name: Install dependencies - shell: pwsh - run: | - $ErrorActionPreference = "Stop" - $BuildCacheVer = "v0.28.4" - $File = "buildcache-windows.zip" - $Uri = "https://github.com/mbitsnbites/buildcache/releases/download/$BuildCacheVer/$File" - $WebClient = New-Object System.Net.WebClient - $WebClient.DownloadFile($Uri, $File) - 7z x $File - $CurrentDir = Convert-Path . - echo "$CurrentDir/buildcache/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - - name: Install Vulkan SDK - shell: pwsh - run: .\.ci\scripts\windows\install-vulkan-sdk.ps1 - - name: Set up MSVC - uses: ilammy/msvc-dev-cmd@v1 - - name: Configure - env: - CC: cl.exe - CXX: cl.exe - run: | - glslangValidator --version - mkdir build - cmake . -B build -GNinja -DCMAKE_TOOLCHAIN_FILE="CMakeModules/MSVCCache.cmake" -DUSE_CCACHE=ON -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DCMAKE_BUILD_TYPE=Release -DGIT_BRANCH=pr-verify -DYUZU_CRASH_DUMPS=ON - - name: Build - run: cmake --build build - - name: Cache Summary - run: buildcache -s - - name: Pack - shell: pwsh - run: .\.ci\scripts\windows\upload.ps1 - - name: Upload - uses: actions/upload-artifact@v3 - with: - name: msvc - path: artifacts/ - - name: Upload EXE - uses: actions/upload-artifact@v3 - with: - name: ${{ env.INDIVIDUAL_EXE }} - path: ${{ env.INDIVIDUAL_EXE }} - android: - runs-on: ubuntu-latest - needs: format - steps: - - uses: actions/checkout@v3 - with: - submodules: recursive - fetch-depth: 0 - - name: set up JDK 17 - uses: actions/setup-java@v3 - with: - java-version: '17' - distribution: 'temurin' - - name: Set up cache - uses: actions/cache@v3 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - ~/.ccache - key: ${{ runner.os }}-android-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-android- - - name: Query tag name - uses: olegtarasov/get-tag@v2.1.2 - id: tagName - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install -y ccache apksigner glslang-dev glslang-tools - - name: Build - run: ./.ci/scripts/android/build.sh - - name: Copy and sign artifacts - env: - ANDROID_KEYSTORE_B64: ${{ secrets.ANDROID_KEYSTORE_B64 }} - ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }} - ANDROID_KEYSTORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASS }} - run: ./.ci/scripts/android/upload.sh - - name: Upload - uses: actions/upload-artifact@v3 - with: - name: android - path: artifacts/ |
