mirror of
https://github.com/helm/chart-testing.git
synced 2026-02-05 09:45:14 +01:00
* support execution of additional commands for lint
Given that helm unittest is installed locally or mounted into the chart
testing container one could use this to run helm unittest for each
chart.
```
additional-commands:
- helm unittest --helm3 -f tests/*.yaml {{ .Path }}
```
The command is treated as a go template. Like this it's possible to get
the path to the chart as in the example. It would also be open for
further extension if needed.
Signed-off-by: Torsten Walter <mail@torstenwalter.de>
* Use sh to execute command
Signed-off-by: Torsten Walter <mail@torstenwalter.de>
Co-authored-by: Reinhard Nägele <unguiculus@gmail.com>
* rename function to NewCmdTemplateExecutor
Signed-off-by: Torsten Walter <mail@torstenwalter.de>
* add error handling
Signed-off-by: Torsten Walter <mail@torstenwalter.de>
* add documentation
Signed-off-by: Torsten Walter <mail@torstenwalter.de>
* use go-shellwords to split rendered command
Signed-off-by: Torsten Walter <mail@torstenwalter.de>
* Update pkg/tool/cmdexecutor.go
Signed-off-by: Torsten Walter <mail@torstenwalter.de>
Co-authored-by: Reinhard Nägele <unguiculus@gmail.com>
* add unit tests
Signed-off-by: Torsten Walter <mail@torstenwalter.de>
Co-authored-by: Reinhard Nägele <unguiculus@gmail.com>
45 lines
1.3 KiB
Docker
45 lines
1.3 KiB
Docker
FROM alpine:3.12
|
|
|
|
RUN apk --no-cache add \
|
|
bash \
|
|
curl \
|
|
git \
|
|
libc6-compat \
|
|
openssh-client \
|
|
py3-pip \
|
|
py3-wheel \
|
|
python3 && \
|
|
pip install --upgrade pip==20.2.3
|
|
|
|
# Install a YAML Linter
|
|
ARG yamllint_version=1.24.2
|
|
LABEL yamllint_version=$yamllint_version
|
|
RUN pip install "yamllint==$yamllint_version"
|
|
|
|
# Install Yamale YAML schema validator
|
|
ARG yamale_version=3.0.4
|
|
LABEL yamale_version=$yamale_version
|
|
RUN pip install "yamale==$yamale_version"
|
|
|
|
# Install kubectl
|
|
ARG kubectl_version=v1.19.2
|
|
LABEL kubectl_version=$kubectl_version
|
|
RUN curl -LO "https://storage.googleapis.com/kubernetes-release/release/$kubectl_version/bin/linux/amd64/kubectl" && \
|
|
chmod +x kubectl && \
|
|
mv kubectl /usr/local/bin/
|
|
|
|
# Install Helm
|
|
ARG helm_version=v3.3.4
|
|
LABEL helm_version=$helm_version
|
|
RUN curl -LO "https://get.helm.sh/helm-$helm_version-linux-amd64.tar.gz" && \
|
|
mkdir -p "/usr/local/helm-$helm_version" && \
|
|
tar -xzf "helm-$helm_version-linux-amd64.tar.gz" -C "/usr/local/helm-$helm_version" && \
|
|
ln -s "/usr/local/helm-$helm_version/linux-amd64/helm" /usr/local/bin/helm && \
|
|
rm -f "helm-$helm_version-linux-amd64.tar.gz"
|
|
|
|
COPY ./etc/chart_schema.yaml /etc/ct/chart_schema.yaml
|
|
COPY ./etc/lintconf.yaml /etc/ct/lintconf.yaml
|
|
COPY ct /usr/local/bin/ct
|
|
# Ensure that the binary is available on path and is executable
|
|
RUN ct --help
|