Open
Description
We want to enable Kibana to always be able to test against the most recent JS client changes. In order to do this, the hope is that we can improve automation around codegen (and RenovateBot upgrades), testing and publishing to npm so that this requires little to no developer effort.
The desired pipeline:
- A PR from an approved "automated" contributor (RenovateBot, elasticmachine, etc) is opened that updates the generated code, dependencies, etc. and has auto-merge enabled
- All required checks on the PR run and succeed
- The PR is either auto-approved, or these contributors are part of an exception group that does not require PR approval
- Auto-merge is triggered and the PR is closed
- package.json tag is automatically updated to some non-stable value (e.g.
9.0.1-beta.3
), probably by a tool like release-please - Version change triggers a job that does a final build/test/release to npm with a non-stable tag (e.g.
beta
)
Several improvements and additions to CI jobs and repo settings will be necessary to do this, including (but not limited to):
- Possible enforcement of conventional commits on all PR merge commits
- PRs from RenovateBot and elasticmachine (codegen PRs) must have auto-merge enabled
- path filtering on GitHub actions needs to be removed to ensure unit tests run on all PRs
- install/configuration of release-please or similar to automate package.json version bump
- GitHub publish action triggers publish to npm when package.json version number changes on
main
- npm publish must always include an appropriate label to ensure the default
latest
label is not used - npm publish needs to run the full unit test suite matrix, not just on Ubuntu
- bonus: automate release notes on GitHub release pages and/or release notes in official docs
- bonus: integration test suite must run and pass (depends on Migrate integration tests to built JS files #2750)