diff --git a/.forgejo/workflows/fuck.yml b/.forgejo/workflows/fuck.yml new file mode 100644 index 0000000000..7d1651d5e4 --- /dev/null +++ b/.forgejo/workflows/fuck.yml @@ -0,0 +1,195 @@ +# SPDX-FileCopyrightText: 2022 yuzu Emulator Project +# SPDX-FileCopyrightText: 2024 suyu Emulator Project +# SPDX-License-Identifier: GPL-3.0-or-later + +# Actions Documentation: https://forgejo.org/docs/next/user/actions/#list-of-tasks-in-a-repository + +name: 'suyu verify' + +on: + pull_request: + branches: [ "dev" ] +env: + PR_NUMBER: pr${{ github.event.number }} + +jobs: + format: + name: 'verify format' + runs-on: ubuntu-latest + steps: + - uses: https://code.forgejo.org/actions/checkout@v3 + with: + submodules: false + - name: set up JDK 17 + uses: https://github.com/actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + - name: 'Verify Formatting' + run: bash -ex ./.ci/scripts/format/script.sh + build-linux: + 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: fijxu/build-environments:${{ matrix.image }} + options: -u 1001 + steps: + - uses: https://code.forgejo.org/actions/checkout@v3 + with: + submodules: recursive + fetch-depth: 0 + - name: Set up cache + uses: https://code.forgejo.org/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: https://code.forgejo.org/actions/upload-artifact@v3 + with: + name: ${{ matrix.type }} + path: artifacts/ + # build-mac: + # name: 'test build (macos)' + # needs: format + # runs-on: macos-14 + # steps: + # - uses: https://code.forgejo.org/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 -DSUYU_USE_BUNDLED_VCPKG=OFF -DSUYU_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: https://code.forgejo.org/actions/checkout@v3 + # with: + # submodules: recursive + # fetch-depth: 0 + # - name: Set up cache + # uses: https://code.forgejo.org/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: https://github.com/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 -DSUYU_USE_BUNDLED_QT=1 -DSUYU_USE_BUNDLED_SDL2=1 -DSUYU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DSUYU_ENABLE_COMPATIBILITY_REPORTING=ON -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DCMAKE_BUILD_TYPE=Release -DGIT_BRANCH=pr-verify -DSUYU_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: https://code.forgejo.org/actions/upload-artifact@v3 + # with: + # name: msvc + # path: artifacts/ + # - name: Upload EXE + # uses: https://code.forgejo.org/actions/upload-artifact@v3 + # with: + # name: ${{ env.INDIVIDUAL_EXE }} + # path: ${{ env.INDIVIDUAL_EXE }} + android: + runs-on: ubuntu-latest + needs: format + steps: + - uses: https://code.forgejo.org/actions/checkout@v3 + with: + submodules: recursive + fetch-depth: 0 + - name: set up JDK 17 + uses: https://github.com/actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + - name: Set up cache + uses: https://code.forgejo.org/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: https://github.com/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: https://code.forgejo.org/actions/upload-artifact@v3 + with: + name: android + path: artifacts/