@@ -10,20 +10,81 @@ source $CONVENTION_ROOT/_lib/common.sh
1010# Expect POST
1111[[ " $1 " == " POST" ]] || err " Got a parameter I don't understand: '$1 '. Did the infrastructure change?"
1212
13- DOCKERFILE=test/e2e/Dockerfile
14- if [[ -n ${KONFLUX_BUILDS} && -f " ${DOCKERFILE} " ]]; then
15- E2E_SUITE_BUILDER_IMAGE=" brew.registry.redhat.io/rh-osbs/openshift-golang-builder:rhel_8_1.22"
16- ${SED?} -i " 2s,.*,FROM $E2E_SUITE_BUILDER_IMAGE AS builder," " ${DOCKERFILE} "
13+ OPERATOR_NAME=$( sed -n ' s/.*OperatorName .*"\([^"]*\)".*/\1/p' " ${REPO_ROOT} /config/config.go" )
14+ REPO_ROOT=$( git rev-parse --show-toplevel)
15+ E2E_SUITE_DIRECTORY=$REPO_ROOT /test/e2e
16+
17+ # Update operator name in templates
18+ OPERATOR_UNDERSCORE_NAME=${OPERATOR_NAME// -/ _}
19+ OPERATOR_PROPER_NAME=$( echo " $OPERATOR_NAME " | sed ' s/-/ /g' | awk ' {for(i=1;i<=NF;i++){ $i=toupper(substr($i,1,1)) substr($i,2) }}1' )
20+ OPERATOR_NAME_CAMEL_CASE=${OPERATOR_PROPER_NAME// / }
21+
22+ mkdir -p " ${E2E_SUITE_DIRECTORY} "
23+
24+ E2E_SUITE_BUILDER_IMAGE=registry.ci.openshift.org/openshift/release:rhel-8-release-golang-1.23-openshift-4.19
25+ if [[ -n ${KONFLUX_BUILDS} ]]; then
26+ E2E_SUITE_BUILDER_IMAGE=" brew.registry.redhat.io/rh-osbs/openshift-golang-builder:rhel_8_1.23"
27+ fi
28+
29+ echo " syncing ${E2E_SUITE_DIRECTORY} /Dockerfile"
30+ tee " ${E2E_SUITE_DIRECTORY} /Dockerfile" << EOF
31+ # THIS FILE IS GENERATED BY BOILERPLATE. DO NOT EDIT.
32+ FROM ${E2E_SUITE_BUILDER_IMAGE} as builder
33+ WORKDIR /go/src/github.com/openshift/$OPERATOR_NAME /
34+ COPY . .
35+ RUN CGO_ENABLED=0 GOFLAGS="-mod=mod" go test ./test/e2e -v -c --tags=osde2e -o /e2e.test
36+
37+ FROM registry.access.redhat.com/ubi8/ubi-minimal:latest
38+ COPY --from=builder ./e2e.test e2e.test
39+ ENTRYPOINT [ "/e2e.test" ]
40+ EOF
41+
42+ if [ ! -f " ${E2E_SUITE_DIRECTORY} /${OPERATOR_UNDERSCORE_NAME} _tests.go" ]; then
43+ echo " syncing ${E2E_SUITE_DIRECTORY} /${OPERATOR_UNDERSCORE_NAME} _tests.go"
44+ tee " ${E2E_SUITE_DIRECTORY} /${OPERATOR_UNDERSCORE_NAME} _tests.go" << EOF
45+ // DO NOT REMOVE TAGS BELOW. IF ANY NEW TEST FILES ARE CREATED UNDER /test/e2e, PLEASE ADD THESE TAGS TO THEM IN ORDER TO BE EXCLUDED FROM UNIT TESTS.
46+ //go:build osde2e
47+
48+ package osde2etests
49+
50+ import "github.com/onsi/ginkgo/v2"
51+
52+ var _ = ginkgo.Describe("$OPERATOR_NAME ", func() {
53+ // Add your tests
54+ })
55+ EOF
1756fi
1857
19- # Updates for SDCICD-1414
20- [[ ! -d osde2e ]] && exit 0
21- [[ -d test/e2e ]] && exit 0
58+ echo " syncing ${E2E_SUITE_DIRECTORY} /${OPERATOR_UNDERSCORE_NAME} _runner_test.go"
59+ tee " ${E2E_SUITE_DIRECTORY} /${OPERATOR_UNDERSCORE_NAME} _runner_test.go" << EOF
60+ // THIS FILE IS GENERATED BY BOILERPLATE. DO NOT EDIT.
61+ //go:build osde2e
62+
63+ package osde2etests
64+
65+ import (
66+ "os"
67+ "path/filepath"
68+ "testing"
69+
70+ . "github.com/onsi/ginkgo/v2"
71+ . "github.com/onsi/gomega"
72+ )
73+
74+ const (
75+ testResultsDirectory = "/test-run-results"
76+ jUnitOutputFilename = "junit-${OPERATOR_NAME} .xml"
77+ )
2278
23- mkdir -p test/e2e/
24- mv osde2e/* test/e2e/
25- rm -rf osde2e/
79+ // Test entrypoint. osde2e runs this as a test suite on test pod.
80+ func Test${OPERATOR_NAME_CAMEL_CASE} (t *testing.T) {
81+ RegisterFailHandler(Fail)
82+ suiteConfig, reporterConfig := GinkgoConfiguration()
83+ if _, ok := os.LookupEnv("DISABLE_JUNIT_REPORT"); !ok {
84+ reporterConfig.JUnitReport = filepath.Join(testResultsDirectory, jUnitOutputFilename)
85+ }
86+ RunSpecs(t, "${OPERATOR_PROPER_NAME} ", suiteConfig, reporterConfig)
87+ }
88+ EOF
2689
27- if [[ -f " ${DOCKERFILE} " ]]; then
28- ${SED?} -i " s/\.\/osde2e/\.\/test\/e2e/" " ${DOCKERFILE} "
29- fi
90+ sed -e " s/\$ {OPERATOR_NAME}/${OPERATOR_NAME} /" $( dirname $0 ) /test-harness-template.yml > " ${E2E_SUITE_DIRECTORY} /test-harness-template.yml"
0 commit comments