Git

Git - This is gonna take a while!
Advertisement

Git

Everything you will need to prepare for git!


Github

Github Notes

These are the notes for utilizing Github at an organizational level, with links/reference point to various modules/actions within the github eco-system.

Github Labels

KBVE Default Labels are located here , referenced as, https://github.com/organizations/KBVE/settings/repository-defaults , swap out KBVE with your organizational slug.

Github Actions

Github Actions are yaml files that help automate repetitive tasks with low-level intelligence / variables.

Github Itch

Github Action - Itch.io Publish

Example Github Itch Workflow:

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 }}

Github Unity Test Runner

Here is the Game-CI Test Runner updated to v2.1.0, the notation/tab spacing might be off.


- 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/[email protected]
        if: always()
        with:
            name: Test results (all modes)
            path: ${{ steps.testRunner.outputs.artifactsPath }}
    

Github GoDot Actions


GitLab

Gitlab Information


Plastic SCM

For Plastic SCM / Git Integration, we will be using Plastic SCM's Git Server https://www.plasticscm.com/gitserver.

-------------------------
tcp.port=9418
export.repo=quake
-------------------------

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.

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
Advertisement