Skip to content

Create standardized CI helpers for community modules #180

@acoates-ms

Description

@acoates-ms

Introduction

As the community expands we want to ensure that community modules can provide the highest quality features in a reliable way. More repositories have a need to setup and maintain CI loops and testing infrastructure for community modules, additional platforms, and the core project itself to provide this reliability.

We need to develop some standard helpers so that these projects can benefit from shared work and all get the best testing without having everyone invest huge amounts of time investing and maintaining these solutions.

The Core of It

Various things that would be useful to have solutions for:

  • A package, or set of packages that provide scripts that can test community JS modules
  • A package, or set of packages that provide scripts that can test community native modules modules
  • Solutions for testing iOS, Android and additional out of tree platforms such as Windows and MacOS.
  • Tests auto-linking and E2E running of native modules and view managers on a new app
  • Tests for bundle size, memory usage other performance metrics and trends
  • Tests to target multiple versions of RN
  • Tests to verify upgrade scenarios
  • Documentation and best practices on what testing should be done and how to setup CI.
  • Other tests that we work out over time that would be useful to use more broadly.

Discussion points

While additional helpers could be CI infra dependent the core scripts should be agnostic to running in GitHub Actions, CircleCI, AzureDevOps etc.

I recognize this is very light on details. For now lets get some input on what kinds of testing we should try to standardize, what tools to use. Whats working for people, whats not. And general thoughts on how best to achieve this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    🗣 DiscussionThis label identifies an ongoing discussion on a subject

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions