fix: open up town map exits and make portal in nest maps spawn later … #55
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build, Test, and Publish | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
env: | |
CARGO_TERM_COLOR: always | |
permissions: | |
id-token: write | |
contents: read | |
jobs: | |
test-game: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: ./wild-thyme | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Run tests | |
run: cargo test --verbose | |
build-game: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: ./wild-thyme | |
steps: | |
- uses: actions/checkout@v3 | |
- id: cache-rustup | |
name: Cache Rust toolchain | |
uses: actions/cache@v3 | |
with: | |
path: ~/.rustup | |
key: toolchain-wasm32-unknown-unknown | |
- if: ${{ steps.cache-rustup.outputs.cache-hit != 'true' }} | |
name: Install toolchain | |
run: rustup target add wasm32-unknown-unknown | |
- uses: Swatinem/rust-cache@v2 | |
- name: Install wasm-bindgen | |
run: cargo install wasm-bindgen-cli | |
- name: Build | |
run: cargo build --release --target=wasm32-unknown-unknown | |
- name: Generate JS bindings | |
run: wasm-bindgen target/wasm32-unknown-unknown/release/and_we_had_a_wild_thyme.wasm --out-dir wasm --no-modules | |
- name: Archive wasm | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wasm-build | |
path: wild-thyme/wasm | |
build-web: | |
needs: build-game | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: ./delightful-thyme | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: oven-sh/setup-bun@v1 | |
- name: Download wasm artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: wasm-build | |
path: delightful-thyme/wild-thyme | |
- name: Install | |
run: bun install | |
- name: Copy wasm and built js | |
run: mkdir public/wasm && cp wild-thyme/*.wasm public/wasm/ && cp wild-thyme/*.js public/wasm/ | |
- name: Build | |
run: bun run build | |
- name: Debug workflow | |
run: pwd;echo;ls -al;echo;ls -al dist;echo;ls -al public;echo;ls -al public/wasm; | |
- name: Archive web build | |
uses: actions/upload-artifact@v3 | |
with: | |
name: web-build | |
path: delightful-thyme/dist | |
publish: | |
needs: build-web | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: ./publish | |
steps: | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | |
aws-region: us-west-2 | |
- name: Download web build artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: web-build | |
path: publish | |
- name: Debug workflow | |
run: pwd;echo;ls -al;echo;ls -al wasm; | |
- name: Publish to S3 | |
run: aws s3 sync --delete . ${{ secrets.AWS_WILD_THYME_S3BUCKET }} | |
- name: Add Cloudfront invalidation | |
run: aws cloudfront create-invalidation --distribution-id ${{ secrets.AWS_WILD_THYME_CLOUDFRONT_ID }} --paths "/*" --no-cli-pager |