Upload to Wavedash with GitHub Actions

Home Edit


This post goes over how to upload and publish a web game to Wavedash with remarkablegames/wavedash-action and GitHub Actions.

GitHub Actions

To upload your game to Wavedash with GitHub Actions, use wavedash-action:

# .github/workflows/wavedash.yml
name: Upload to Wavedash
on: push
jobs:
  wavedash-upload:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v7

      # Build your web game...

      - name: Upload to Wavedash
        uses: remarkablemark/wavedash-action@v1
        with:
          token: ${{ secrets.WAVEDASH_TOKEN }}

The WAVEDASH_TOKEN is your Wavedash API key. Generate one and add it to your repository’s Settings > Secrets and variables > Actions.

If you don’t already have a wavedash.toml, the action will create one for you and inject the Wavedash SDK into your entrypoint HTML as long as you provide game-id, upload-dir, and entrypoint. The generated file looks like:

# wavedash.toml
game_id = "YOUR_GAME_ID_HERE"
upload_dir = "./dist"
entrypoint = "index.html"

Example

Using an example workflow where:

  • build is located at the dist folder
  • game ID is YOUR_GAME_ID_HERE
  • entrypoint is index.html
  • build message is the release tag

The workflow job is:

wavedash:
  needs: release
  if: ${{ needs.release.outputs.release_created }}
  runs-on: ubuntu-latest

  steps:
    - name: Checkout repository
      uses: actions/checkout@v7

    # Build your web game...

    - name: Upload to Wavedash
      uses: remarkablemark/wavedash-action@v1
      with:
        token: ${{ secrets.WAVEDASH_TOKEN }}
        game-id: YOUR_GAME_ID_HERE
        upload-dir: dist
        entrypoint: index.html
        build-message: ${{ needs.release.outputs.tag_name }}

To publish the build immediately, add publish: true:

-   - name: Upload to Wavedash
+   - name: Upload and publish to Wavedash
      uses: remarkablemark/wavedash-action@v1
      with:
        token: ${{ secrets.WAVEDASH_TOKEN }}
        game-id: YOUR_GAME_ID_HERE
        upload-dir: dist
        entrypoint: index.html
        build-message: ${{ needs.release.outputs.tag_name }}
+       publish: true
+       publish-title: ${{ needs.release.outputs.tag_name }}
+       publish-fixed: |
+         Fixed fullscreen sizing
+         Fixed input timing

The inputs publish-title and publish-fixed are optional but they allow you to add release notes.

Inputs and outputs

The most useful inputs are:

  • token: your required Wavedash API key
  • game-id, upload-dir, and entrypoint: used to auto-create wavedash.toml when it’s missing
  • sdk-version: sets the Wavedash SDK version injected into the entrypoint HTML
  • build-message: passed to wavedash build push
  • publish: publishes the uploaded build when set to true
  • publish-title, publish-summary, publish-added, publish-removed, publish-fixed, and publish-adjusted: optional release notes passed to wavedash publish

And the outputs are:

  • build-id and playtest-url: returned by wavedash build push
  • published: is true if the build was published

Resources