Skip to content
Snippets Groups Projects
deploy.yml 2.89 KiB
Newer Older
  • Learn to ignore specific revisions
  • name: Deploy Workflow
    
    on: [push]
    
    João Magalhães's avatar
    João Magalhães committed
    #on:
    #  push:
    #    tags:
    #      - "*"
    
    João Magalhães's avatar
    João Magalhães committed
      build-linux:
    
    João Magalhães's avatar
    João Magalhães committed
        name: Build Linux
    
    João Magalhães's avatar
    João Magalhães committed
        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
              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
              cargo build --release
    
          - name: Build Libretro
            run: |
    
              cd frontends/libretro
              cargo build
              cargo build --release
    
    João Magalhães's avatar
    João Magalhães committed
          - name: Transform filenames
            run: |
              cd target/release
              mv boytacean-sdl boytacean-sdl-linux-x64
              mv libboytacean_libretro.so boytacean_libretro.so
          - name: Upload Artifact
            uses: actions/upload-artifact@v3
            with:
              name: boytacean-win32
              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
            uses: actions-rs/toolchain@v1
            with:
    
    João Magalhães's avatar
    João Magalhães committed
              toolchain: 1.71.0
    
    João Magalhães's avatar
    João Magalhães committed
          - name: Build Base
            run: |
              cargo build
              cargo build --release
          - name: Build SDL
            run: |
              cd frontends/sdl
    
    João Magalhães's avatar
    João Magalhães committed
              cargo install cargo-vcpkg
    
    João Magalhães's avatar
    João Magalhães committed
              cargo build
              cargo build --release
          - name: Build Libretro
            run: |
              cd frontends/libretro
              cargo build
              cargo build --release
          - name: Transform Filenames
            run: |
              cd target/release
              mv boytacean-sdl.exe boytacean-sdl-win32-x64.exe
          - name: Upload Artifact
            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
      release:
        name: Release
    
    João Magalhães's avatar
    João Magalhães committed
        needs: [build-linux, build-windows]
    
    João Magalhães's avatar
    João Magalhães committed
        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: |
    
    João Magalhães's avatar
    João Magalhães committed
                boytacean-sdl-linux-x64
                boytacean-sdl-win32-x64.exe
                libboytacean.so
                boytacean.dll
                boytacean_libretro.so
                boytacean_libretro.dll