Giter VIP home page Giter VIP logo

build-godot-action's Introduction

Release Version Test Action

Build Godot Project

This action builds the godot project in your $GITHUB_WORKSPACE, so that you can easily automate builds.

Table of Contents:

Quickstart

Step 1: Configure Export Presets

In Godot create export templates for linux, windows, and mac.

The name of the Windows export would be of type Windows Desktop and have the name windows. For Mac, the name would mac and type Mac OSX. Then for linux, Linux/X11

Once you verify that export_presets.cfg is located in the same directory as your project.godot file, you can push your changes.

Step 2: Setup Worfklow on GitHub

Add the following workflow file to your repository. An example file name would be .github/workflows/build.yml

name: Build Godot Project

on:
  push: {}
  pull_request: {}

jobs:
  Godot:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        platform: [linux, windows, mac]
    steps:
      - uses: actions/checkout@v2
        with:
          lfs: true
      - name: Build
        id: build
        uses: manleydev/[email protected]
        with:
          name: example
          preset: ${{ matrix.platform }}
          debugMode: "true"
      - name: Upload Artifact
        uses: actions/upload-artifact@v2
        with:
          name: Client - ${{ matrix.platform }}
          path: ${{ github.workspace }}/${{ steps.build.outputs.build }}

Workflow Explaination

This workflow has three steps:

  • Checkout: The Checkout step clones the project on the GitHub actions runner.
  • Build: This step uses this action to build the Godot project.
  • Upload Artifact: The Upload Artifact step uploads the output from the build step.

Matrix Explaination: The matrix object runs the job for EACH possible value. So in this job, we are using a platform matrix to automatically run our workflow for the values linux, windows, and mac.

Simple Changes

Change Exports

In this workflow, since it's using a matrix you can just add or remove export names from the platform matrix. The value being passed MUST have the same name as the preset.

  Godot:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        platform: [win32, win64] # This project will only export using the export presets `win32` and `win64`

Additionally if you are not using a matrix, you can set the export preset as the parameter preset:

      - name: Build
        id: build
        uses: manleydev/[email protected]
        with:
          name: example
          preset: win32
Change Project Name

To change the export name, you can the name parameter to whatever you want your project to export as.

      - name: Build
        id: build
        uses: manleydev/[email protected]
        with:
          name: test # This project will export with the name "test"
Disable Debug Mode

This example is set to build with debug mode enable. To disable debug, either set debugMode to false or remove the field entirely.

      - name: Build
        id: build
        uses: manleydev/[email protected]
        with:
          name: example
          preset: ${{ matrix.platform }}
          debugMode: "false" # This project will not build in debug mode
Change Project Directory

If your project is located in a subdirectory, you can use the projectDir to change build directories.

      - name: Build
        id: build
        uses: manleydev/[email protected]
        with:
          name: example
          preset: ${{ matrix.platform }}
          projectDir: "test" # The project in the `test` directory will be built

Step 3: Test your workflow!

Now, whenever you make a push or pull request in that repository, GitHub Actions will build . You see and download your project in the Actions tab of your repository.

Usage

This action will create a build folder an outputed build. You must have the export preset configured for the target platform to successfully export.

Example:

steps:
- uses: manleydev/build-godot-action@[VERSION]
  with:
    name: godot-project
    preset: HTML5

Inputs

name required

The name of the exported package/binary

preset required

The name of the preset found in `export_presets.cfg` you would like to build.

subdirectory

*Optional*

The subdirectory in the `build` folder to output build to, can be useful for self packaging.

package

*Optional*

Boolean value, when set to true, builds artficat zip file.

projectDir

*Optional*

Directory in workspace containing your godot project.

debugMode

*Optional*

Boolean value, when set to true, runs export in debug mode.

Outputs

build

The location the outputed build is placed relative to GitHub Workspace.

artifact

The location the outputed artifact is placed relative to GitHub Workspace.

build-godot-action's People

Contributors

yeslayla avatar tadaboody avatar stoneddiscord avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.