bevy_eventwork 0.10.0

Event based networking library for Bevy
Documentation
name: Release

on:
  push:
    tags:
      - '*'

env:
  # update with the name of the main binary
  binary: bevy_github_ci_template


jobs:

  # Build for wasm
  release-wasm:
    runs-on: ubuntu-latest

    steps:
      - uses: little-core-labs/get-git-tag@v3.0.1
        id: get_version
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: wasm32-unknown-unknown
          override: true
      - name: install wasm-bindgen-cli
        run: |
          cargo install wasm-bindgen-cli
      - name: Build
        run: |
          cargo build --release --target wasm32-unknown-unknown
      - name: Prepare package
        run: |
          wasm-bindgen --no-typescript --out-name bevy_game --out-dir wasm --target web target/wasm32-unknown-unknown/release/${{ env.binary }}.wasm
          cp -r assets wasm/
      - name: Package as a zip
        uses: vimtor/action-zip@v1
        with:
          files: wasm
          dest: ${{ env.binary }}.zip

      - name: Upload binaries to release
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: ${{ env.binary }}.zip
          asset_name: ${{ env.binary }}-wasm-${{ steps.get_version.outputs.tag }}.zip
          tag: ${{ github.ref }}
          overwrite: true

  # Build for Linux
  release-linux:
    runs-on: ubuntu-latest

    steps:
      - uses: little-core-labs/get-git-tag@v3.0.1
        id: get_version
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: x86_64-unknown-linux-gnu
          override: true
      - name: install dependencies
        run: |
          sudo apt-get update; sudo apt-get install pkg-config libx11-dev libasound2-dev libudev-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev
      - name: Build
        run: |
          cargo build --release --target x86_64-unknown-linux-gnu
      - name: Prepare package
        run: |
          mkdir linux
          cp target/x86_64-unknown-linux-gnu/release/${{ env.binary }} linux/
          cp -r assets linux/
      - name: Package as a zip
        uses: vimtor/action-zip@v1
        with:
          files: linux
          dest: ${{ env.binary }}.zip

      - name: Upload binaries to release
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: ${{ env.binary }}.zip
          asset_name: ${{ env.binary }}-linux-${{ steps.get_version.outputs.tag }}.zip
          tag: ${{ github.ref }}
          overwrite: true

  # Build for Windows
  release-windows:
    runs-on: windows-latest

    steps:
      - uses: little-core-labs/get-git-tag@v3.0.1
        id: get_version
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: x86_64-pc-windows-msvc
          override: true

      - name: Build
        run: |
          cargo build --release --target x86_64-pc-windows-msvc
      - name: Prepare package
        run: |
          mkdir windows
          cp target/x86_64-pc-windows-msvc/release/${{ env.binary }}.exe windows/
          cp -r assets windows/
      - name: Package as a zip
        uses: vimtor/action-zip@v1
        with:
          files: windows
          dest: ${{ env.binary }}.zip

      - name: Upload binaries to release
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: ${{ env.binary }}.zip
          asset_name: ${{ env.binary }}-windows-${{ steps.get_version.outputs.tag }}.zip
          tag: ${{ github.ref }}
          overwrite: true

  # Build for macOS
  release-macos:
    runs-on: macOS-latest

    steps:
      - uses: little-core-labs/get-git-tag@v3.0.1
        id: get_version
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: x86_64-apple-darwin
          override: true
      - name: Environment Setup
        run: |
          export CFLAGS="-fno-stack-check"
          export MACOSX_DEPLOYMENT_TARGET="10.9"
      - name: Build
        run: |
          cargo build --release --target x86_64-apple-darwin
      - name: Prepare Package
        run: |
          mkdir -p ${{ env.binary }}.app/Contents/MacOS
          cp target/x86_64-apple-darwin/release/${{ env.binary }} ${{ env.binary }}.app/Contents/MacOS/
          cp -r assets ${{ env.binary }}.app/Contents/MacOS/
          hdiutil create -fs HFS+ -volname "${{ env.binary }}" -srcfolder ${{ env.binary }}.app ${{ env.binary }}.dmg
      - name: Upload binaries to release
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: ${{ env.binary }}.dmg
          asset_name: ${{ env.binary }}-macos-${{ steps.get_version.outputs.tag }}.dmg
          tag: ${{ github.ref }}
          overwrite: true