Build Assetbundles
- action build-assetbundles
Build a Unity assetbundle
Example
- uses: KSPModdingLibs/KSPBuildTools/.github/actions/build-assetbundles@0.0.3-alpha.4 with: project-dir: .
Inputs
- input unity-version
- Default:
2019.4.18f1
Full unity version name to build with. e.g.
2019.4.18f1
- input project-dir
Location of the Unity project root (The folder that contains
Assets) relative to the github workspace
- input asset-files
Glob of assets to bundle. Mutually exclusive with
project-dir
- input assetbundle-name
Name of the assetbundle to generate. Mutually exclusive with
project-dir
- input output-dir
- Default:
Bundle
Destination for built assetbundles
- input build-method
- Default:
KSPBuildTools.AssetBundleBuilder.BuildBundles
Method to call to build the assetbundles. Uses a builtin build script with sensible values by default
Environment Variables
- env UNITY_LICENSE
The contents of your Unity license file. Store this as a secret
- env UNITY_EMAIL
The address used for your Unity account
- env UNITY_PASSWORD
The password for your Unity account. Store this as a secret
Usage
Activation
The Unity editor requires a login to function, even with the free edition. You will have to make some repository secrets in order to allow Unity to function. Follow the instructions in the GameCI documentation to set these up.
Using a Unity project
If your repo has a complete Unity project already checked in, you can point the action at it and have it build all your defined asset bundles.
- uses: KSPModdingLibs/KSPBuildTools/docs/.github/actions/build-assetbundles@0.0.3-alpha.4
with:
project-dir: MyUnityProject
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
Using a list of assets
Alternatively, you can give the action an assetbundle name and a list of assets to compile, and it will create a temporary project in order to compile them
- uses: KSPModdingLibs/KSPBuildTools/docs/.github/actions/build-assetbundles@0.0.3-alpha.4
with:
assetbundle-name: mybundle.shab
asset-files: MyAssets/*.shader MyAssets/*.cginc
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
Build Method
By default, this action will use the KSPBuildTools.KSPBuildTools.AssetBundleBuilder.BuildBundles build method. This function calls on the Unity build pipeline to build your assetbundles. If you need, you can provide your own custom build function and call it with the build-method input.