All checks were successful
check-and-test / check-and-test (push) Successful in 51s
### Description of the change This adds an environment for unit testing our bash scripts, using [BATS](https://github.com/bats-core/bats-core). It implements first tests for `config_environment.sh`. ### Benefits Writing unit tests for bash scripts documents the expected behavior and allows it being a quality gate in our CI. ### Possible drawbacks Not everyone is familiar with this approach and unit testing framework. Me neither, it took me some hours to get into it. ### Applicable issues - Related to #691 where an issue in `config_environment.sh` was detected. It doesn't fixes it yet. This will be a dedicated Pull Request. ### Additional information I've verified that the changes for Renovate are indeed working. You may wonder why there is only one `run $PROJECT_ROOT/scripts/init-containers/config/config_environment.sh` and many `run execute_test_script` calls. Usually, testing a script itself would be executing `run $PROJECT_ROOT/scripts/init-containers/config/config_environment.sh`. You then can assert the exit code and other things. Since the `config_environment.sh` exports environment variables and we are not able to access them from outside a `run` execution, the function `execute_test_script` wraps our script execution between environment comparison. Doing so allows us capture environment variables that were added/removed during script execution. Reviewed-on: gitea/helm-chart#724 Reviewed-by: pat-s <pat-s@noreply.gitea.com> Co-authored-by: justusbunsi <sk.bunsenbrenner@gmail.com> Co-committed-by: justusbunsi <sk.bunsenbrenner@gmail.com>
26 lines 582 B Makefile
26 lines
582 B
Makefile
SHELL := /usr/bin/env bash -O globstar | |
| |
.PHONY: prepare-environment | |
prepare-environment: | |
npm install | |
| |
.PHONY: readme | |
readme: prepare-environment | |
npm run readme:parameters | |
npm run readme:lint | |
| |
.PHONY: unittests | |
unittests: unittests-helm unittests-bash | |
| |
.PHONY: unittests-helm | |
unittests-helm: | |
helm unittest --strict -f 'unittests/helm/**/*.yaml' -f 'unittests/helm/values-conflicting-checks.yaml' ./ | |
| |
.PHONY: unittests-bash | |
unittests-bash: | |
./unittests/bash/bats/bin/bats --pretty ./unittests/bash/tests/**/*.bats | |
| |
.PHONY: helm | |
update-helm-dependencies: | |
helm dependency update | |
|