Skip to content

Build armory projects in github workflows

Notifications You must be signed in to change notification settings

armory3d/armory_gh_actions

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

Armory3D Github Actions

This action sets up a armory3d environment to build projects in your github workflows.

Usage

See action.yml

Inputs

Name Description Required Default
blend Main blend file Yes
build Build exporter name No The active armory exporter
publish Publish exporter name No The active armory exporter
blender Blender version (snap) No 3.3lts/stable
armsdk_url URL of to the armsdk repository No https://github.com/armory3d/armsdk
armsdk_ref Named branch, tag, or SHA of the armsdk repository No main

Either build or publish must be given the name of an exporter preset defined in Render Properties - Armory Exporter. It can have any name, but is most likely named after the build target.

Outputs

Name Description Default
code Exit code
time Duration ms
result stdout data
error stderr data

See: .github/workflows/empty-project.yml

Publish project

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Publish
        uses: armory3d/[email protected]
        with:
          blend: awesome.blend # Main blend file
          publish: html5 # Name of the armory exporter

Custom blender, armsdk version

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Publish
        uses: armory3d/[email protected]
          with:
            blend: awesome.blend # Main blend file
            publish: linux # Name of the armory exporter
            blender: latest/candidate  # Blender snap package version
            armsdk_ref: 22.09 # Armsdk version

Cache armsdk to speedup builds, print build results

jobs:
  build:
    runs-on: ubuntu-latest
    env:
      armsdk_version: 22.09
    steps:
      - uses: actions/checkout@v3
      - name: Cache armsdk
        uses: actions/cache@v2
        env:
          armsdk-cache-version: ${{ env.armsdk_version }}
        with:
          path: _armsdk_
          key: armsdk-cache-${{ env.armsdk-cache-version }}
      - name: Build
        id: awesome
        uses: armory3d/[email protected]
        with:
          blend: awesome.blend
          publish: html5
          armsdk_ref: ${{ env.armsdk_version }}
      - name: Result
        run: |
          echo "Code: ${{ steps.awesome.outputs.code }}"
          echo "Time: ${{ steps.awesome.outputs.time }}"

test