Commit Graph

25 Commits (fix/windows-runner-dist-644)

Author SHA1 Message Date
Andrew Kahr ce074787fb
Unity builder v4 Parity Update (#246)
- Updated activation strategy to align with builder strategy for more stable activation with retry logic
- Added `containerRegistryImageVersion` and `containerRegistryRepository` for improved custom image support
- Added `runAsHostUser` to fix self-hosted runner issues
- Scripts folder cleanup
- Added error/warning annotations for activation issues
- Improved serial masking
- Image environment factory addition and docker refactoring
2023-12-12 22:12:36 -08:00
David Finol 8bb2cdbd2c
Update windows images and add docker parameters (#244)
* Update windows images and add docker parameters

* Run yarn-audit-fix
2023-11-04 22:50:09 -05:00
Ely Ronnen 275df9854c
add sshPublicKeysDirectoryPath and GIT_CONFIG_EXTENSIONS parameters that adds git configs and mounts .ssh/config and public keys to the container, in order to allow multiple sh deploy key trick by webplatform@ssh-agent (#240) 2023-09-06 23:35:36 +02:00
Aaron Trudeau 7787abf249
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 commit 22f74ebca7.

* 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 commit 6aa7a6f443.

* 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 commit c0bb008b2c.

* 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 commit bd35ac8f6f.

* TEMP log image in use

* Revert "TEMP log image in use"

This reverts commit 95722dcab4.

* Revert "Revert "remove jq install""

This reverts commit e3bac048b1.

* TEMP list installed packages

* Revert "TEMP list installed packages"

This reverts commit db9c07da38.

* 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 commit 4b2c03069d.

* add assembly filters for coverage

* TEMP console log project folder

* Revert "TEMP console log project folder"

This reverts commit 411ec51817.

* 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 commit 4f12d83889.

* Revert "fix improper bash "if" formatting"

This reverts commit acb975bcea.

* Revert "fix false positive activation file detection"

This reverts commit 580c9c14a0.

* Revert "add logic to copy package to folder without activation file"

This reverts commit b20d994b5d.

* 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 commit 1cba302bc4.

* Revert "add clarification on package mode caveats"

This reverts commit fb62d36ba1.

* Revert "fix documentation and add error message for missing jq"

This reverts commit 0df3ab6b88.

* 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>
2023-07-03 17:09:20 +02:00
Nick Maltbie be0f55d3cf
Added dontClear coverage flag to default coverage options (#202) 2022-12-04 01:21:13 +01:00
simensan 42c28a953e
Add unityLicensingServer to action.yml so warning for input dissapears (#201) 2022-11-29 12:03:21 +01:00
Michal Cichra 698c08cf4e
feat: ensure cleanup of docker containers (#198)
Cancelled or timeouted workflow would keep the docker container running.
Closes game-ci/unity-test-runner#197

This has two parts:

Part one. The entrypoints.

`runs.post`: GitHub Action metadata allow running something after the
action (regardless of a failure, crash, timeout, ...).
https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runspost

However, it needs to be a `.js` file and it can't be configured to pass
any arguments.

There already was `index.js` used as the main entrypoint.
The build process of this file uses typescript compiler and ncc to pack
all dependencies into one .js file. And ncc has no way of generating
multiple files in one go, so the only solution would be to run ncc twice
and generate two independent files.

That would be quite unfortunate, wasting time and storage. So I rather
came up with a new entrypoint that symlinked from two locations.
And this new entrypoint understands how it was executed, so it can run
the correct behaviour. This makes it easy to add `runs.pre` if needed.

This new entrypoint is in `index.ts`. The original `index.ts` is now in
`main.ts`.

Part two.
The signals. I've tried:
* try/catch/finally around the `await Docker.run`. Catch and finally are
  not executed when process receives SIGINT. See the discussion in: https://github.com/nodejs/node/discussions/29480
* New AbortController and AbortSignal. Great concept, but the
  action.exec does not support it. So it can't be aborted.
* Doing cleanup on `process.on('exit')`. Unfortunately you can't really
  do async stuff from there, so can't really run the docker rm command
to delete the container.
* Using `process.on('SIGINT')`. For some reason that wasn't really
  executing for me. I'd not put my hand in fire for this, but I assume
because it was in the signal handler it does something special, or would
heed to be scheduled for later with `setTimeout(0)`.

Evaluating all these I came to a conclusion that it is fragile and just
relying on a `runs.post` is much better and safer.
`
2022-11-03 19:14:51 +01:00
Paul Pacheco 3bffd88e03
upgrade to node 16 (#193)
node12 actions are deprecated.
See documentation here:
https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/

Currently, the unity builder action gives me the following warning:
```
Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: game-ci/unity-test-runner, game-ci/unity-builder
```
2022-10-13 23:19:52 +02:00
Skjalg S. Mæhre 3d5d2f5834
Add chownFilesTo (#187)
* add chownFilesTo

* added missing newline

* added more chownFilesTo
2022-06-24 12:59:01 +02:00
Nick Maltbie d95f760d49
Changed eableCyclomaticComplexity to generateAdditionalMetrics (#183)
* Changed eableCyclomaticComplexity to generateAdditionalMetrics for coverageOptions

* updated codecoverage to version 1.1.1
2022-04-22 01:08:44 +02:00
Nick Maltbie 96562463cf
Code Coverage Support (#182)
* Added basic framework for enable code coverage

* Added basic coverage results building and combination

* fixed ENABLE_CODE_COVERAGE to be `true` or `false`

* Added code coverage project to manifest

* Updated to add more tests for code coverage build

* Updated coverage parameter documentation

* Fixed small syntax error

* Enabled code coverage flag for code coverage tests

* Fixed error in test file build

* Updated project run settings

* Fixed error when creating combined code coverage results

* Updated testing workflows

* updated test workflows

* Updated parameters and added tests

* Updated tests and bash script for running

* Updated run_tests.sh script to simplfy some parameters

* Updated run_tests to remove incorrect ';'

* Updated run_tests script

* Fixed small syntax error

* Fixed for loop in run_tests.sh

* Updated run_tests syntax error for '=' operator

* Fixed runTests variable assignment

* Fixed parameters for running tests via bash

* Corrected bash arguments

* Updated test cases in main.yml

* Updated parameter names and default values for code coverage

* Fixed broken paths for coverage results upload in main.yml

* Corrected names of coverage results artifacts
2022-04-21 10:50:37 +02:00
David Finol cdfccd0aad
Refactor to typescript (#158)
* Refactor to typescript

* Fix platform and workflow

* Fix workflow and platform

* Update husky and image-tag

* Use 'yarn lint-staged' instead of 'npx lint-staged'
2022-01-11 05:52:29 -06:00
David Finol 8a69fc6be3
Sync input with documentation (#155) 2022-01-01 14:38:47 -06:00
Robin 576ef39bb6
add private github package support using personal access token (#152)
* add private github package support using pat

* add index.js after yarn build

* shift gitcrediental step before run_tests
2021-11-03 10:25:06 +01:00
Paul Boocock 19201393f1
useNetworkHost should be useHostNetwork in action.yml (#141) 2021-08-21 15:06:06 +02:00
ivan-hernandez-scopely 19661e2da7
Using SSH_AUTH_SOCK (ssh agent forwarding) to pull upm private repos (#124)
* using SSH_AUTH_SOCK (ssh agent forwarding) to pull upm private repos

* sshAgent as input parameter

* yarn run prettier --write "src/**/*.{js,ts}"

* yarn run lint --fix && yarn build

* reverted results-meta.ts (changed because ran prettier --check "src/**/*.js" without && eslint src)

* removed RUN apt-get update && apt-get install -y openssh-client. This change needs to be done upstream. See game-ci/docker#117
2021-05-28 23:55:58 +02:00
David Finol 215f660c06
Check GitHub token (#99)
* Reeplace createCheck option with check for githubToken

* Fix index.js
2021-02-28 00:44:56 -06:00
David Finol 43d90c252f
Feature/create check (#97) 2021-02-27 12:13:19 -06:00
David Finol 0c3e710069
Get unityVersion from ProjectVersion.txt (#84) 2020-12-28 12:02:31 +01:00
mob-sakai 679222c549 Update action.yml
Co-authored-by: Webber Takken <webber@takken.io>
2020-11-26 14:15:18 +01:00
mob-sakai 29899d84e8 feat: support custom image 2020-11-26 14:15:18 +01:00
Webber Takken 7d26e264b9 Switch to British english. 2020-11-10 18:18:18 +01:00
David LeGare bac0f97d2f Add all parameters to action.yml
The added parameters were already supported but weren't listed, resulting in warnings for projects that use those parameters.
2020-11-10 18:18:18 +01:00
Webber 048c75a66e Add meta files 2020-01-31 01:15:59 +01:00
Webber e083d21f91 Add initial version 2019-11-30 17:24:17 +01:00