We use GitOps and CI/CD to manage the Version Stream.
As new packages or charts are released we generate Pull Requests on the jenkins-x/jenkins-x-versions git repository. We then trigger our BDD tests via jx step bdd and verify the new chart/package version works before merging changes. Currently we manually trigger the BDD tests via a comment of /test this - but we hope to move to periodic triggering of the BDD tests (e.g. once per day).
Pull Request approvers can also choose to run their own manual tests on Pull Requests if they want.
If you are the maintainer of an upstream chart that is used by Jenkins X it would be awesome to add this command at the end of your release pipeline to generate a Pull Request for us to upgrade Jenkins X to use your new release (after the BDD tests have run to verify things still work):
jx step create version pr -n mychartName -v 1.2.3
where mychartName is the fully qualified chart name using the remote repository prefix. e.g. jenkins-x/prow is the name of the prow chart maintained in the jenkins-x chart repository.
Its not always easy/possible to update upstream pipelines to push version changes to Jenkins X via a Pull Request. So you can setup a periodic job to check for version upgrades for all charts or charts matching some kind of wildcard.
e.g. to upgrade the versions of all the jenkins-x maintained charts you can run this command:
jx step create version pr -f "jenkins-x/*"
Running the BDD tests
From a git clone of master or a Pull Request you can run the BDD tests against the Pull Requests version combination by using the jx step bdd command and specifying --dir . for the directory of the clone.