Skip to content

Integration Test runs on ubuntu-latest #1

Integration Test runs on ubuntu-latest

Integration Test runs on ubuntu-latest #1

# Copyright (c) 2021-2023 Koji Hasegawa.
# This software is released under the MIT License.
name: Integration Test
run-name: ${{ github.workflow }} runs on ${{ github.event.inputs.runner }}
on:
workflow_dispatch:
inputs:
runner:
type: choice
description: Runner
options: # see: https://buildjet.com/for-github-actions/docs/runners/hardware
- ubuntu-latest
- buildjet-2vcpu-ubuntu-2204
- buildjet-4vcpu-ubuntu-2204
- buildjet-8vcpu-ubuntu-2204
- buildjet-16vcpu-ubuntu-2204
- buildjet-32vcpu-ubuntu-2204
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.inputs.runner }}
cancel-in-progress: true
jobs:
test:
runs-on: ${{ github.event.inputs.runner }}
permissions:
contents: read
checks: write
strategy:
fail-fast: false
matrix:
unityVersion: # Available versions see: https://game.ci/docs/docker/versions
- 2019.4.40f1
- 2020.3.48f1
- 2021.3.26f1
- 2022.3.4f1
- 2023.1.2f1
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
submodules: false
lfs: false
- uses: buildjet/cache@v3
with:
path: Library
key: Library-${{ matrix.unityVersion }}
restore-keys: |
Library-
- name: Set coverage assembly filters
run: |
assemblies=$(find ./Packages -name "*.asmdef" | sed -e s/.*\\//\+/ | sed -e s/\\.asmdef// | sed -e s/^.*\\.Tests//)
assemblies+=("+LocalPackageSample*")
# shellcheck disable=SC2001,SC2048,SC2086
echo "assembly_filters=+<assets>,$(echo ${assemblies[*]} | sed -e s/\ /,/g),-*.Tests" >> "$GITHUB_ENV"
- name: Set license secret key
run: echo "secret_key=UNITY_LICENSE_$(echo ${{ matrix.unityVersion }} | cut -c 1-4)" >> "$GITHUB_ENV"
- name: Run tests
uses: game-ci/unity-test-runner@v2
with:
githubToken: ${{ secrets.GITHUB_TOKEN }}
unityVersion: ${{ matrix.unityVersion }} # Default is `auto`
checkName: test result (${{ matrix.unityVersion }})
customParameters: -testCategory "Integration"
coverageOptions: generateAdditionalMetrics;generateTestReferences;generateHtmlReport;generateAdditionalReports;dontClear;assemblyFilters:${{ env.assembly_filters }}
# see: https://docs.unity3d.com/Packages/com.unity.testtools.codecoverage@1.2/manual/CoverageBatchmode.html
env:
UNITY_LICENSE: ${{ secrets[env.secret_key] }}
id: test
- name: Upload test results
uses: actions/upload-artifact@v3
with:
name: TestResults-Unity${{ matrix.unityVersion }}
path: |
${{ steps.test.outputs.artifactsPath }}
${{ steps.test.outputs.coveragePath }}
if: always()
notify:
needs: test
runs-on: ubuntu-latest
permissions:
actions: read
if: always()
steps:
- uses: Gamesight/slack-workflow-status@v1.2.0
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }}