101 lines
3.4 KiB
YAML
101 lines
3.4 KiB
YAML
name: unity-project
|
|
description: "Run a Unity command using a project's version and a build target."
|
|
inputs:
|
|
projectPath:
|
|
description: "Path to the Unity project."
|
|
required: true
|
|
default: "."
|
|
platform:
|
|
description: "Unity Platform. Options: windows, windows32bit, mac, linux, android"
|
|
required: true
|
|
serial:
|
|
description: "Unity license serial number. Or 'personal' for a personal license."
|
|
required: true
|
|
default: personal
|
|
email:
|
|
description: "Unity email."
|
|
required: true
|
|
password:
|
|
description: "Unity password."
|
|
required: true
|
|
command:
|
|
description: "Unity command to run."
|
|
required: false
|
|
unityBuilder:
|
|
description: "Whether or not to use the UnityBuilder instead of a Unity command."
|
|
required: false
|
|
noGraphics:
|
|
description: "Whether or not to use the graphics device when running Unity."
|
|
required: false
|
|
default: "true"
|
|
sshPublicKey:
|
|
description: "Public SSH key to use for git package restoration."
|
|
required: false
|
|
sshPrivateKey:
|
|
description: "Private SSH key to use for git package restoration."
|
|
required: false
|
|
downloadKeystore:
|
|
description: "Whether or not to download the keystore for Android builds. Defaults to true if the platform is android."
|
|
required: false
|
|
default: ""
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: "Replace spaces in project path."
|
|
id: path
|
|
run: |
|
|
PROJECT_PATH=${{ inputs.projectPath }}
|
|
PROJECT_PATH=${PROJECT_PATH// /\\ }
|
|
echo "projectPath=$PROJECT_PATH" >> "$GITHUB_OUTPUT"
|
|
|
|
DOWNLOAD_KEYSTORE=${{ inputs.downloadKeystore }}
|
|
if [ -z "$DOWNLOAD_KEYSTORE" ]; then
|
|
shopt -s nocasematch
|
|
if [[ "${{ inputs.platform }}" = "android" ]]; then
|
|
DOWNLOAD_KEYSTORE=true
|
|
else
|
|
DOWNLOAD_KEYSTORE=false
|
|
fi
|
|
shopt -u nocasematch
|
|
fi
|
|
echo "downloadKeystore=$DOWNLOAD_KEYSTORE" >> "$GITHUB_OUTPUT"
|
|
shell: bash
|
|
- name: "Download Keystore."
|
|
if: ${{ steps.path.outputs.downloadKeystore == 'true' }}
|
|
uses: act/common/minio/mc-cp@master
|
|
with:
|
|
alias: minio
|
|
target: minio/artifacts/studiowhy.keystore
|
|
dest: ${{ steps.path.outputs.projectPath }}/studiowhy.keystore
|
|
accessKey: ${{ env.MINIO_ACCESS_KEY }}
|
|
secretKey: ${{ env.MINIO_SECRET_KEY }}
|
|
url: ${{ env.MINIO_URL }}
|
|
- name: "Get Unity Version."
|
|
id: getVersion
|
|
uses: act/unity/unity-get-version@master
|
|
with:
|
|
projectPath: ${{ steps.path.outputs.projectPath }}
|
|
- name: "Get Unity buildTarget."
|
|
id: getTarget
|
|
uses: act/unity/unity-get-buildtarget@master
|
|
with:
|
|
platform: ${{ inputs.platform }}
|
|
- name: "Restore NugetForUnity packages if they exist."
|
|
uses: act/common/dotnet/dotnet-nugetforunity-restore@master
|
|
with:
|
|
projectPath: ${{ steps.path.outputs.projectPath }}
|
|
- name: "Run Unity command."
|
|
uses: act/unity/unity-command@master
|
|
with:
|
|
platform: ${{ inputs.platform }}
|
|
version: ${{ steps.getVersion.outputs.projectVersion }}
|
|
serial: ${{ inputs.serial }}
|
|
email: ${{ inputs.email }}
|
|
password: ${{ inputs.password }}
|
|
sshPublicKey: ${{ inputs.sshPublicKey }}
|
|
sshPrivateKey: ${{ inputs.sshPrivateKey }}
|
|
noGraphics: ${{ inputs.noGraphics }}
|
|
command: -projectPath ${{ steps.path.outputs.projectPath }} -buildTarget ${{ steps.getTarget.outputs.buildTarget }} ${{ inputs.command }}
|
|
unityBuilder: ${{ inputs.unityBuilder }}
|
|
|