Skip to content

Ayowel/butler-to-itch

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

Butler to Itch

License Latest version

This action installs Butler and uses it to push assets to itch.io

Usage

Your Butler key should be saved as a secret.

Release a project

This example pushes 5 files to Itch, each in a dedicated channel.

# We have the following files in ./build:
# release-linux.tar.gz, release-windows.zip,
# release-mac.zip, java-release.apk
- uses: Ayowel/butler-to-itch@v1
  with:
    butler_key: ${{ secrets.BUTLER_CREDENTIALS }}
    itch_user: Ayowel
    itch_game: renpy-extensions-demo
    version: ${{ github.ref_name }}
    files: |
              build/release-*
      doc    docs/html
      mobile build/java-*

Inputs

Generic parameters:

Parameter Description Default
action Whether to install Butler or to push a file. 'push'
install_dir Install Butler to a custom location. ~/.butler
butler_source Where Butler should be download from. 'https://broth.itch.ovh/butler'

Push parameters:

Parameter Description Default
butler_key Your butler key (see https://itch.io/user/settings/api-keys). ""
itch_user The itch username of the user that distributes the game. ""
itch_game The name of the game in the project's url. ""
version The game's version number. ""
files The files to push to itch. File paths support globing and may start with a channel name. ""
auto_channel If no channel is provided for a file, generate one from the file's name (see "Behavior of auto_channel" below). true

Install parameters:

Parameter Description Default
check_signature Whether to verify the downloaded Butler archive's signature. true
update_path Whether to update the PATH variable to include Butler's install directory. false
butler_version Which Butler version to install. 'latest'

Outputs

Output name Description
install_dir Path to Butler's install directory

Implementation details

Behavior of auto_channel

auto_channel parses the file name to build a channel string.

Channel Matched strings
doc doc, docs, documentation
web web, html, html5
android android, mobile
linux linux, unix, gnu
mac mac, macintosh, macos, macosx, osx
windows win, windows, xp
x32 x32
x64 x64
  • If more than one channel string matches, the resulting channel is all maches separated by a "-".
  • String matching is case-insensitive
  • Strings match only if the string is delimited by ., _, -, or the start of the filename.

Channel names in files

Channel names in the files input field may only contain lowercase alphanumerical characters and hyphens, or they won't be recognized as such.

About

Push files to Itch from GitHub workflows

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 2

  •  
  •