2525 - run : go version
2626 - name : Run testing
2727 run : CGO_ENABLED=0 go test -v $(go list ./pkg/...)
28+
2829 int-test :
2930 name : Integration tests
3031 runs-on : ubuntu-latest
4344 ATLAS_PUBLIC_KEY : ${{ secrets.ATLAS_PUBLIC_KEY }}
4445 ATLAS_PRIVATE_KEY : ${{ secrets.ATLAS_PRIVATE_KEY }}
4546
47+ prepare-e2e :
48+ name : Prepare E2E configuration and image
49+ needs : [unit-test]
50+ runs-on : ubuntu-latest
51+ steps :
52+
53+ - name : Check out code
54+ uses : actions/checkout@v2.3.1
55+
56+ - name : Prepare tag
57+ id : prepare
58+ uses : ./.github/actions/set-tag
59+
60+ - name : Push Atlas Operator to Registry
61+ uses : docker/build-push-action@v1
62+ with :
63+ username : ${{ secrets.DOCKER_USERNAME }}
64+ password : ${{ secrets.DOCKER_PASSWORD }}
65+ repository : ${{ secrets.DOCKER_REPO }}
66+ registry : ${{ secrets.DOCKER_REGISTRY }}
67+ tags : ${{ steps.prepare.outputs.tag }}
68+
69+ e2e :
70+ name : E2E tests
71+ needs : prepare-e2e
72+ runs-on : ubuntu-latest
73+ strategy :
74+ fail-fast : false
75+ matrix :
76+ # k8s: ["1.17-kind", "1.19-kind", "1.17-opeshift"] # <supported platform version>-<platform>
77+ k8s : ["v1.18.15-kind"] # <K8sGitVersion>-<Platform>
78+ test : ["all-in-one"] # TODO refactor
79+ steps :
80+
81+ - name : Check out code
82+ uses : actions/checkout@v2.3.1
83+
84+ - name : Prepare tag
85+ id : prepare
86+ uses : ./.github/actions/set-tag
87+
88+ - name : Generate configuration for the tests
89+ uses : ./.github/actions/gen-install-scripts
90+ with :
91+ IMAGE_URL : ${{ secrets.DOCKER_REPO }}:${{ steps.prepare.outputs.tag }}
92+ ENV : dev
93+
94+ - name : Set properties
95+ id : properties
96+ run : |
97+ version=$(echo ${{ matrix.k8s }} | awk -F "-" '{print $1}')
98+ platform=$(echo ${{ matrix.k8s }} | awk -F "-" '{print $2}')
99+ echo "::set-output name=k8s_version::$version"
100+ echo "::set-output name=k8s_platform::$platform"
101+
102+ # run if platform = kind #TODO
103+ - name : Create k8s Kind Cluster
104+ if : ${{ steps.properties.outputs.k8s_platform == 'kind' && !env.ACT }}
105+ uses : helm/kind-action@v1.1.0
106+ with :
107+ node_image : kindest/node:${{ steps.properties.outputs.k8s_version }}
108+ cluster_name : ${{ matrix.k8s }}
109+
110+ - name : Setup Go
111+ if : ${{ steps.properties.outputs.k8s_platform == 'kind' && !env.ACT }}
112+ uses : actions/setup-go@v2
113+ with :
114+ go-version : ' 1.15.6'
115+
116+ - name : Install MongoCLI
117+ run : |
118+ sudo apt-get update
119+ sudo apt-get install -y mongocli
120+ mongocli --version
121+
122+ - name : Run e2e test
123+ if : ${{ steps.properties.outputs.k8s_platform == 'kind' && !env.ACT }}
124+ env :
125+ MCLI_PUBLIC_API_KEY : ${{ secrets.ATLAS_PUBLIC_KEY }}
126+ MCLI_PRIVATE_API_KEY : ${{ secrets.ATLAS_PRIVATE_KEY }}
127+ MCLI_ORG_ID : ${{ secrets.ATLAS_ORG_ID}}
128+ MCLI_OPS_MANAGER_URL : " https://cloud-qa.mongodb.com/"
129+ K8S_PLATFORM : " ${{ steps.properties.outputs.k8s_platform }}"
130+ K8S_VERSION : " ${{ steps.properties.outputs.k8s_version }}"
131+ TEST_NAME : " ${{ matrix.test }}"
132+ run : |
133+ kubectl version
134+
135+ go version
136+ go get github.com/onsi/ginkgo/ginkgo && \
137+ go get github.com/onsi/gomega/...
138+ ginkgo ./test/e2e -x -focus "${TEST_NAME}"
139+
140+
141+ # TODO if int test failed - stop e2e, add job for cleanup Atlas projects/clusters
0 commit comments