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 on 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: remarkablegames/wavedash-action@v2
        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 have a wavedash.toml, the action will create one for you when you provide game-id. The generated config looks like:

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

The action also injects an init script into your entrypoint unless your game already calls it.

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: remarkablegames/wavedash-action@v2
      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: remarkablegames/wavedash-action@v2
      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 & Outputs

See the action’s inputs and outputs.

Resources