This repository has unit and integration tests for the charts. All charts are also linted.
Linting is done with helm lint
.
Prerequisites:
- Helm
brew install helm
To lint all charts:
make lint
Unit tests are in the ./test
directory and written in Go with terratest.
Prerequisites:
- Go
brew install go
To run the tests:
make test-unit
Integration tests are in the ./test/integration
directory and written with bats.
There is an additional simple Helm test in ./charts/qdrant/templates/tests
.
Prerequisites:
- Docker
- Kind
- Kubectl
- Helm
- Bats
brew install helm kubectl kind bats-core homebrew/cask/docker
To run the tests:
make test-integration
Generally, we choose to release a new chart when there are important new releases to Qdrant or important chart-related changes.
- Check the release notes of qdrant/qdrant to see if any environment variables or other settings need to be adjusted.
- Sync your local clone/fork of the qdrant-helm repo:
git checkout main && git pull
- Checkout a new feature branch:
git checkout -b feat/<name>/qdrant-<version>
- Edit
Chart.yaml
to bump the appVersion and chartVersion. - Edit
Chart.yaml
to updateartifacthub.io/changes
to mention the new changes. - Edit
charts/CHANGELOG.md
, remove the most-recent entry, and add a new one with the same changes you added to Chart.yaml. - Add a new section to the top of the root CHANGELOG.md
- Why so many changelog changes? Each changelog file is for a different audience (artifacthub, chart browsing, github browsing). This could be automated in the future.
- Push your changes to GitHub and create a pull request. This allows the integration tests to run.
As soon as these changes are merged to main, there is a github action that detects changes to Chart.yaml which will perform the remainder of the release operations (creating a github release, publishing the helm chart, updating index.html for the github pages site, etc.)