diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..75b4544 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,163 @@ +# Copied from bevy_github_ci_template +name: Release + +on: + push: + tags: + - '*' + +env: + # update with the name of the main binary + binary: beeline + + +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