| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- # 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" ]
- paths:
- - 'src/**'
- - 'CMakeModules/**'
- - 'dist/**'
- - 'externals/**'
- - 'CMakeLists.txt'
- - 'vcpkg.json'
- # paths-ignore:
- # - 'src/android/**'
- push:
- branches: [ "dev" ]
- paths:
- - 'src/**'
- - 'CMakeModules/**'
- - 'dist/**'
- - 'externals/**'
- - 'CMakeLists.txt'
- - 'vcpkg.json'
- - '.forgejo/workflows/verify.yml'
- - '.ci/**'
- # paths-ignore:
- # - 'src/android/**'
- env:
- PR_NUMBER: pr${{ github.event.number }}
- jobs:
- format:
- name: 'Verify Format'
- runs-on: ubuntu-latest
- container: fijxu/build-environments:linux-clang-format
- 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: fijxu/build-environments:${{ matrix.image }}
- # User 1001 doesn't exists on the images.
- # 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
- container: fijxu/build-environments:android
- 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: 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/
|