realm-kotlin icon indicating copy to clipboard operation
realm-kotlin copied to clipboard

Add support for Github Actions

Open cmelchior opened this issue 2 years ago • 0 comments

Closes #878

Draft, more information coming

TODO:

  • [ ] Parallize builds.
    • [ ] Be able to build only artifacts required for a specific host machine (Linux, Windows, Android, M1, MacOS)
    • [ ] Including Dokka in publications seems to trigger full builds of native code
    • [ ] Be able to combine and publish JVM artifact with all supported platforms
  • [ ] Verify that we can release to Maven Central
  • [ ] Measure build time to guide optimizations and caching
  • [ ] Support for BAAS testing both on CI and locally
  • [ ] Support for Firebase Device testing on CI and locally.
  • [ ] Rerunning commits does not seem to reuse caches effectively
  • [ ] How to effectively handle installing the NDK
  • [ ] How to effectively cache the output of Core CMake builds?
  • [ ] Is it faster to checkout code on each node or share an artifact?
  • [ ] ....

Dev notes

  • There seems to be a lot of issues sharing logic between jobs. It seems that all approaches have tradeoffs that make them more or less unusable
    • Composite actions have bad logging: https://github.com/orgs/community/discussions/21276
    • Composite actions do not support pre/post steps: https://github.com/actions/runner/issues/1478
    • Reusable workflows cannot call each other: https://docs.github.com/en/actions/using-workflows/reusing-workflows#limitations

cmelchior avatar Jun 08 '22 12:06 cmelchior