mirror of
https://github.com/game-ci/unity-test-runner.git
synced 2026-01-29 06:20:07 +08:00
Add Feature to test Unity Packages (#164)
* (should fail) add jq install to docker image * (might fail) remove rm rf call * move things around to try to fix test * Revert "(might fail) remove rm rf call" This reverts commit22f74ebca7. * remove silent setting from docker test * Fix failing test's Docker image * Add new input and basic test * Add test package; start using jq cli * Use test package in test workflow * Create temporary Unity Project and run tests * Test removing jq install from Dockerfile * Revert "Test removing jq install from Dockerfile" This reverts commit6aa7a6f443. * Remove mkdir call * remove duplicate command * add packageMode option back in * build changes * check for apt-get before installing jq * change apt-get version check message * spelling and documentation fixes * add working example unity package with tests * add temp pwd call to help figure out absolute pathing * fix workflow package location * add jq to add package to temp project packages * try fixing jq calls * clean up jq calls, fix variable expansion * try renaming jq args * try using different arg syntax for jq * try wrapping args in parentheses * try using double quotes only * try changing up quoting * try properly using string interpolation * try removing colon * add string interpolation to key * omit double quotes from jq call to retrieve package name * clean up logging * add rest of workflow tests * Revert "add rest of workflow tests" This reverts commitc0bb008b2c. * add play mode test without cache * add package mode all mode workflow step * add consecutive ppackage mode workflow step * add package mode "like in the readme" test * fix workflow syntax error * try to fix syntax error again * use correct folder * *hopefully actually* use correct package path * try adding caching to "readme" test * remove caching/mentions of caching from package mode tests * fix artifacts paths * fix artifacts pathing and names * fix combined artifacts for package mode * clean up documentation and exit code * clarify allowed docker images for packageMode * update README to mention Unity packages * move package name validation to TS part of action * improve logging for temp project creation failure * make husky hook executable * add error for missing tests folder * update docs to reflect unsupported packages * remove jq install * Revert "remove jq install" This reverts commitbd35ac8f6f. * TEMP log image in use * Revert "TEMP log image in use" This reverts commit95722dcab4. * Revert "Revert "remove jq install"" This reverts commite3bac048b1. * TEMP list installed packages * Revert "TEMP list installed packages" This reverts commitdb9c07da38. * TEMP log project's manifest * add code coverage package to generated project * remove temp project manifest log * add coverage to package mode tests * update name of package coverage steps * add codecoverage dependency to test package * Revert "add codecoverage dependency to test package" This reverts commit4b2c03069d. * add assembly filters for coverage * TEMP console log project folder * Revert "TEMP console log project folder" This reverts commit411ec51817. * add logic to copy package to folder without activation file * fix false positive activation file detection * fix improper bash "if" formatting * TEMP remove conditional for package copying * Revert "TEMP remove conditional for package copying" This reverts commit4f12d83889. * Revert "fix improper bash "if" formatting" This reverts commitacb975bcea. * Revert "fix false positive activation file detection" This reverts commit580c9c14a0. * Revert "add logic to copy package to folder without activation file" This reverts commitb20d994b5d. * run yarn build * move package mode check lower in the file * throw error if unity version is auto in package mode * fix unity version error wording * try deleting activate license file * try logging hidden package files * try deleting all non-package files * fix license activation files deletion * scrap file removals and print dir permissions * log permissions for package folder * Add packageMode inputs to main * fix fs mocks and run yarn build * fix documentation and add error message for missing jq * add clarification on package mode caveats * fix line endings problem (?) * Revert "fix line endings problem (?)" This reverts commit1cba302bc4. * Revert "add clarification on package mode caveats" This reverts commitfb62d36ba1. * Revert "fix documentation and add error message for missing jq" This reverts commit0df3ab6b88. * Redo the input docs fixes * Redo the jq presence test * update readme to indicate package mode caveats * fix wording on coverageOptions * one more wording fix on coverageOptions * move sample package to example.com domain --------- Co-authored-by: Aaron Trudeau <120415438+trudeaua-vividream-software@users.noreply.github.com>
This commit is contained in:
223
.github/workflows/main.yml
vendored
223
.github/workflows/main.yml
vendored
@@ -399,3 +399,226 @@ jobs:
|
||||
name: Test results (combined)
|
||||
path: artifacts/
|
||||
retention-days: 14
|
||||
|
||||
testAllPackageModesLikeInTheReadme:
|
||||
name: Test package mode 📦 in ${{ matrix.testMode }} on version ${{ matrix.unityVersion }}
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
projectPath:
|
||||
- unity-package-with-correct-tests/com.example.testpackage
|
||||
unityVersion:
|
||||
- 2019.2.11f1
|
||||
testMode:
|
||||
- playmode
|
||||
- editmode
|
||||
|
||||
steps:
|
||||
###########################
|
||||
# Checkout #
|
||||
###########################
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
lfs: true
|
||||
|
||||
- uses: ./
|
||||
id: packageTests
|
||||
with:
|
||||
projectPath: ${{ matrix.projectPath }}
|
||||
unityVersion: ${{ matrix.unityVersion }}
|
||||
testMode: ${{ matrix.testMode }}
|
||||
artifactsPath: ${{ matrix.testMode }}-packageArtifacts
|
||||
customParameters: -profile SomeProfile -someBoolean -someValue exampleValue
|
||||
packageMode: true
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: Package test results for ${{ matrix.testMode }}
|
||||
path: ${{ steps.packageTests.outputs.artifactsPath }}
|
||||
retention-days: 14
|
||||
|
||||
testPackageRunnerInAllModes:
|
||||
name: Test package mode in all modes 📦✨
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
projectPath:
|
||||
- unity-package-with-correct-tests/com.example.testpackage
|
||||
unityVersion:
|
||||
- 2019.2.11f1
|
||||
steps:
|
||||
###########################
|
||||
# Checkout #
|
||||
###########################
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
lfs: true
|
||||
|
||||
# Configure test runner
|
||||
- name: Run tests
|
||||
id: packageAllTests
|
||||
uses: ./
|
||||
with:
|
||||
projectPath: ${{ matrix.projectPath }}
|
||||
unityVersion: ${{ matrix.unityVersion }}
|
||||
testMode: all
|
||||
coverageOptions: 'generateAdditionalMetrics;generateHtmlReport;generateBadgeReport;assemblyFilters:+example.testpackage.*,-*Tests*'
|
||||
packageMode: true
|
||||
# Test implicit artifactsPath, by not setting it
|
||||
|
||||
# Upload artifacts
|
||||
- name: Upload test results
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: Package test results (all)
|
||||
path: ${{ steps.packageAllTests.outputs.artifactsPath }}
|
||||
retention-days: 14
|
||||
|
||||
# Upload coverage
|
||||
- name: Upload coverage results
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: Package Coverage results (all)
|
||||
path: ${{ steps.packageAllTests.outputs.coveragePath }}
|
||||
retention-days: 14
|
||||
|
||||
testPackageRunnerInEditMode:
|
||||
name: Test package mode in edit mode 📦📝
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
unityVersion:
|
||||
- 2019.2.11f1
|
||||
projectPath:
|
||||
- unity-package-with-correct-tests/com.example.testpackage
|
||||
steps:
|
||||
###########################
|
||||
# Checkout #
|
||||
###########################
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
lfs: true
|
||||
|
||||
# Configure test runner
|
||||
- name: Run tests
|
||||
id: packageEditMode
|
||||
uses: ./
|
||||
with:
|
||||
projectPath: ${{ matrix.projectPath }}
|
||||
unityVersion: ${{ matrix.unityVersion }}
|
||||
testMode: editmode
|
||||
coverageOptions: 'generateAdditionalMetrics;generateHtmlReport;generateBadgeReport;assemblyFilters:+example.testpackage.*,-*Tests*'
|
||||
artifactsPath: artifacts/packageeditmode
|
||||
packageMode: true
|
||||
|
||||
# Upload artifacts
|
||||
- name: Upload test results
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: Package test results (edit mode)
|
||||
path: ${{ steps.packageEditMode.outputs.artifactsPath }}
|
||||
retention-days: 14
|
||||
|
||||
# Upload coverage
|
||||
- name: Upload coverage results
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: Package Coverage results (edit mode)
|
||||
path: ${{ steps.packageEditMode.outputs.coveragePath }}
|
||||
retention-days: 14
|
||||
|
||||
testPackageRunnerInPlayMode:
|
||||
name: Test package mode in play mode 📦📺
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
projectPath:
|
||||
- unity-package-with-correct-tests/com.example.testpackage
|
||||
unityVersion:
|
||||
- 2019.2.11f1
|
||||
steps:
|
||||
###########################
|
||||
# Checkout #
|
||||
###########################
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
lfs: true
|
||||
|
||||
# Configure test runner
|
||||
- name: Run tests
|
||||
id: packagePlayMode
|
||||
uses: ./
|
||||
with:
|
||||
projectPath: ${{ matrix.projectPath }}
|
||||
unityVersion: ${{ matrix.unityVersion }}
|
||||
testMode: playmode
|
||||
coverageOptions: 'generateAdditionalMetrics;generateHtmlReport;generateBadgeReport;assemblyFilters:+example.testpackage.*,-*Tests*'
|
||||
artifactsPath: artifacts/packageplaymode
|
||||
packageMode: true
|
||||
|
||||
# Upload artifacts
|
||||
- name: Upload test results
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: Package test results (play mode)
|
||||
path: ${{ steps.packagePlayMode.outputs.artifactsPath }}
|
||||
retention-days: 14
|
||||
|
||||
# Upload coverage
|
||||
- name: Upload coverage results
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: Package Coverage results (play mode)
|
||||
path: ${{ steps.packagePlayMode.outputs.coveragePath }}
|
||||
retention-days: 14
|
||||
|
||||
testPackageModeEachModeSequentially:
|
||||
name: Test package mode in each mode sequentially 📦 👩👩👧👦 # don't try this at home (it's much slower)
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
unityVersion:
|
||||
- 2019.2.11f1
|
||||
projectPath:
|
||||
- unity-package-with-correct-tests/com.example.testpackage
|
||||
steps:
|
||||
###########################
|
||||
# Checkout #
|
||||
###########################
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
lfs: true
|
||||
|
||||
# Configure first test runner
|
||||
- name: Test package mode in editmode 📦📝
|
||||
uses: ./
|
||||
with:
|
||||
projectPath: ${{ matrix.projectPath }}
|
||||
unityVersion: ${{ matrix.unityVersion }}
|
||||
testMode: editmode
|
||||
artifactsPath: packageArtifacts/editmode
|
||||
packageMode: true
|
||||
|
||||
# Configure second test runner
|
||||
- name: Test package mode in playmode 📦📺
|
||||
uses: ./
|
||||
with:
|
||||
projectPath: ${{ matrix.projectPath }}
|
||||
unityVersion: ${{ matrix.unityVersion }}
|
||||
testMode: playmode
|
||||
artifactsPath: packageArtifacts/playmode
|
||||
packageMode: true
|
||||
|
||||
# Upload combined artifacts
|
||||
- name: Upload combined test results
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: Package test results (combined)
|
||||
path: packageArtifacts/
|
||||
retention-days: 14
|
||||
|
||||
Reference in New Issue
Block a user