mirror of https://git.suyu.dev/suyu/suyu
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			218 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			YAML
		
	
			
		
		
	
	
			218 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			YAML
		
	
# 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: docker
 | 
						|
    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: docker
 | 
						|
    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: docker
 | 
						|
    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/
 | 
						|
 |