bevy-game

A bevy game
git clone git://archive.git.mtrnord.blog/MTRNord/bevy-game.git
Log | Files | Refs | README | LICENSE

release.yaml (5660B)


      1 name: release-flow
      2 
      3 on:
      4   push:
      5     tags:
      6       - "v[0-9]+.[0-9]+.[0-9]+*"
      7 
      8 # ToDo: adapt names
      9 env:
     10   GAME_EXECUTABLE_NAME: bevy_game
     11   GAME_OSX_APP_NAME: BevyGame
     12 
     13 jobs:
     14   build-macOS:
     15     runs-on: macOS-latest
     16 
     17     steps:
     18       - name: Get tag
     19         id: tag
     20         uses: dawidd6/action-get-tag@v1
     21       - name: Checkout repository
     22         uses: actions/checkout@v2
     23       - name: Install rust toolchain
     24         uses: actions-rs/toolchain@v1
     25         with:
     26           toolchain: stable
     27           override: true
     28       - name: Remove build script
     29         run: |
     30           rm build.rs
     31       - name: Build release
     32         run: |
     33           cargo build --release
     34       - name: Create release
     35         run: |
     36           mkdir -p build/macos/src/Game.app/Contents/MacOS/assets
     37           cp -r assets/ build/macos/src/Game.app/Contents/MacOS/assets
     38           cp -r credits/ build/macos/src/Game.app/Contents/MacOS/credits
     39           cp target/release/${{ env.GAME_EXECUTABLE_NAME }} build/macos/src/Game.app/Contents/MacOS/
     40           strip build/macos/src/Game.app/Contents/MacOS/${{ env.GAME_EXECUTABLE_NAME }}
     41           mv build/macos/src/Game.app build/macos/src/${{ env.GAME_OSX_APP_NAME }}.app
     42           ln -s /Applications build/macos/src/
     43           hdiutil create -fs HFS+ -volname "${{ env.GAME_OSX_APP_NAME }}" -srcfolder build/macos/src ${{ env.GAME_EXECUTABLE_NAME }}.dmg
     44       - name: Upload release
     45         uses: svenstaro/upload-release-action@v2
     46         with:
     47           repo_token: ${{ secrets.GITHUB_TOKEN }}
     48           file: ${{ env.GAME_EXECUTABLE_NAME }}.dmg
     49           asset_name: ${{ env.GAME_EXECUTABLE_NAME }}_${{ steps.tag.outputs.tag }}_macOS.dmg
     50           tag: ${{ github.ref }}
     51           overwrite: true
     52 
     53   build-linux:
     54     runs-on: ubuntu-18.04
     55 
     56     steps:
     57       - name: Get tag
     58         id: tag
     59         uses: dawidd6/action-get-tag@v1
     60       - name: Checkout repository
     61         uses: actions/checkout@v2
     62       - name: Install rust toolchain
     63         uses: actions-rs/toolchain@v1
     64         with:
     65           toolchain: stable
     66           override: true
     67       - name: Install Dependencies
     68         run: sudo apt-get update; sudo apt-get install pkg-config libx11-dev libasound2-dev libudev-dev
     69       - name: Build release
     70         run: |
     71           cargo build --release
     72       - name: Prepare release
     73         run: |
     74           strip target/release/${{ env.GAME_EXECUTABLE_NAME }}
     75           chmod +x target/release/${{ env.GAME_EXECUTABLE_NAME }}
     76           mv target/release/${{ env.GAME_EXECUTABLE_NAME }} .
     77       - name: Bundle release
     78         run: |
     79           tar -czf ${{ env.GAME_EXECUTABLE_NAME }}_linux.tar.gz ${{ env.GAME_EXECUTABLE_NAME }} assets credits
     80       - name: Upload release
     81         uses: svenstaro/upload-release-action@v2
     82         with:
     83           repo_token: ${{ secrets.GITHUB_TOKEN }}
     84           file: ${{ env.GAME_EXECUTABLE_NAME }}_linux.tar.gz
     85           asset_name: ${{ env.GAME_EXECUTABLE_NAME }}_${{ steps.tag.outputs.tag }}_linux.tar.gz
     86           tag: ${{ github.ref }}
     87           overwrite: true
     88 
     89   build-windows:
     90     runs-on: windows-latest
     91 
     92     steps:
     93       - name: Get tag
     94         id: tag
     95         uses: dawidd6/action-get-tag@v1
     96       - name: Checkout repository
     97         uses: actions/checkout@v2
     98       - name: Install rust toolchain
     99         uses: actions-rs/toolchain@v1
    100         with:
    101           toolchain: stable
    102           override: true
    103       - name: Build release
    104         run: |
    105           cargo build --release
    106       - name: Prepare release
    107         run: |
    108           mkdir target/release/assets && cp -r assets target/release/assets
    109           mkdir target/release/credits && cp -r credits target/release/credits
    110       - name: Zip release
    111         uses: vimtor/action-zip@v1
    112         with:
    113           files: target/release/assets/ target/release/credits/ target/release/${{ env.GAME_EXECUTABLE_NAME }}.exe
    114           dest: ${{ env.GAME_EXECUTABLE_NAME }}_windows.zip
    115       - name: Upload release
    116         uses: svenstaro/upload-release-action@v2
    117         with:
    118           repo_token: ${{ secrets.GITHUB_TOKEN }}
    119           file: ${{ env.GAME_EXECUTABLE_NAME }}_windows.zip
    120           asset_name: ${{ env.GAME_EXECUTABLE_NAME }}_${{ steps.tag.outputs.tag }}_windows.zip
    121           tag: ${{ github.ref }}
    122           overwrite: true
    123 
    124   build-web:
    125     runs-on: ubuntu-latest
    126 
    127     steps:
    128       - name: Get tag
    129         id: tag
    130         uses: dawidd6/action-get-tag@v1
    131       - name: Checkout repository
    132         uses: actions/checkout@v2
    133       - name: Install rust toolchain
    134         uses: actions-rs/toolchain@v1
    135         with:
    136           toolchain: stable
    137           override: true
    138       - name: Install Dependencies
    139         run: sudo apt-get update; sudo apt-get install pkg-config libx11-dev libasound2-dev libudev-dev
    140       - name: Install cargo-make
    141         run: |
    142           cargo install cargo-make
    143       - name: Add wasm target
    144         run: |
    145           rustup target add wasm32-unknown-unknown
    146       - name: Build Release
    147         run: |
    148           cargo make release
    149       - name: optimize Wasm
    150         uses: NiklasEi/wasm-opt@v1
    151         with:
    152           file: build/web/target/wasm_bg.wasm
    153           output: build/web/target/wasm_bg.wasm
    154       - name: Zip release
    155         uses: vimtor/action-zip@v1
    156         with:
    157           files: build/web/
    158           dest: ${{ env.GAME_EXECUTABLE_NAME }}_web.zip
    159       - name: Upload release
    160         uses: svenstaro/upload-release-action@v2
    161         with:
    162           repo_token: ${{ secrets.GITHUB_TOKEN }}
    163           file: ${{ env.GAME_EXECUTABLE_NAME }}_web.zip
    164           asset_name: ${{ env.GAME_EXECUTABLE_NAME }}_${{ steps.tag.outputs.tag }}_web.zip
    165           tag: ${{ github.ref }}
    166           overwrite: true