Skip to content

Latest commit

 

History

History
79 lines (52 loc) · 2.41 KB

CONTRIBUTING.md

File metadata and controls

79 lines (52 loc) · 2.41 KB

Running tests

This repository has unit and integration tests for the charts. All charts are also linted.

Linting

Linting is done with helm lint.

Prerequisites:

  • Helm
brew install helm

To lint all charts:

make lint

Unit tests

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

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

Releasing

Generally, we choose to release a new chart when there are important new releases to Qdrant or important chart-related changes.

  1. Check the release notes of qdrant/qdrant to see if any environment variables or other settings need to be adjusted.
  2. Sync your local clone/fork of the qdrant-helm repo: git checkout main && git pull
  3. Checkout a new feature branch: git checkout -b feat/<name>/qdrant-<version>
  4. Edit Chart.yaml to bump the appVersion and chartVersion.
  5. Edit Chart.yaml to update artifacthub.io/changes to mention the new changes.
  6. Edit charts/CHANGELOG.md, remove the most-recent entry, and add a new one with the same changes you added to Chart.yaml.
  7. Add a new section to the top of the root CHANGELOG.md
    1. 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.
  8. 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.)