mirror of
https://github.com/flyinghead/flycast.git
synced 2026-11-10 01:51:44 -10:00
- Bump action versions - Improve ccache support - Reformat files - Replace chkfung/android-version-actions and mathieu-bour/setup-sentry-cli from android workflow - Update MoltenVK to use the latest official tag - Update BSD operating systems
68 lines
2.0 KiB
YAML
68 lines
2.0 KiB
YAML
name: Nintendo Switch
|
|
|
|
on:
|
|
push:
|
|
branches-ignore:
|
|
- 'l10n_**'
|
|
pull_request:
|
|
|
|
jobs:
|
|
build:
|
|
name: Switch ${{ matrix.config.name }}
|
|
runs-on: ubuntu-latest
|
|
container: devkitpro/devkita64:latest
|
|
|
|
env:
|
|
CCACHE_DIR: ${{ github.workspace }}/.ccache
|
|
|
|
strategy:
|
|
matrix:
|
|
config:
|
|
- { name: standalone, destDir: switch }
|
|
- { name: libretro, cmakeArgs: -DLIBRETRO=ON }
|
|
|
|
steps:
|
|
- name: Set up build environment
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get -y install ccache gh
|
|
|
|
- uses: actions/checkout@v7
|
|
with:
|
|
fetch-depth: 0
|
|
submodules: recursive
|
|
|
|
- name: Mark git repository as safe
|
|
run: git config --global --add safe.directory $PWD
|
|
|
|
- uses: actions/cache@v6
|
|
with:
|
|
path: ${{ env.CCACHE_DIR }}
|
|
key: ccache-switch-${{ matrix.config.name }}-${{ github.sha }}
|
|
restore-keys: ccache-switch-${{ matrix.config.name }}-
|
|
|
|
- name: CMake
|
|
run: |
|
|
$DEVKITPRO/portlibs/switch/bin/aarch64-none-elf-cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=artifact -G Ninja ${{ matrix.config.cmakeArgs }}
|
|
cmake --build build --config Release --target install
|
|
|
|
- uses: actions/upload-artifact@v7
|
|
with:
|
|
name: flycast-switch-${{ matrix.config.name }}
|
|
path: |
|
|
artifact/bin
|
|
artifact/lib/libretro
|
|
|
|
- name: Package app
|
|
run: zip -m artifact/bin/flycast.nro.zip artifact/bin/flycast.nro
|
|
if: hashFiles('artifact/bin/flycast.nro') != ''
|
|
|
|
- name: Setup Rclone
|
|
uses: AnimMouse/setup-rclone@v1
|
|
with:
|
|
rclone_config: ${{ secrets.RCLONE_CONFIG }}
|
|
|
|
- name: Upload to S3
|
|
run: rclone copy artifact/bin scaleway:flycast-builds/${{ matrix.config.destDir }}/${GITHUB_REF#refs/}-$GITHUB_SHA
|
|
if: github.repository == 'flyinghead/flycast' && github.event_name == 'push' && matrix.config.destDir != ''
|