aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbriar <205427297+icybriarr@users.noreply.github.com>2025-03-31 01:59:52 +0200
committerBriar <205427297+icybriarr@users.noreply.github.com>2025-04-04 03:23:31 +0200
commit43ef13973c60e06ef6485b8dcdbede5df78ebc05 (patch)
tree85f565a67bb846664f441e2f96e957685f5c38f5
parent24fb37525cfc1f03246de9b247977c595d1e7257 (diff)
ci/cd: Delete old files
-rwxr-xr-x.ci/scripts/android/build.sh29
-rw-r--r--.ci/scripts/android/eabuild.sh21
-rw-r--r--.ci/scripts/android/mainlinebuild.sh21
-rwxr-xr-x.ci/scripts/android/upload.sh22
-rwxr-xr-x.ci/scripts/clang/docker.sh32
-rw-r--r--.ci/scripts/clang/exec.sh11
-rwxr-xr-x.ci/scripts/clang/upload.sh23
-rw-r--r--.ci/scripts/common/post-upload.sh20
-rw-r--r--.ci/scripts/common/pre-upload.sh10
-rw-r--r--.ci/scripts/format/docker.sh9
-rw-r--r--.ci/scripts/format/exec.sh10
-rwxr-xr-x.ci/scripts/format/script.sh37
-rwxr-xr-x.ci/scripts/linux/docker.sh79
-rw-r--r--.ci/scripts/linux/exec.sh16
-rwxr-xr-x.ci/scripts/linux/upload.sh67
-rw-r--r--.ci/scripts/merge/apply-patches-by-label-private.py48
-rw-r--r--.ci/scripts/merge/apply-patches-by-label.py38
-rw-r--r--.ci/scripts/merge/check-label-presence.py21
-rw-r--r--.ci/scripts/merge/yuzubot-git-config.sh5
-rwxr-xr-x.ci/scripts/transifex/docker.sh19
-rwxr-xr-x.ci/scripts/windows/docker.sh66
-rw-r--r--.ci/scripts/windows/exec.sh11
-rw-r--r--.ci/scripts/windows/install-vulkan-sdk.ps133
-rw-r--r--.ci/scripts/windows/scan_dll.py109
-rw-r--r--.ci/scripts/windows/upload.ps1118
-rwxr-xr-x.ci/scripts/windows/upload.sh22
-rw-r--r--.ci/templates/build-mock.yml8
-rw-r--r--.ci/templates/build-msvc.yml31
-rw-r--r--.ci/templates/build-single.yml26
-rw-r--r--.ci/templates/build-standard.yml33
-rw-r--r--.ci/templates/build-testing.yml40
-rw-r--r--.ci/templates/format-check.yml17
-rw-r--r--.ci/templates/merge-private.yml44
-rw-r--r--.ci/templates/merge.yml43
-rw-r--r--.ci/templates/mergebot-private.yml33
-rw-r--r--.ci/templates/mergebot.yml18
-rw-r--r--.ci/templates/release-download.yml16
-rw-r--r--.ci/templates/release-github.yml16
-rw-r--r--.ci/templates/release-private-tag.yml12
-rw-r--r--.ci/templates/release-universal.yml13
-rw-r--r--.ci/templates/retrieve-artifact-source.yml19
-rw-r--r--.ci/templates/retrieve-master-source.yml14
-rw-r--r--.ci/templates/sync-source.yml10
-rw-r--r--.ci/yuzu-mainline-step1.yml14
-rw-r--r--.ci/yuzu-mainline-step2.yml64
-rw-r--r--.ci/yuzu-patreon-step1.yml14
-rw-r--r--.ci/yuzu-patreon-step2.yml59
-rw-r--r--.ci/yuzu-repo-sync.yml22
-rw-r--r--.ci/yuzu-verify.yml23
-rw-r--r--.github/workflows/android-build.yml80
-rw-r--r--.github/workflows/android-ea-play-release.yml66
-rw-r--r--.github/workflows/android-mainline-play-release.yml59
-rw-r--r--.github/workflows/android-merge.js318
-rw-r--r--.github/workflows/android-publish.yml57
-rw-r--r--.github/workflows/ci.yml33
-rw-r--r--.github/workflows/codespell.yml17
-rw-r--r--.github/workflows/verify.yml192
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/