name: Deploy Workflow on: [push] #on: # push: # tags: # - "*" jobs: build-linux: name: Build Linux timeout-minutes: 30 runs-on: ubuntu-latest container: rust:1.71.0 steps: - name: Checkout code from repository uses: actions/checkout@v3 - name: Build Base run: | cargo build --release - name: Build SDL run: | cd frontends/sdl apt-get update && apt-get install -y -q zip cargo install cargo-vcpkg && cargo vcpkg -v build cargo build --release - name: Build Libretro run: | cd frontends/libretro cargo build --release - name: Transform filenames run: | cd target/release mv boytacean-sdl boytacean-sdl-linux-x64 mv libboytacean_libretro.so boytacean_libretro.so - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: boytacean-linux path: | target/release/boytacean-sdl-linux-x64 target/release/libboytacean.so target/release/boytacean_libretro.so retention-days: 5 build-windows: name: Build Windows timeout-minutes: 30 runs-on: windows-latest steps: - name: Checkout code from repository uses: actions/checkout@v3 - name: Setup Rust run: | rustup install 1.71.0 rustup override set 1.71.0 rustup default stable-msvc - name: Build Base run: | cargo build --release - name: Build SDL run: | cd frontends/sdl cargo install cargo-vcpkg && cargo vcpkg -v build cargo build --release - name: Build Libretro run: | cd frontends/libretro cargo build --release - name: Transform filenames run: | cd target/release mv boytacean-sdl.exe boytacean-sdl-win32-x64.exe - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: boytacean-win32 path: | target/release/boytacean-sdl-win32-x64.exe target/release/boytacean.dll target/release/boytacean_libretro.dll retention-days: 5 build-mac: name: Build Mac timeout-minutes: 30 runs-on: macos-latest steps: - name: Checkout code from repository uses: actions/checkout@v3 - name: Setup Rust run: | rustup install 1.71.0 rustup override set 1.71.0 - name: Build Base run: | cargo build --release - name: Build SDL run: | cd frontends/sdl cargo install cargo-vcpkg && cargo vcpkg -v build cargo build --release - name: Build Libretro run: | cd frontends/libretro cargo build --release - name: Transform filenames run: | cd target/release mv boytacean-sdl boytacean-sdl-mac-x64 mv libboytacean_libretro.dylib boytacean_libretro.dylib - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: boytacean-mac path: | target/release/boytacean-sdl-mac-x64 target/release/libboytacean.dylib target/release/boytacean_libretro.dylib retention-days: 5 release: name: Release needs: [build-linux, build-windows, build-mac] timeout-minutes: 10 runs-on: ubuntu-latest steps: - name: Download artifacts uses: actions/download-artifact@v3 - name: Create release uses: softprops/action-gh-release@v1 with: files: | boytacean-sdl-mac-x64 boytacean-sdl-linux-x64 boytacean-sdl-win32-x64.exe libboytacean.dylib libboytacean.so boytacean.dll boytacean_libretro.dylib boytacean_libretro.so boytacean_libretro.dll