docker icon indicating copy to clipboard operation
docker copied to clipboard

Implement system to handle varying platform module names/compatibility across platforms

Open AndrewKahr opened this issue 3 years ago • 1 comments

This serves as an alternative to #150 and game-ci/versioning-backend#39. It adds an additional internal github action to handle issues caused by varying module names and compatibility being added for additional target platforms by Unity. It can mark target platforms as incompatible so the system skips building it, for example, GameCI doesn't provide Android on linux below 2019.3 so the action is set such that Android is incompatible on Linux for any version below 2019.3. This also handles modules being renamed over time. For example, uwp-il2cpp became universal-windows-platform in 2019. The action has a mapping defined such that it knows when universal-windows-platform is requested, and the version of unity is below 2019, it will return the correct module name of uwp-il2cpp for the docker build while it remains universal-windows-platform in GameCI labels to reduce complexity in Unity-Builder. Since there is no clean divide between legacy and postX versions, there would need to be work done in versioning-backend every time we needed a new workflow, and more complexity added when windows and linux compatibility diverge. Having this compatibility action should make it easier to handle new modules being added in later versions without needing to make adjustments to the versioning-backend. Unlike #150 and game-ci/versioning-backend#39, this requires no changes on the versioning-backend for functionality.

Changes

  • Add new internal GitHub Action module-compatibility-handler
  • Make windows editor workflows check the module-compatibility-handler for module naming and whether a specific module is compatible. (The action is also compatible with Linux, we can add support into the workflows later if deemed necessary)
  • Build il2cpp for all versions (This was mistakenly disabled for legacy versions)
  • Ported report-to-backend to typescript and stopped tracking node modules

Checklist

  • [x] Read the contribution guide and accept the code of conduct
  • [x] Readme (updated or not needed)

AndrewKahr avatar Feb 01 '22 01:02 AndrewKahr

Cat Gif

github-actions[bot] avatar Feb 01 '22 01:02 github-actions[bot]