Repository navigation
vk_pipeline_cache: Fix directory creation failure if `shaders/vulkan/… #10
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: citra-build | |
| on: | |
| push: | |
| branches: [ "*" ] | |
| tags: [ "*" ] | |
| pull_request: | |
| branches: [ master ] | |
| jobs: | |
| source: | |
| if: ${{ !github.head_ref }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Pack | |
| run: ./.ci/source.sh | |
| - name: Upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: source | |
| path: artifacts/ | |
| linux: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| target: ["appimage", "fresh"] | |
| container: | |
| image: opensauce04/azahar-build-environment:latest | |
| options: -u 1001 | |
| env: | |
| CCACHE_DIR: ${{ github.workspace }}/.ccache | |
| CCACHE_COMPILERCHECK: content | |
| CCACHE_SLOPPINESS: time_macros | |
| OS: linux | |
| TARGET: ${{ matrix.target }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Set up cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ env.CCACHE_DIR }} | |
| key: ${{ runner.os }}-${{ matrix.target }}-${{ github.sha }} | |
| restore-keys: | | |
| ${{ runner.os }}-${{ matrix.target }}- | |
| - name: Build | |
| run: ./.ci/linux.sh | |
| - name: Move AppImage to artifacts directory | |
| if: ${{ matrix.target == 'appimage' }} | |
| run: | | |
| mkdir -p artifacts | |
| mv build/bundle/*.AppImage artifacts/ | |
| - name: Upload | |
| if: ${{ matrix.target == 'appimage' }} | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ env.OS }}-${{ env.TARGET }} | |
| path: artifacts/ | |
| macos: | |
| runs-on: ${{ (matrix.target == 'x86_64' && 'macos-13') || 'macos-14' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| target: ["x86_64", "arm64"] | |
| env: | |
| CCACHE_DIR: ${{ github.workspace }}/.ccache | |
| CCACHE_COMPILERCHECK: content | |
| CCACHE_SLOPPINESS: time_macros | |
| OS: macos | |
| TARGET: ${{ matrix.target }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Set up cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ env.CCACHE_DIR }} | |
| key: ${{ runner.os }}-${{ matrix.target }}-${{ github.sha }} | |
| restore-keys: | | |
| ${{ runner.os }}-${{ matrix.target }}- | |
| - name: Install tools | |
| run: brew install ccache ninja spirv-tools | |
| - name: Build | |
| run: ./.ci/macos.sh | |
| - name: Prepare outputs for caching | |
| run: cp -R build/bundle $OS-$TARGET | |
| - name: Cache outputs for universal build | |
| uses: actions/cache/save@v4 | |
| with: | |
| path: ${{ env.OS }}-${{ env.TARGET }} | |
| key: ${{ runner.os }}-${{ matrix.target }}-${{ github.sha }}-${{ github.run_id }}-${{ github.run_attempt }} | |
| - name: Pack | |
| run: ./.ci/pack.sh | |
| - name: Upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ env.OS }}-${{ env.TARGET }} | |
| path: artifacts/ | |
| macos-universal: | |
| runs-on: macos-14 | |
| needs: macos | |
| env: | |
| OS: macos | |
| TARGET: universal | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Download x86_64 build from cache | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: ${{ env.OS }}-x86_64 | |
| key: ${{ runner.os }}-x86_64-${{ github.sha }}-${{ github.run_id }}-${{ github.run_attempt }} | |
| fail-on-cache-miss: true | |
| - name: Download ARM64 build from cache | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: ${{ env.OS }}-arm64 | |
| key: ${{ runner.os }}-arm64-${{ github.sha }}-${{ github.run_id }}-${{ github.run_attempt }} | |
| fail-on-cache-miss: true | |
| - name: Create universal app | |
| run: ./.ci/macos-universal.sh | |
| env: | |
| ARTIFACTS: ${{ env.OS }}-x86_64 ${{ env.OS }}-arm64 | |
| - name: Pack | |
| run: ./.ci/pack.sh | |
| - name: Upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ env.OS }}-${{ env.TARGET }} | |
| path: artifacts/ | |
| windows: | |
| runs-on: windows-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| target: ["msvc", "msys2"] | |
| defaults: | |
| run: | |
| shell: ${{ (matrix.target == 'msys2' && 'msys2') || 'bash' }} {0} | |
| env: | |
| CCACHE_DIR: ${{ github.workspace }}/.ccache | |
| CCACHE_COMPILERCHECK: content | |
| CCACHE_SLOPPINESS: time_macros | |
| OS: windows | |
| TARGET: ${{ matrix.target }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Set up cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ env.CCACHE_DIR }} | |
| key: ${{ runner.os }}-${{ matrix.target }}-${{ github.sha }} | |
| restore-keys: | | |
| ${{ runner.os }}-${{ matrix.target }}- | |
| - name: Set up MSVC | |
| if: ${{ matrix.target == 'msvc' }} | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Install extra tools (MSVC) | |
| if: ${{ matrix.target == 'msvc' }} | |
| run: choco install ccache ninja ptime wget | |
| - name: Install vulkan-sdk (MSVC) | |
| if: ${{ matrix.target == 'msvc' }} | |
| run: | | |
| wget https://sdk.lunarg.com/sdk/download/1.4.304.1/windows/VulkanSDK-1.4.304.1-Installer.exe -O D:/a/_temp/vulkan.exe | |
| D:/a/_temp/vulkan.exe --accept-licenses --default-answer --confirm-command install | |
| - name: Set up MSYS2 | |
| if: ${{ matrix.target == 'msys2' }} | |
| uses: msys2/setup-msys2@v2 | |
| with: | |
| msystem: clang64 | |
| update: true | |
| install: git make p7zip | |
| pacboy: >- | |
| toolchain:p ccache:p cmake:p ninja:p spirv-tools:p | |
| qt6-base:p qt6-multimedia:p qt6-multimedia-wmf:p qt6-tools:p qt6-translations:p | |
| - name: Install extra tools (MSYS2) | |
| if: ${{ matrix.target == 'msys2' }} | |
| uses: crazy-max/ghaction-chocolatey@v3 | |
| with: | |
| args: install ptime wget | |
| - name: Install NSIS | |
| if: ${{ github.ref_type == 'tag' }} | |
| run: | | |
| wget https://download.sourceforge.net/project/nsis/NSIS%203/3.11/nsis-3.11-setup.exe -O D:/a/_temp/nsis-setup.exe | |
| ptime D:/a/_temp/nsis-setup.exe /S | |
| shell: pwsh | |
| - name: Disable line ending translation | |
| run: git config --global core.autocrlf input | |
| - name: Build | |
| run: ./.ci/windows.sh | |
| - name: Generate installer | |
| if: ${{ github.ref_type == 'tag' }} | |
| run: | | |
| cd src\installer | |
| "C:\Program Files (x86)\NSIS\makensis.exe" /DPRODUCT_VARIANT=${{ matrix.target }} /DPRODUCT_VERSION=${{ github.ref_name }} citra.nsi | |
| mkdir ..\..\artifacts 2> NUL | |
| move /y *.exe ..\..\artifacts\ | |
| shell: cmd | |
| - name: Pack | |
| run: ./.ci/pack.sh | |
| - name: Upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ env.OS }}-${{ env.TARGET }} | |
| path: artifacts/ | |
| android: | |
| runs-on: ubuntu-latest | |
| env: | |
| CCACHE_DIR: ${{ github.workspace }}/.ccache | |
| CCACHE_COMPILERCHECK: content | |
| CCACHE_SLOPPINESS: time_macros | |
| OS: android | |
| TARGET: universal | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Set up cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| ${{ env.CCACHE_DIR }} | |
| key: ${{ runner.os }}-android-${{ github.sha }} | |
| restore-keys: | | |
| ${{ runner.os }}-android- | |
| - name: Set tag name | |
| run: | | |
| if [[ "$GITHUB_REF_TYPE" == "tag" ]]; then | |
| echo "GIT_TAG_NAME=$GITHUB_REF_NAME" >> $GITHUB_ENV | |
| fi | |
| echo $GIT_TAG_NAME | |
| - name: Deps | |
| run: | | |
| sudo apt-get update -y | |
| sudo apt-get install ccache apksigner -y | |
| - name: Update Android SDK CMake version | |
| run: | | |
| echo "y" | ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "cmake;3.30.3" | |
| - name: Build | |
| run: JAVA_HOME=$JAVA_HOME_17_X64 ./.ci/android.sh | |
| env: | |
| ANDROID_KEYSTORE_B64: ${{ secrets.ANDROID_KEYSTORE_B64 }} | |
| ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }} | |
| ANDROID_KEYSTORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASS }} | |
| - name: Pack | |
| run: ../../../.ci/pack.sh | |
| working-directory: src/android/app | |
| env: | |
| UNPACKED: 1 | |
| - name: Upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ env.OS }}-${{ env.TARGET }} | |
| path: src/android/app/artifacts/ |