Itch.io

Itch.io works by uploading files to a specific project, making them available for users to download or play directly in their browser

Setting up Itchio

In order to deploy int itchio, we need 2 main things. An Api key and a Game.

  1. Login to itchio

  2. Enter the itchio dashboard

    itchio cintext menu
  3. Click new project

    itchio create game
  4. Enter the desired project name

    game name
  5. Click save

Now lets retrieve itchio API key

  1. Enter the itchio settings

    itchio settings menu
  2. Click Api Keys

    itchio apikey

Setting up W4Build

Configuring W4Build for Itch.io is straightforward, you only need to add the API key and the channel name

  1. Open w4build target page

    itchio target config
  2. Click add target, and select itchio

    Add new bucket to storage
  3. Click configure

    Add new bucket to storage
  4. Click configure, and fill out the form with the request values.

    Add new bucket to storage

    Each field is:

    Api Key

    The itchio api key we got from the itchio step setups

    Deploy Channel

    user/game:channel
    
    Where:
    
        user/game is the project you're uploading
            for example: finji/overland for https://finji.itch.io/overland — all lower-case
        channel is which slot you're uploading it to
            for example: windows-beta, osx-bonus, linux-universal, or soundtrack
    

    You can use W4Build variables to dynamically created channels

    Available Variables:
    
    General build variable
    
        ${git_repo}: The git repository url
        ${ref}: The git ref, which is a pointer to a specific commit
        ${event}: The UUID of the event
        ${matrix}: The UUID of the matrix to which the Job belongs
    
    Godot job variables
    
        ${platform}: Linux, windows etc
        ${cpu_architecture}: The architecture that godot is being compiled for
        ${build_target}:
    
    Game Job variables
    
        ${preset_name}: Godot export configuration name
        ${export}: If the game is being exported for Release or Debug
        ${dotnet}: If the exported game is made using dotnet
        ${export_name}: The given export name for the game or job
    
    Example:
    
    myamazingame/game:${export_name}-${preset_name}
    
    will result in
    
    myamazingame/game:tps_demo-window
    
  5. CLick save

Rules

For this deployment, we will deploy all artifacts that are created from a given matrix, therefor we only add one rule that filters by matrix name

  1. Match the matrix

    This means that only files who were created by builds from the given matrix

    Add matrix rule

Important

After each build completes, the deployment process checks if it meets the required rules. If all rules are satisfied, the deployment is initiated. You can also configure deployments to wait for specific events, ensuring that the deployment only begins once all related builds in an event are finished.