Github Actions composite action repository.
Snippet
build-windows:
runs-on: ubuntu-latest
container:
image: ghcr.io/bend-n/godot-2d:3.5
name: Build windows
steps:
- name: Build
uses: bend-n/godot-actions/.github/actions/export-windows@main
env:
NAME: ${{ github.event.repository.name }}
Full example
Note This is a copy of godot-template/.github/workflows/export.yml
name: "export" # name of the workflow
on: # when it is triggered
workflow_dispatch: # manually or
push: # on a push
branches:
- main # to this branch
paths: # with modifications to these files
- "**.gd" # all gdscript files
- "**.tscn" # scene files
- "**.import" # this means a png changed
- "**.tres" # godot resources
- "**.ttf" # fonts in godot3 dont have their own .import
- ".github/workflows/export.yml" # this workflow
- "export_presets.cfg" # the export template
jobs: # the things to do
export: # a thing to do
uses: bend-n/godot-actions/.github/workflows/callable-export.yml@main
with: # variables
image: ghcr.io/bend-n/godot-2d:3.5 # the container to use
export-name: ${{ github.event.repository.name }} # the name of the exec. ($export-name.exe)
platforms: "windows linux web android mac" # space seperated list of platforms to build
project-root-path: "." # the directory that project.godot is in
github-pages: "true" # to deploy to github pages or not (anything besides 'true' == false)
itch-path: "${{ github.repository_owner }}/${{ github.event.repository.name }}" # required for itch.io deployment.
secrets: # secrets
butler-api-key: ${{ secrets.BUTLER_CREDENTIALS }} # required for itch.io deployment
android-keystore-base64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} # for signing the apk, not required
android-keystore-password: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} # ditto
Note If script is not compiled, it must contain a shebang
Create a file ./.github/post_export
that will be run after installation. The executable will be run with a argument, containing the platform. (eg: ./.github/post_export linux
)
Bash example:
#!/bin/bash
[[ $1 == "web" ]] && wget -nv "example.org" -O build/web/example.html
A pre_export
file is also supported.