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