cc3dsfs/.github/workflows/cd_pr.yml
2024-09-16 23:29:31 +02:00

86 lines
2.4 KiB
YAML

name: CD
on: [pull_request]
jobs:
build:
name: ${{ matrix.platform.name }} ${{ matrix.config.name }}
runs-on: ${{ matrix.platform.os }}
strategy:
fail-fast: false
matrix:
platform:
- { name: Windows VS2022 x64, os: windows-2022, flags: -A x64}
- { name: Windows VS2022 ARM, os: windows-2022, flags: -A ARM64}
- { name: Windows VS2022 Win32, os: windows-2022, flags: -A Win32}
- { name: Linux GCC x64, os: ubuntu-latest, flags: 64}
- { name: Linux GCC 32, os: ubuntu-latest, flags: 32}
- { name: Linux GCC ARM 64, os: ubuntu-latest, flags: arm64}
- { name: Linux GCC ARM 32, os: ubuntu-latest, flags: arm32}
- { name: macOS Apple Silicon, os: macos-14 }
config:
- { name: Static, flags: -DBUILD_SHARED_LIBS=FALSE }
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Configure
if: runner.os != 'Linux'
shell: bash
run: cmake -S . -B build -DCMAKE_INSTALL_PREFIX=install ${{matrix.platform.flags}} ${{matrix.config.flags}}
- name: Build Linux
if: runner.os == 'Linux'
run: docker run --rm -u root -v ${PWD}:/home/builder/cc3dsfs lorenzooone/cc3dsfs:builder${{matrix.platform.flags}}
- name: Build Windows
if: runner.os == 'Windows'
shell: bash
run: cmake --build build --config Release
- name: Build macOS
if: runner.os == 'macOS'
shell: bash
run: cmake --build build --config Release -j
- name: Pack (not Linux)
if: runner.os != 'Linux'
shell: bash
run: cd build && cpack -G ZIP
- name: Unpack Codesign Repack
if: runner.os == 'macOS'
shell: bash
run: setup_scripts/macos_bundle_signature.sh cc3dsfs_macos
- name: Archive resulting artifact
uses: actions/upload-artifact@v3
with:
name: cc3dsfs_zip
path: build/cc3dsfs*.zip
create_pi_setup:
name: Create Pi Mono Setup
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Download a single artifact
uses: actions/download-artifact@v3
with:
name: cc3dsfs_zip
- name: Execute pi_setup
shell: bash
run: setup_scripts/rpi_mono_setup_setup.sh
- name: Archive resulting artifact
uses: actions/upload-artifact@v3
with:
name: cc3dsfs_zip
path: cc3dsfs_rpi_mono_setup.zip