Skip to content
Snippets Groups Projects
deploy.yml 1.71 KiB
name: Deploy Workflow
on:
  push:
    tags:
      - "*"
jobs:
  create-release:
    name: Create Release
    timeout-minutes: 10
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code from repository
        uses: actions/checkout@v3
      - name: Create release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ github.ref }}
          release_name: ${{ github.ref }}
          draft: false
          prerelease: false
  build-upload:
    name: Build & Upload
    needs: create-release
    timeout-minutes: 10
    strategy:
      matrix:
        rust-version: ["1.71.0"]
    runs-on: ubuntu-latest
    container: rust:${{ matrix.rust-version }}
    steps:
      - name: Checkout code from repository
        uses: actions/checkout@v3
      - name: Build Base
        run: |
          cargo build
          cargo build --release
      - name: Build SDL
        run: |
          cargo install cargo-vcpkg && cargo vcpkg -v build
          cd frontends/sdl && cargo build
          cd frontends/sdl && cargo build --release
      - name: Build Libretro
        run: |
          cd frontends/libretro && cargo build
          cd frontends/libretro && cargo build --release
      - name: Upload Base
        uses: softprops/action-gh-release@v1
        if: startsWith(github.ref, 'refs/tags/')
        with:
          files: |
            target/debug/libboytacean.so
            target/release/libboytacean.so
            target/debug/boytacean-sdl
            target/release/boytacean-sdl
            target/debug/libboytacean-libretro.so
            target/release/libboytacean-libretro.so