ray-project / ray_beam_runner

Ray-based Apache Beam runner
Apache License 2.0
41 stars 12 forks source link

[batch] Create Foundational CI/CD Workflows #5

Closed pdames closed 1 year ago

pdames commented 2 years ago

We need to create an initial set of basic CI/CD workflows based on GitHub Actions to vet the correctness of critical components of the Ray Beam Runner and guard them against regressions.

The initial deliverable should support running lightweight unit and single-node integration tests within GitHub's free plan usage limits, and minimally requires the creation of a workflow configuration file to determine when and how CI/CD workflows will be initiated for each commit.

Recommended GitHub-hosted runner environments for these workflows (specified in the workflow config's runs on parameter for each job) are, in priority-order:

  1. ubuntu-18.04
  2. macos-10.15
  3. ubuntu-latest
  4. macos-latest
  5. windows-latest (Ray on Windows is currently in Beta)

Our initial workflows should be run against the latest supported Ray release version (currently 1.11.0) and Apache Beam release version (currently 2.37.0), but we should also create dedicated Ray/Beam version compatibility branches to hold changes meant to ensure ongoing CI/CD workflow stability against:

  1. The latest nightly Ray wheels and latest Apache Beam SDK release.
  2. The latest Ray official release and latest Apache Beam SDK release.

Ideally, changes passing CI/CD from branch [1] should be periodically merged into branch [2] (e.g. at commits corresponding to release branch version cuts for Ray), and changes passing CI/CD from branch [2] should be periodically merged into master (e.g. for a new release branch version cut of the Ray Beam Runner).

Workflows that rely on connecting to multi-node clusters for integration testing will be considered as part of a separate issue, and are expected to require dedicated cloud service provider (e.g. AWS, GCP, Azure, etc.) funding to host.

pabloem commented 1 year ago

since we've created these, we can close this issue