cc3dsfs/.github/workflows/cd_main.yml
2024-05-29 04:49:48 +02:00

76 lines
2.0 KiB
YAML

name: CD
on:
# Trigger the workflow on push,
# but only for the master branch
push:
branches:
- main
jobs:
build:
name: ${{ matrix.platform.name }} ${{ matrix.config.name }}
runs-on: ${{ matrix.platform.os }}
strategy:
fail-fast: false
matrix:
platform:
- { name: Windows VS2022, os: windows-2022 }
- { name: Linux GCC, os: ubuntu-latest }
- { name: macOS x64, os: macos-13 }
- { name: macOS Apple Silicon, os: macos-14 }
config:
- { name: Static, flags: -DBUILD_SHARED_LIBS=FALSE }
steps:
- name: Install Linux Dependencies
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install libxrandr-dev libxcursor-dev libudev-dev libopenal-dev libflac-dev libvorbis-dev libgl1-mesa-dev libegl1-mesa-dev
- name: Checkout
uses: actions/checkout@v3
- name: Configure
shell: bash
run: cmake -S . -B build -DCMAKE_INSTALL_PREFIX=install ${{matrix.platform.flags}} ${{matrix.config.flags}}
- name: Build
shell: bash
run: cmake --build build --config Release
- name: Pack
shell: bash
run: cd build && cpack -G ZIP
- name: Archive resulting artifact
uses: actions/upload-artifact@v3
with:
name: cc3dsfs_zip
path: build/cc3dsfs*.zip
publish:
name: Publishing
runs-on: ubuntu-latest
needs: build
permissions:
contents: write
steps:
- name: Download a single artifact
uses: actions/download-artifact@v3
with:
name: cc3dsfs_zip
- name: Auto-Release the zips
uses: IsaacShelton/update-existing-release@v1.3.2
with:
token: ${{ secrets.GITHUB_TOKEN }}
release: "Automatic Build"
prerelease: true
tag: "nightly-latest"
replace: true
files: >
cc3dsfs_macos_x86_64.zip
cc3dsfs_windows_x86_64.zip
cc3dsfs_linux_x86_64.zip
cc3dsfs_macos_arm64.zip