From ba5b604f9a095524e7ae479b6c10d4e35f80e98f Mon Sep 17 00:00:00 2001 From: niansa Date: Thu, 7 Mar 2024 16:36:40 +0000 Subject: [PATCH] Port original Linux CI code to Gitlab --- .ci/scripts/linux/docker.sh | 11 +++---- .ci/scripts/linux/upload.sh | 2 +- .gitlab-ci.yml | 54 +++++++++------------------------- dist/org.suyu_emu.suyu.desktop | 4 +-- src/yuzu/breakpad.cpp | 4 +-- 5 files changed, 25 insertions(+), 50 deletions(-) diff --git a/.ci/scripts/linux/docker.sh b/.ci/scripts/linux/docker.sh index 7bba01d62a..f253e398c4 100755 --- a/.ci/scripts/linux/docker.sh +++ b/.ci/scripts/linux/docker.sh @@ -17,8 +17,8 @@ cmake .. \ -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc \ -DCMAKE_INSTALL_PREFIX="/usr" \ -DDISPLAY_VERSION=$1 \ - -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \ - -DENABLE_QT_TRANSLATION=ON \ + -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF \ + -DENABLE_QT_TRANSLATION=OFF \ -DUSE_DISCORD_PRESENCE=ON \ -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \ -DYUZU_USE_BUNDLED_FFMPEG=ON \ @@ -49,9 +49,10 @@ 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 +wget -nc https://gitlab.com/suyu-emu/ext-linux-bin/-/raw/main/appimage/deploy-linux.sh +wget -nc https://gitlab.com/suyu-emu/ext-linux-bin/-/raw/main/appimage/exec-x86_64.so +wget -nc https://gitlab.com/suyu-emu/AppImageKit-checkrt/-/raw/old/AppRun.sh + # Set executable bit chmod 755 \ deploy-linux.sh \ diff --git a/.ci/scripts/linux/upload.sh b/.ci/scripts/linux/upload.sh index 90e1d78bc3..e99d6cafbc 100755 --- a/.ci/scripts/linux/upload.sh +++ b/.ci/scripts/linux/upload.sh @@ -27,7 +27,7 @@ fi # Build an AppImage cd build -wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/appimagetool-x86_64.AppImage +wget -nc https://gitlab.com/suyu-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 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2a47a72a60..3aef932eee 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,45 +1,19 @@ -# This file is a template, and might need editing before it works on your project. -# This is a sample GitLab CI/CD configuration file that should run without any modifications. -# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts, -# it uses echo commands to simulate the pipeline execution. -# -# A pipeline is composed of independent jobs that run scripts, grouped into stages. -# Stages run in sequential order, but jobs within stages run in parallel. -# -# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages -# -# You can copy and paste this template into a new `.gitlab-ci.yml` file. -# You should not add this template to an existing `.gitlab-ci.yml` file by using the `include:` keyword. -# -# To contribute improvements to CI/CD templates, please follow the Development guide at: -# https://docs.gitlab.com/ee/development/cicd/templates.html -# This specific template is located at: -# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml - -stages: # List of stages for jobs, and their order of execution +stages: - build -build-ubuntu: # This job runs in the build stage, which runs first. +build-linux: stage: build - image: ubuntu:latest # Maybe replace with image with more required dependencies + image: debian:trixie # Maybe replace with image with more required dependencies + resource_group: linux-ci + variables: + RELEASE_NAME: mainline before_script: - - apt update --yes - - apt install --yes cmake gcc g++ git + - apt-get update --yes + - apt-get install --yes wget ccache cmake gcc g++ nasm git patchelf xz-utils ninja-build autoconf glslang-tools pkg-config catch2 libtool nlohmann-json3-dev qtbase5-dev qtbase5-private-dev qtmultimedia5-dev libqt5gui5 libva-dev libavcodec-dev libavfilter-dev libboost-dev libboost-context-dev libfmt-dev zlib1g-dev libzstd-dev libcurl4-openssl-dev liblz4-dev llvm-17-dev libedit-dev libssl-dev mesa-common-dev libzydis-dev libusb-dev libpulse-dev script: - - echo "Compiling the code..." - - git submodule update --init --recursive - - ls -la - # TODO: Add build instructions for linux - - echo "Compile complete." - -build-win: - stage: build - tags: - - shared-windows - - windows - - windows-1809 - script: - - echo "Compiling the code..." - - dir - # TODO: Add build instructions for windows - - echo "Compile complete." \ No newline at end of file + - git submodule update --init --depth 1 --recursive + - bash .ci/scripts/linux/docker.sh + - bash .ci/scripts/linux/upload.sh + artifacts: + paths: + - artifacts/* diff --git a/dist/org.suyu_emu.suyu.desktop b/dist/org.suyu_emu.suyu.desktop index 0f619d7e7e..c877c556ca 100644 --- a/dist/org.suyu_emu.suyu.desktop +++ b/dist/org.suyu_emu.suyu.desktop @@ -8,8 +8,8 @@ Name=suyu GenericName=Switch Emulator Comment=Nintendo Switch video game console emulator Icon=org.suyu_emu.suyu -TryExec=suyu -Exec=suyu %f +TryExec=yuzu +Exec=yuzu %f Categories=Game;Emulator;Qt; MimeType=application/x-nx-nro;application/x-nx-nso;application/x-nx-nsp;application/x-nx-xci; Keywords=Nintendo;Switch; diff --git a/src/yuzu/breakpad.cpp b/src/yuzu/breakpad.cpp index 394cf7a76e..0c27de117f 100644 --- a/src/yuzu/breakpad.cpp +++ b/src/yuzu/breakpad.cpp @@ -50,8 +50,8 @@ static void PruneDumpDirectory(const std::filesystem::path& dump_path) { } #if defined(__linux__) -[[noreturn]] bool DumpCallback(const google_breakpad::MinidumpDescriptor& descriptor, void* context, - bool succeeded) { +[[noreturn]] static bool DumpCallback(const google_breakpad::MinidumpDescriptor& descriptor, void* context, + bool succeeded) { // Prevent time- and space-consuming core dumps from being generated, as we have // already generated a minidump and a core file will not be useful anyway. _exit(1);