k8s.io/registry.k8s.io@v0.3.1/hack/make-rules/e2e-test.sh (about)

     1  #!/usr/bin/env bash
     2  
     3  # Copyright 2022 The Kubernetes Authors.
     4  #
     5  # Licensed under the Apache License, Version 2.0 (the "License");
     6  # you may not use this file except in compliance with the License.
     7  # You may obtain a copy of the License at
     8  #
     9  #     http://www.apache.org/licenses/LICENSE-2.0
    10  #
    11  # Unless required by applicable law or agreed to in writing, software
    12  # distributed under the License is distributed on an "AS IS" BASIS,
    13  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  # See the License for the specific language governing permissions and
    15  # limitations under the License.
    16  
    17  # script to run unit / integration tests, with coverage enabled and junit xml output
    18  set -o errexit -o nounset -o pipefail
    19  
    20  # cd to the repo root and setup go
    21  REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd -P)"
    22  cd "${REPO_ROOT}"
    23  source hack/tools/setup-go.sh
    24  
    25  # build gotestsum
    26  cd 'hack/tools'
    27  go build -o "${REPO_ROOT}/bin/gotestsum" gotest.tools/gotestsum
    28  cd "${REPO_ROOT}"
    29  
    30  # run e2e tests with junit output
    31  # TODO: because we expect relatively few packages to have e2e we only
    32  # test those packages to limit CI noise, but this approach would work with ./...
    33  # at the cost of reporting lots of no-test packages
    34  # (versus the combined integration and unit testing results)
    35  # this is also slightly faster
    36  (
    37    set -x;
    38    "${REPO_ROOT}/bin/gotestsum" --junitfile="${REPO_ROOT}/bin/e2e-junit.xml" \
    39      -- '-run' '^TestE2E' './cmd/archeio/internal/e2e'
    40  )
    41  
    42  # if we are in CI, copy to the artifact upload location
    43  if [[ -n "${ARTIFACTS:-}" ]]; then
    44    cp "bin/e2e-junit.xml" "${ARTIFACTS:?}/junit.xml"
    45  fi