github.com/pachyderm/pachyderm@v1.13.4/.testfaster.yml (about)

     1  name: Pachyderm
     2  
     3  base:
     4    # NB: use:
     5    #     testctl ssh --tty=false -- docker images --format "{{.Repository}}:{{.Tag}}" |sort |sed 's/^/   - /g'
     6    # to refresh this list
     7    # (to get extra fancy, highlight the following lines in vim and type :! and then
     8    # the above command to replace it inline)
     9    preload_docker_images:
    10     - bash:4
    11     - dockermuenster/caddy:0.9.3
    12     - gcr.io/google_containers/kube-state-metrics:v0.5.0
    13     - gcr.io/k8s-minikube/storage-provisioner:v1.8.1
    14     - giantswarm/tiny-tools:latest
    15     - golang:1.12.1
    16     - golang:1.13.8
    17     - golang:1.14.2
    18     - golang:1.15.4
    19     - grafana/grafana:4.2.0
    20     - grafana/loki:2.0.0
    21     - grafana/promtail:2.0.0
    22     - k8s.gcr.io/coredns:1.6.7
    23     - k8s.gcr.io/etcd:3.4.3-0
    24     - k8s.gcr.io/kube-apiserver:v1.18.3
    25     - k8s.gcr.io/kube-controller-manager:v1.18.3
    26     - k8s.gcr.io/kube-proxy:v1.18.3
    27     - k8s.gcr.io/kube-scheduler:v1.18.3
    28     - k8s.gcr.io/pause:3.2
    29     - pachyderm/dash:0.5.48
    30     - pachyderm/etcd:v3.3.5
    31     - pachyderm/grpc-proxy:0.4.10
    32     - pachyderm/opencv:latest
    33     - pachyderm/ubuntuplusnetcat:latest
    34     - postgres:13.0-alpine
    35     - prom/node-exporter:v0.14.0
    36     - prom/prometheus:v1.7.0
    37     - python:latest
    38     - quay.io/prometheus/alertmanager:v0.7.1
    39     - ubuntu:16.04
    40     - ubuntu:18.04
    41     - ubuntu:latest
    42     - v4tech/imagemagick:latest
    43  
    44    # TODO: make this optional
    45    kernel_image: "quay.io/testfaster/ignite-kernel"
    46  
    47    os_dockerfile: |-
    48      FROM quay.io/testfaster/kube-ubuntu
    49      ENV cache-bust 19
    50      RUN apt-get update && apt-get install -y build-essential gettext-base socat shellcheck rsync jq pv silversearcher-ag
    51      RUN cd /root && wget -nv -O - https://dl.google.com/go/go1.15.4.linux-amd64.tar.gz | tar -zxf -
    52      ENV GOPATH=/root/go
    53      ENV PATH=/root/go/bin:${PATH}
    54      RUN echo "AcceptEnv ENT_ACT_CODE BUCKET PPS_BUCKETS AUTH_BUCKETS GOPROXY CIRCLE_BRANCH RUN_BAD_TESTS DOCKER_PWD AMAZON_CLIENT_ID AMAZON_CLIENT_SECRET AMAZON_CLIENT_BUCKET AMAZON_CLIENT_REGION ECS_CLIENT_ID ECS_CLIENT_SECRET ECS_CLIENT_BUCKET ECS_CLIENT_CUSTOM_ENDPOINT GOOGLE_CLIENT_BUCKET GOOGLE_CLIENT_CREDS GOOGLE_CLIENT_HMAC_ID GOOGLE_CLIENT_HMAC_SECRET GOOGLE_CLIENT_REGION MICROSOFT_CLIENT_ID MICROSOFT_CLIENT_SECRET MICROSOFT_CLIENT_CONTAINER" >> /etc/ssh/sshd_config
    55      RUN mkdir /root/project
    56      WORKDIR /root/project
    57      # Warm up go mod cache and go build cache we set VERSION_ADDITIONAL so that
    58      # Makefile uses cacheable build params (version).  Also cache the go deps
    59      # the linter uses (we don't really care if the linter passes)
    60      RUN git clone https://github.com/pachyderm/pachyderm && \
    61          cd pachyderm && \
    62          git checkout 89f9f1fb9c87343d5e4cc43a70317742534c8612 && \
    63          CIRCLE_BRANCH=1 make install && \
    64          PATH="/root/go/bin:${PATH}" etc/testing/lint.sh || true
    65      RUN wget -nv https://github.com/instrumenta/kubeval/releases/download/0.15.0/kubeval-linux-amd64.tar.gz && \
    66          tar xf kubeval-linux-amd64.tar.gz && \
    67          cp kubeval /usr/local/bin && \
    68          rm kubeval-linux-amd64.tar.gz
    69      RUN cd /usr/local/ && \
    70          wget -nv -O - https://install.goreleaser.com/github.com/goreleaser/goreleaser.sh | sh
    71  
    72    docker_bake_script: |-
    73      #!/bin/bash
    74      set -xeuo pipefail
    75      cd /root/project/pachyderm
    76      # we set CIRCLE_BRANCH so that Makefile uses cacheable
    77      # build params (version)
    78      export CIRCLE_BRANCH=1
    79      export GOPATH=/root/go
    80      export PATH=/root/go/bin:${PATH}
    81      # warm up docker buildkit go mod cache and go build cache
    82      git config user.email "donotreply@pachyderm.com"
    83      git config user.name "anonymous"
    84      git tag -f -am "Circl CI test bake script" v0.0.1-circle-test-base-imagea
    85      # VERSION is used by docker-build-pipeline-build (Env.VERSION in
    86      # goreleaser/docker-build-pipelines.yml), needs to be something like
    87      # '1.12.0-CIbuild'
    88      export VERSION="$(pachctl version --client-only)"
    89      echo "Using VERSION=$VERSION"
    90      make docker-build
    91      # build docker images that are used in tests
    92      (cd etc/testing/images/ubuntu_with_s3_clients; make image)
    93      make docker-build-kafka
    94      make docker-build-spout-test
    95      make docker-build-test-entrypoint
    96      make docker-build-pipeline-build
    97      make docker-build-proto
    98      set +x
    99      echo "============= POST BAKE IMAGES =================="
   100      docker images
   101      echo "================================================="
   102  
   103    prewarm_script: |-
   104      #!/bin/bash
   105      set -euo pipefail
   106  
   107      cd /root/project/pachyderm
   108  
   109      # re-warm OS file cache etc, e.g. load the file metadata into VM memory to
   110      # make the actual build faster (it's already been cached on disk from the
   111      # previous stages)
   112      export CIRCLE_BRANCH=1
   113      export GOPATH=/root/go
   114      export PATH=/root/go/bin:${PATH}
   115      make install
   116      git config user.email "donotreply@pachyderm.com"
   117      git config user.name "anonymous"
   118      git tag -f -am "Circl CI test prewarm script" v0.0.1-circle-test-base-image
   119      make docker-build
   120  
   121      # start services used by tests
   122      make launch-loki
   123  
   124      # leave a clue that the VM is ready..
   125      touch /TESTFASTER_PREWARM_COMPLETE
   126  
   127    kubernetes_version: 'v1.18.3'
   128  
   129  runtime:
   130    cpus: 4
   131    memory: 8GB
   132    disk: 50GB
   133  
   134  prewarm_pool_size: 12
   135  max_pool_size: 24
   136  # timeout vms after 1hr. hopefully tests will clean them up sooner, but if the
   137  # tests themselves timeout and cleanup doesn't get run...
   138  default_lease_timeout: 1h