Skip to content

feat(dino): Jump will play jump sound #236

feat(dino): Jump will play jump sound

feat(dino): Jump will play jump sound #236

Workflow file for this run

name: Build All On All Possible Platforms
# Also run on Tag created
on:
push:
branches: [main]
tags:
- "*"
pull_request:
branches: [main]
env:
# update with the name of the main binary
binary: dinosaur-game
# Before enabling LFS, please take a look at GitHub's documentation for costs and quota limits:
# https://docs.github.com/en/repositories/working-with-files/managing-large-files/about-storage-and-bandwidth-usage
use_git_lfs: false
jobs:
# Build for wasm
release-wasm:
runs-on: ubuntu-latest
permissions:
contents: read
deployments: write
steps:
- uses: olegtarasov/[email protected]
id: get_version
- uses: actions/checkout@v4
with:
lfs: ${{ env.use_git_lfs }}
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
target: wasm32-unknown-unknown
- uses: denoland/setup-deno@v2
with:
deno-version: v2.0.2
- run: ./just.ts install-wasm-deps
- run: ./just.ts build-wasm
- run: ./just.ts prepare-wasm-package
- name: Deploy to Cloudflare Pages Preview
uses: cloudflare/pages-action@v1
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
projectName: dinosaur-game
directory: ./web
# Optional parameters
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ github.event.pull_request.head.ref }}
wranglerVersion: "3"
# Build for Linux
release-linux:
runs-on: ubuntu-latest
steps:
- uses: olegtarasov/[email protected]
id: get_version
- uses: actions/checkout@v4
with:
lfs: ${{ env.use_git_lfs }}
- uses: denoland/setup-deno@v2
with:
deno-version: v2.0.2
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
target: x86_64-unknown-linux-gnu
- run: ./just.ts install-linux-deps
- name: install dependencies
run: |
rustup component add rustc-codegen-cranelift-preview --toolchain nightly
- 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/ || true # Try to copy, but ignore if it can't copy if source directory does not exist
- name: Package as a zip
working-directory: ./linux
run: |
zip --recurse-paths ../${{ env.binary }}.zip .
- name: Upload binaries to artifacts
if: startsWith(github.ref, 'refs/tags/')
uses: actions/upload-artifact@v4
with:
path: ${{ env.binary }}.zip
name: linux
retention-days: 1
- name: Upload binaries to release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
files: ${{ env.binary }}.zip
name: ${{ env.binary }}-linux-${{ steps.get_version.outputs.tag }}.zip
# Build for Windows
run-windows:
runs-on: windows-latest
steps:
- uses: olegtarasov/[email protected]
id: get_version
- uses: actions/checkout@v4
with:
lfs: ${{ env.use_git_lfs }}
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
target: x86_64-pc-windows-msvc
- uses: denoland/setup-deno@v2
with:
deno-version: v2.0.2
- name: Build
run: |
rustup component add rustc-codegen-cranelift-preview --toolchain nightly
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/
mkdir assets -ea 0 # create the assets directory if it does not exist, it will get ignored in the zip if empty
cp -r assets windows/
- name: Package as a zip
run: |
Compress-Archive -Path windows/* -DestinationPath ${{ env.binary }}.zip
- name: Upload binaries to artifacts
if: startsWith(github.ref, 'refs/tags/')
uses: actions/upload-artifact@v4
with:
path: ${{ env.binary }}.zip
name: windows
retention-days: 1
- name: Upload binaries to release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
files: ${{ env.binary }}.zip
name: ${{ env.binary }}-windows-${{ steps.get_version.outputs.tag }}.zip
# Build for MacOS x86_64
run-macOS-intel:
runs-on: macOS-latest
steps:
- uses: olegtarasov/[email protected]
id: get_version
- uses: actions/checkout@v4
with:
lfs: ${{ env.use_git_lfs }}
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
target: x86_64-apple-darwin
- uses: denoland/setup-deno@v2
with:
deno-version: v2.0.2
- name: Environment Setup
run: |
export CFLAGS="-fno-stack-check"
export MACOSX_DEPLOYMENT_TARGET="10.9"
- name: Build
run: |
cargo clean
rustup update
rustup target add x86_64-apple-darwin
rustup component add rustc-codegen-cranelift-preview --toolchain nightly
# cargo build -Z build-std --target x86_64-apple-darwin
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/ || true # Try to copy, but ignore if it can't copy if source directory does not exist
hdiutil create -fs HFS+ -volname "${{ env.binary }}" -srcfolder ${{ env.binary }}.app ${{ env.binary }}-macOS-intel.dmg
- name: Upload binaries to artifacts
if: startsWith(github.ref, 'refs/tags/')
uses: actions/upload-artifact@v4
with:
path: ${{ env.binary }}-macOS-intel.dmg
name: macOS-intel
retention-days: 1
- name: Upload binaries to release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
files: ${{ env.binary }}-macOS-intel.dmg
name: ${{ env.binary }}-macOS-intel-${{ github.ref }}.dmg
# Build for MacOS Apple Silicon
run-macOS-apple-silicon:
runs-on: macOS-latest
steps:
- uses: olegtarasov/[email protected]
id: get_version
- uses: actions/checkout@v4
with:
lfs: ${{ env.use_git_lfs }}
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
target: aarch64-apple-darwin
- uses: denoland/setup-deno@v2
with:
deno-version: v2.0.2
- name: Environment
# macOS 11 was the first version to support ARM
run: |
export MACOSX_DEPLOYMENT_TARGET="11"
- name: Build
run: |
rustup component add rustc-codegen-cranelift-preview --toolchain nightly
cargo build --release --target aarch64-apple-darwin
- name: Prepare Package
run: |
mkdir -p ${{ env.binary }}.app/Contents/MacOS
cp target/aarch64-apple-darwin/release/${{ env.binary }} ${{ env.binary }}.app/Contents/MacOS/
cp -r assets ${{ env.binary }}.app/Contents/MacOS/ || true # Try to copy, but ignore if it can't copy if source directory does not exist
hdiutil create -fs HFS+ -volname "${{ env.binary }}-macOS-apple-silicon" -srcfolder ${{ env.binary }}.app ${{ env.binary }}-macOS-apple-silicon.dmg
- name: Upload binaries to artifacts
if: startsWith(github.ref, 'refs/tags/')
uses: actions/upload-artifact@v4
with:
path: ${{ env.binary }}-macOS-apple-silicon.dmg
name: macOS-apple-silicon
retention-days: 1
- name: Upload binaries to release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
files: ${{ env.binary }}-macOS-apple-silicon.dmg
name: ${{ env.binary }}-macOS-apple-silicon-${{ github.ref }}.dmg