realm-kotlin
realm-kotlin copied to clipboard
Add support for Github Actions
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