github.com/freiheit-com/kuberpult@v1.24.2-0.20240328135542-315d5630abe6/charts/kuberpult/Earthfile (about) 1 VERSION 0.7 2 3 deps: 4 FROM python:3.12-alpine 5 WORKDIR /deps 6 7 RUN apk add envsubst curl git 8 9 RUN pip install yamale yamllint 10 11 RUN curl --fail --silent --show-error --location --remote-name "https://get.helm.sh/helm-v3.14.2-linux-amd64.tar.gz" 12 RUN echo 0885a501d586c1e949e9b113bf3fb3290b0bbf74db9444a1d8c2723a143006a5 helm-v3.14.2-linux-amd64.tar.gz | sha256sum -c 13 RUN tar xzf helm-v3.14.2-linux-amd64.tar.gz 14 RUN mv linux-amd64/helm /usr/local/bin/helm 15 RUN chmod +x /usr/local/bin/helm 16 17 RUN curl --fail --silent --show-error --location --remote-name "https://github.com/mikefarah/yq/releases/download/v4.41.1/yq_linux_amd64" 18 RUN echo ce0d5a61c256a463fd32f67f133e0c2948bc2cf77d44c42ff335a40e6bef34bf yq_linux_amd64 | sha256sum -c 19 RUN mv yq_linux_amd64 /usr/local/bin/yq 20 RUN chmod +x /usr/local/bin/yq 21 22 RUN curl --fail --silent --show-error --location --remote-name "https://github.com/helm/chart-testing/releases/download/v3.10.1/chart-testing_3.10.1_linux_amd64.tar.gz" 23 RUN echo 6f48140d92d4c4be52b31bf84a8b5d50fb815df721920d6751d4cbccdd3bac2b chart-testing_3.10.1_linux_amd64.tar.gz | sha256sum -c 24 RUN tar xzf chart-testing_3.10.1_linux_amd64.tar.gz 25 RUN mv ct /usr/local/bin/ct 26 RUN chmod +x /usr/local/bin/ct 27 28 chart.yaml: 29 LOCALLY 30 ARG VERSION=$(git describe --always --long --tags || echo 0.0.1) 31 32 FROM +deps 33 WORKDIR /kp 34 35 COPY Chart.yaml.tpl . 36 37 RUN env VERSION=$VERSION envsubst < Chart.yaml.tpl > Chart.yaml 38 39 SAVE ARTIFACT Chart.yaml AS LOCAL Chart.yaml 40 41 chart-tarball: 42 LOCALLY 43 ARG VERSION=$(git describe --always --long --tags || echo 0.0.1) 44 45 FROM +deps 46 WORKDIR /kp 47 48 COPY +chart.yaml/Chart.yaml . 49 COPY values.yaml . 50 COPY templates templates 51 52 RUN helm dependency update 53 RUN rm -rf charts 54 RUN helm dependency update 55 RUN tar -xzvf charts/*.tgz --directory=charts 56 57 RUN helm package . 58 59 SAVE ARTIFACT kuberpult-${VERSION}.tgz AS LOCAL kuberpult-$VERSION.tgz 60 61 test-values.yaml: 62 FROM +deps 63 WORKDIR /kp 64 65 COPY values.yaml . 66 COPY ci ci 67 68 RUN grep -o '^[^#]*' values.yaml > ci/test-values.yaml 69 RUN yq eval-all -i 'select(fileIndex == 0) * select(fileIndex == 1)' ci/test-values.yaml ci/test-values-override.yaml 70 71 SAVE ARTIFACT ci/test-values.yaml AS LOCAL ci/test-values.yaml 72 73 ct-test: 74 LOCALLY 75 ARG VERSION=$(git describe --always --long --tags || echo 0.0.1) 76 77 FROM +deps 78 WORKDIR /kp 79 80 COPY ci ci 81 COPY (+chart.yaml/Chart.yaml --VERSION=$VERSION) . 82 COPY values.yaml . 83 COPY templates templates 84 85 RUN ct lint --debug --chart-yaml-schema=ci/chart_schema.yaml --lint-conf=ci/lintconf.yaml --chart-dirs=. --charts=. --remote=git@github.com:freiheit-com/kuberpult.git 86 87 test-helm: 88 LOCALLY 89 ARG VERSION=$(git describe --always --long --tags || echo 0.0.1) 90 91 FROM +deps 92 WORKDIR /kp 93 94 COPY (+chart-tarball/kuberpult-*.tgz --VERSION=$VERSION) . 95 96 RUN helm lint kuberpult-*.tgz --set git.url=test --set ingress.domainName=kuberpult.example.com 97 98 test: 99 LOCALLY 100 ARG VERSION=$(git describe --always --long --tags || echo 0.0.1) 101 102 BUILD +ct-test --VERSION=$VERSION 103 BUILD +test-helm --VERSION=$VERSION 104 105 clean: 106 LOCALLY 107 108 RUN rm -rf Chart.yaml 109 RUN rm -rf ci/test-values.yaml 110 RUN rm -rf kuberpult-*.tgz