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