107 lines
3.9 KiB
YAML
107 lines
3.9 KiB
YAML
version: 2.1
|
|
executors:
|
|
unity:
|
|
# https://hub.docker.com/r/gableroux/unity3d/tags
|
|
parameters:
|
|
version: {type: string}
|
|
docker:
|
|
- image: gableroux/unity3d:<< parameters.version >>
|
|
go:
|
|
docker:
|
|
- image: circleci/golang
|
|
commands:
|
|
unity_activate:
|
|
parameters:
|
|
unity_version: {type: string}
|
|
unity_license: {type: string}
|
|
steps:
|
|
# get activation file, if fail to activate unity, use this key and activate from https://license.unity3d.com/manual
|
|
- run: apt update && apt install libunwind8 -y
|
|
- run: /opt/Unity/Editor/Unity -quit -batchmode -nographics -logFile -createManualActivationFile || exit 0
|
|
- run: cat Unity_v<< parameters.unity_version >>.alf
|
|
# get from UNITY_LICENSE envvar(base64 encoded(cat foo.ulf | base64 )), this file is generated from above manual activation
|
|
- run: echo << parameters.unity_license >> | base64 -di >> .circleci/Unity.ulf
|
|
- run: /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -manualLicenseFile .circleci/Unity.ulf || exit 0
|
|
jobs:
|
|
build-and-test:
|
|
parameters:
|
|
unity_version: {type: string}
|
|
unity_license: {type: string}
|
|
executor:
|
|
name: unity
|
|
version: << parameters.unity_version >>
|
|
steps:
|
|
- checkout
|
|
- unity_activate:
|
|
unity_version: << parameters.unity_version >>
|
|
unity_license: << parameters.unity_license >>
|
|
- run:
|
|
name: Build Linux(Mono)
|
|
command: /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -projectPath . -executeMethod UnitTestBuilder.BuildUnitTest /headless /ScriptBackend Mono2x /BuildTarget StandaloneLinux64
|
|
working_directory: .
|
|
# TODO:check unity version and packages...
|
|
# - run: ./bin/UnitTest/StandaloneLinux64_Mono2x/test
|
|
build-and-create-package:
|
|
parameters:
|
|
unity_version: {type: string}
|
|
unity_license: {type: string}
|
|
executor:
|
|
name: unity
|
|
version: << parameters.unity_version >>
|
|
steps:
|
|
- checkout
|
|
- unity_activate:
|
|
unity_version: << parameters.unity_version >>
|
|
unity_license: << parameters.unity_license >>
|
|
- run:
|
|
name: Export unitypackage
|
|
command: /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -projectPath . -executeMethod PackageExporter.Export
|
|
working_directory: .
|
|
- store_artifacts:
|
|
path: ./UniRx.Async.unitypackage
|
|
destination: /UniRx.Async.unitypackage
|
|
# upload to github by ghr
|
|
upload-github:
|
|
executor: go
|
|
steps:
|
|
- attach_workspace:
|
|
at: .
|
|
- run: go get github.com/tcnksm/ghr
|
|
- run: ghr -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} ${CIRCLE_TAG} .
|
|
- store_artifacts:
|
|
path: UniRx.Async.unitypackage
|
|
destination: UniRx.Async.unitypackage
|
|
workflows:
|
|
version: 2
|
|
build-unity:
|
|
jobs:
|
|
# does not exists yet.
|
|
# - build-and-test:
|
|
# unity_version: 2019.3.0a2
|
|
# unity_license: ${UNITY_LICENSE_2019_3}
|
|
# - build-and-test:
|
|
# unity_version: 2019.2.0b2
|
|
# unity_license: ${UNITY_LICENSE_2019_2}
|
|
- build-and-create-package:
|
|
unity_version: 2019.1.2f1
|
|
unity_license: ${UNITY_LICENSE_2019_1}
|
|
- build-and-test:
|
|
unity_version: 2019.1.2f1
|
|
unity_license: ${UNITY_LICENSE_2019_1}
|
|
# test asmdef will not found.
|
|
# - build-and-test:
|
|
# unity_version: 2018.4.0f1
|
|
# unity_license: ${UNITY_LICENSE_2018_4}
|
|
# # UniTask minimum support version is 2018.3(C# 7.x)
|
|
# - build-and-test:
|
|
# unity_version: 2018.3.12f1
|
|
# unity_license: ${UNITY_LICENSE_2018_3}
|
|
- upload-github:
|
|
requires:
|
|
- build-and-test
|
|
- build-and-create-package
|
|
filters:
|
|
tags:
|
|
only: /^\d\.\d\.\d.*/
|
|
branches:
|
|
ignore: /.*/ |