Information
Everything you will need to prepare for git!
Github
Github Actions
Github Actions are yaml files that help automate repetitive tasks with low-level intelligence / variables.
Itch
Github Action for deploying the application build onto the Itch platform!
Github Action - Itch.io Publish
Example Github Itch Workflow below! (Tabs might be out of sync!)
KikimoraGames Example YAML:
name: Itch Deploy
on: push
env:
ITCH_USERNAME: my-itch-username
ITCH_GAME_ID: my-itch-game-id
jobs:
deploy:
name: Upload to Itch
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
channel:
- windows
- webgl
runs-on: ubuntu-latest
name: Deploy - Itch.io ${{ matrix.template }}
steps:
- uses: actions/[email protected]
with:
name: ${{ matrix.channel }}
path: build/${{ matrix.channel }}
- uses: KikimoraGames/[email protected]
with:
butlerApiKey: ${{secrets.BUTLER_API_KEY}}
gameData: ./build/${{ matrix.template }}
itchUsername: ${{env.ITCH_USERNAME}}
itchGameId: ${{ env.ITCH_GAME_ID }}
buildChannel: ${{ matrix.channel }}
buildNumber: ${{ needs.version.outputs.version_hash }}
Remember to add your secrets, BUTLER_API_KEY
, before deploying to Itch.
You can grab the BUTLER_API_KEY
from Itch via API Keys , which will allow Github Actions to communicate with Itch.io’s API.
KBVE Example:
name: Itch KBVE Deploy
on: push
env:
ITCH_USERNAME: kbve
ITCH_GAME_ID: my-itch-game-id
jobs:
deploy:
name: Upload to Itch
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
channel:
- windows
- webgl
runs-on: ubuntu-latest
name: Deploy - Itch.io ${{ matrix.template }}
steps:
- uses: actions/[email protected]
with:
name: ${{ matrix.channel }}
path: build/${{ matrix.channel }}
- uses: KikimoraGames/[email protected]
with:
butlerApiKey: ${{secrets.BUTLER_API_KEY}}
gameData: ./build/${{ matrix.template }}
itchUsername: ${{env.ITCH_USERNAME}}
itchGameId: ${{ env.ITCH_GAME_ID }}
buildChannel: ${{ matrix.channel }}
buildNumber: ${{ needs.version.outputs.version_hash }}
Unity
Here is an Unity Test Runner as a Github Action!
- uses: game-ci/[email protected]
id: testRunner
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
with:
projectPath: ${{ matrix.projectPath }}
unityVersion: ${{ matrix.unityVersion }}
githubToken: ${{ secrets.GITHUB_TOKEN }}
customParameters: '-nographics'
- uses: actions/upload-artifact@v2
if: always()
with:
name: Test results (all modes)
path: ${{ steps.testRunner.outputs.artifactsPath }}
- Remember that you will need a valid Unity license for this action!
GoDot
A couple quick references to github actions for GoDot!
-
Github Actions via godot-ci
-
Github Actions HTML5 Workflow Gist by doctor-g
Gitlab
SubModules
These are notes and guides on how to build out submodules inside of Git, so that you can control certain plugins throughout multiple repos effortlessly. This can go into private packages later on, if we need to.
The shift to the private packages will come as we grow bigger and require more control.
Submodule Symbolic Link
These are notes on how to symbolic link multiple directories without having to run into issues.
KBVE Module Example
Suppose we have already added our submodule for an Unity project, via KBVE/UnitySubModule
and wanted to link them into our source, well this is how:
Create a folder inside of Assets
named Plugins
and then cd into it:
Example of the shell, do not copy and paste, make sure you read through the commands and swap out the right variables!
cd ./unityRootProject
cd ./Assets
mkdir Plugins
cd ./Plugins
Once inside the Plugins
folder, we can execute the symbolic link using the ln
command, like this:
ln -s ../../submodules/UnitySubModules/Vuplex