Compare commits

...

8 Commits

4 changed files with 42 additions and 16 deletions

View File

@@ -1,28 +1,38 @@
name: Github Pages name: Github Pages
on: [push] on: [push]
permissions: permissions:
contents: write contents: write
jobs: jobs:
build-github-pages: deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions:
pages: write
id-token: write
steps: steps:
- uses: actions/checkout@v2 # repo checkout - uses: actions/checkout@v2 # repo checkout
- uses: mymindstorm/setup-emsdk@v11 # setup emscripten toolchain - uses: mymindstorm/setup-emsdk@v11 # setup emscripten toolchain
with: with:
version: 1.39.20 version: 1.39.20
- uses: actions-rs/toolchain@v1 # get rust toolchain for wasm - uses: actions-rs/toolchain@v1 # get rust toolchain for wasm
with: with:
toolchain: stable toolchain: stable
target: wasm32-unknown-emscripten target: wasm32-unknown-emscripten
override: true override: true
# TODO: Update to v2
- name: Rust Cache # cache the rust build artefacts - name: Rust Cache # cache the rust build artefacts
uses: Swatinem/rust-cache@v1 uses: Swatinem/rust-cache@v1
- name: Build # build - name: Build # build
run: ./scripts/build-wasm.sh run: ./scripts/build-wasm.sh
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4 - name: Upload Artifact
uses: actions/upload-pages-artifact@v2
with: with:
folder: dist path: './dist/'
retention-days: 7
- name: Deploy
uses: actions/deploy-pages@v2

7
BUILD.md Normal file
View File

@@ -0,0 +1,7 @@
# Building Pac-Man
## GitHub Actions Workflow
1. Build workflow produces executables & WASM files for all platforms
2. Uploaded as artifacts
3. Deployment workflow downloads artifacts and uploads to GitHub Pages

View File

@@ -3,16 +3,22 @@
<head> <head>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</head> </head>
<style>
body {
margin: 0;
padding: 0;
background: #000;
}
canvas {
display: block;
margin: 0 auto;
background: #000;
}
</style>
<body> <body>
<canvas id="canvas"></canvas> <canvas id="canvas"></canvas>
<script> <script>
var Module = { var Module = {
'locateFile': function (path, prefix) {
if (path.endsWith(".data")) {
return prefix + "deps/" + path;
}
return prefix + path;
},
'canvas': document.getElementById('canvas'), 'canvas': document.getElementById('canvas'),
}; };
</script> </script>

9
scripts/build-wasm.sh Normal file → Executable file
View File

@@ -1,11 +1,14 @@
#!/bin/sh #!/bin/sh
set -eux set -eux
echo "Building WASM with Emscripten"
cargo build --target=wasm32-unknown-emscripten --release cargo build --target=wasm32-unknown-emscripten --release
echo "Copying release files to dist/"
mkdir -p dist mkdir -p dist
cp target/wasm32-unknown-emscripten/release/pacman.wasm dist output_folder="target/wasm32-unknown-emscripten/release"
cp target/wasm32-unknown-emscripten/release/pacman.js dist cp $output_folder/pacman.wasm dist
cp target/wasm32-unknown-emscripten/release/deps/pacman.data dist/deps cp $output_folder/pacman.js dist
cp $output_folder/deps/pacman.data dist
cp assets/index.html dist cp assets/index.html dist