101 lines
3.2 KiB
YAML
101 lines
3.2 KiB
YAML
name: unity-test
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- develop
|
|
tags:
|
|
- "!*"
|
|
pull_request:
|
|
types:
|
|
- opened
|
|
- synchronize
|
|
|
|
jobs:
|
|
unity-test:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
unity:
|
|
[
|
|
"2018.3.14f1",
|
|
"2018.4.25f1",
|
|
"2019.1.14f1",
|
|
"2019.2.11f1",
|
|
"2019.3.15f1",
|
|
"2019.4.8f1",
|
|
"2020.1.5f1",
|
|
]
|
|
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
# Use Unity image from https://hub.docker.com/r/gableroux/unity3d/tags
|
|
image: gableroux/unity3d:${{ matrix.unity }}
|
|
|
|
steps:
|
|
# Activate Unity Editor
|
|
- name: Activate Unity Editor
|
|
id: activation
|
|
run: |
|
|
apt-get update > /dev/null
|
|
apt-get install software-properties-common -y > /dev/null
|
|
apt-add-repository ppa:git-core/ppa -y > /dev/null
|
|
apt-get update > /dev/null
|
|
apt-get install git -y > /dev/null
|
|
git clone https://gist.github.com/135c940b45ec4e385861c8711777db7f.git .ulfs
|
|
chmod 755 .ulfs/activate.sh && .ulfs/activate.sh ${{ matrix.unity }}
|
|
|
|
# (On failed activation) Upload unity activation file
|
|
- name: Upload unity activation file
|
|
uses: actions/upload-artifact@v2
|
|
if: failure()
|
|
with:
|
|
name: Unity_v${{ matrix.unity }}.alf
|
|
path: ./*.alf
|
|
|
|
# Checkout sandbox project
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
ref: "sandbox"
|
|
submodules: "true"
|
|
|
|
# Update package submodule
|
|
- name: "Update package submodule"
|
|
working-directory: Packages/dev
|
|
run: git checkout ${{ github.head_ref }}
|
|
|
|
# Install codecoverage package
|
|
- name: "Install codecoverage package"
|
|
if: always() && steps.activation.conclusion == 'success'
|
|
run: |
|
|
[ -n "`echo ${{ matrix.unity }} | grep -e '\(2017.\|2018.\|2019.1.\|2019.2.\)'`" ] && exit 0
|
|
npm i -g openupm-cli
|
|
openupm add com.unity.testtools.codecoverage
|
|
|
|
# Run playmode tests
|
|
- name: "Run playmode tests"
|
|
if: always() && steps.activation.conclusion == 'success'
|
|
run: |
|
|
xvfb-run --auto-servernum --server-args='-screen 0 640x480x24' \
|
|
/opt/Unity/Editor/Unity -batchmode -nographics -silent-crashes -logFile -projectPath . \
|
|
-runTests -testPlatform playmode -enableCodeCoverage
|
|
|
|
# Run editmode tests
|
|
- name: "Run editmode tests"
|
|
if: always() && steps.activation.conclusion == 'success'
|
|
run: |
|
|
xvfb-run --auto-servernum --server-args='-screen 0 640x480x24' \
|
|
/opt/Unity/Editor/Unity -batchmode -nographics -silent-crashes -logFile -projectPath . \
|
|
-runTests -testPlatform editmode -enableCodeCoverage
|
|
|
|
# Setup testspace
|
|
- uses: testspace-com/setup-testspace@v1
|
|
if: always() && steps.activation.conclusion == 'success'
|
|
with:
|
|
domain: ${{ github.repository_owner }}
|
|
|
|
# Push test results
|
|
- name: Push test results
|
|
if: always() && steps.activation.conclusion == 'success'
|
|
run: testspace "[${{ matrix.unity }}]TestResults-*.xml" "[Code Coverage]CodeCoverage/**/TestCoverageResults_*.xml"
|