Skip to content

Commit 46a8e89

Browse files
author
Rishabh
committed
makes CICD run in parallel
1 parent 5801ca0 commit 46a8e89

File tree

6 files changed

+341
-89
lines changed

6 files changed

+341
-89
lines changed
Lines changed: 2 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -21,50 +21,6 @@ while IFS='"' read -ra ADDR; do
2121
done
2222
done <<< "$version"
2323

24-
responseStatus=`curl -s -o /dev/null -w "%{http_code}" -X PUT \
25-
https://api.supertokens.io/0/driver \
26-
-H 'Content-Type: application/json' \
27-
-H 'api-version: 0' \
28-
-d "{
29-
\"password\": \"$SUPERTOKENS_API_KEY\",
30-
\"version\":\"$version\",
31-
\"name\": \"node\",
32-
\"frontendDriverInterfaces\": $frontendDriverArray,
33-
\"coreDriverInterfaces\": $coreDriverArray
34-
}"`
35-
if [ $responseStatus -ne "200" ]
36-
then
37-
echo "failed core PUT API status code: $responseStatus. Exiting!"
38-
exit 1
39-
fi
40-
41-
someTestsRan=false
42-
i=0
43-
while [ $i -lt $coreDriverLength ]; do
44-
coreDriverVersion=`echo $coreDriverArray | jq ".[$i]"`
45-
coreDriverVersion=`echo $coreDriverVersion | tr -d '"'`
46-
i=$((i+1))
47-
48-
coreFree=`curl -s -X GET \
49-
"https://api.supertokens.io/0/core-driver-interface/dependency/core/latest?password=$SUPERTOKENS_API_KEY&planType=FREE&mode=DEV&version=$coreDriverVersion" \
50-
-H 'api-version: 0'`
51-
if [[ `echo $coreFree | jq .core` == "null" ]]
52-
then
53-
echo "fetching latest X.Y version for core given core-driver-interface X.Y version: $coreDriverVersion, planType: FREE gave response: $coreFree. Please make sure all relevant cores have been pushed."
54-
exit 1
55-
fi
56-
coreFree=$(echo $coreFree | jq .core | tr -d '"')
57-
58-
someTestsRan=true
59-
./setupAndTestWithFreeCore.sh $coreFree $coreDriverVersion
60-
if [[ $? -ne 0 ]]
61-
then
62-
echo "test failed... exiting!"
63-
exit 1
64-
fi
65-
rm -rf ../../supertokens-root
66-
done
67-
6824
someFrontendTestsRan=false
6925
i=0
7026
coreDriverVersion=`echo $coreDriverArray | jq ". | last"`
@@ -129,29 +85,6 @@ while [ $i -lt $frontendDriverLength ]; do
12985
nodeTag=$(echo $nodeInfo | jq .tag | tr -d '"')
13086

13187
someFrontendTestsRan=true
132-
tries=1
133-
while [ $tries -le 3 ]
134-
do
135-
tries=$(( $tries + 1 ))
136-
./setupAndTestWithFrontend.sh $coreFree $frontendTag $nodeTag
137-
if [[ $? -ne 0 ]]
138-
then
139-
if [[ $tries -le 3 ]]
140-
then
141-
rm -rf ../../supertokens-root
142-
rm -rf ../../supertokens-website
143-
echo "failed test.. retrying!"
144-
else
145-
echo "test failed... exiting!"
146-
exit 1
147-
fi
148-
else
149-
rm -rf ../../supertokens-root
150-
rm -rf ../../supertokens-website
151-
break
152-
fi
153-
done
154-
15588

15689
frontendAuthReactVersionXY=`curl -s -X GET \
15790
"https://api.supertokens.io/0/frontend-driver-interface/dependency/frontend/latest?password=$SUPERTOKENS_API_KEY&frontendName=auth-react&mode=DEV&version=$frontendDriverVersion" \
@@ -206,25 +139,8 @@ while [ $i -lt $frontendDriverLength ]; do
206139

207140
done
208141

209-
if [[ $someFrontendTestsRan = "true" ]] && [[ $someTestsRan = "true" ]]
142+
if [[ $someFrontendTestsRan = "false" ]]
210143
then
211-
echo "calling /driver PATCH to make testing passed"
212-
responseStatus=`curl -s -o /dev/null -w "%{http_code}" -X PATCH \
213-
https://api.supertokens.io/0/driver \
214-
-H 'Content-Type: application/json' \
215-
-H 'api-version: 0' \
216-
-d "{
217-
\"password\": \"$SUPERTOKENS_API_KEY\",
218-
\"version\":\"$version\",
219-
\"name\": \"node\",
220-
\"testPassed\": true
221-
}"`
222-
if [ $responseStatus -ne "200" ]
223-
then
224-
echo "patch api failed"
225-
exit 1
226-
fi
227-
else
228-
echo "no test ran"
144+
echo "no tests ran... failing!"
229145
exit 1
230146
fi

.circleci/config.yml

Lines changed: 90 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,16 @@ jobs:
1515
cd .circleci
1616
./publish.sh
1717
- slack/status
18-
test:
18+
test-dev-tag-as-not-passed:
19+
docker:
20+
- image: rishabhpoddar/supertokens_website_sdk_testing
21+
steps:
22+
- add_ssh_keys:
23+
fingerprints:
24+
- "b3:da:ef:15:52:aa:a3:69:c3:6b:14:0c:be:23:b7:c7"
25+
- checkout
26+
- run: (cd .circleci/ && ./markDevTagAsTestNotPassed.sh)
27+
test-unit:
1928
docker:
2029
- image: rishabhpoddar/supertokens_website_sdk_testing
2130
resource_class: large
@@ -27,7 +36,45 @@ jobs:
2736
- run: echo "127.0.0.1 localhost.org" >> /etc/hosts
2837
- run: apt-get install lsof
2938
- run: npm i -d
30-
- run: (cd .circleci/ && ./doTests.sh)
39+
- run: (cd .circleci/ && ./doUnitTests.sh)
40+
- slack/status
41+
test-website:
42+
docker:
43+
- image: rishabhpoddar/supertokens_website_sdk_testing
44+
resource_class: large
45+
steps:
46+
- add_ssh_keys:
47+
fingerprints:
48+
- "b3:da:ef:15:52:aa:a3:69:c3:6b:14:0c:be:23:b7:c7"
49+
- checkout
50+
- run: echo "127.0.0.1 localhost.org" >> /etc/hosts
51+
- run: apt-get install lsof
52+
- run: npm i -d
53+
- run: (cd .circleci/ && ./website.sh)
54+
- slack/status
55+
test-authreact:
56+
docker:
57+
- image: rishabhpoddar/supertokens_website_sdk_testing
58+
resource_class: large
59+
steps:
60+
- add_ssh_keys:
61+
fingerprints:
62+
- "b3:da:ef:15:52:aa:a3:69:c3:6b:14:0c:be:23:b7:c7"
63+
- checkout
64+
- run: echo "127.0.0.1 localhost.org" >> /etc/hosts
65+
- run: apt-get install lsof
66+
- run: npm i -d
67+
- run: (cd .circleci/ && ./authReact.sh)
68+
- slack/status
69+
test-success:
70+
docker:
71+
- image: rishabhpoddar/supertokens_website_sdk_testing
72+
steps:
73+
- add_ssh_keys:
74+
fingerprints:
75+
- "b3:da:ef:15:52:aa:a3:69:c3:6b:14:0c:be:23:b7:c7"
76+
- checkout
77+
- run: (cd .circleci/ && ./markAsSuccess.sh)
3178
- slack/status
3279
update-docs:
3380
docker:
@@ -50,7 +97,47 @@ workflows:
5097
only: /v[0-9]+(\.[0-9]+)*/
5198
branches:
5299
ignore: /.*/
53-
- test:
100+
- test-dev-tag-as-not-passed:
101+
filters:
102+
tags:
103+
only: /dev-v[0-9]+(\.[0-9]+)*/
104+
branches:
105+
ignore: /.*/
106+
- test-unit:
107+
requires:
108+
- test-dev-tag-as-not-passed
109+
context:
110+
- slack-notification
111+
filters:
112+
tags:
113+
only: /dev-v[0-9]+(\.[0-9]+)*/
114+
branches:
115+
ignore: /.*/
116+
- test-website:
117+
requires:
118+
- test-dev-tag-as-not-passed
119+
context:
120+
- slack-notification
121+
filters:
122+
tags:
123+
only: /dev-v[0-9]+(\.[0-9]+)*/
124+
branches:
125+
ignore: /.*/
126+
- test-authreact:
127+
requires:
128+
- test-dev-tag-as-not-passed
129+
context:
130+
- slack-notification
131+
filters:
132+
tags:
133+
only: /dev-v[0-9]+(\.[0-9]+)*/
134+
branches:
135+
ignore: /.*/
136+
- test-success:
137+
requires:
138+
- test-unit
139+
- test-website
140+
- test-authreact
54141
context:
55142
- slack-notification
56143
filters:

.circleci/doUnitTests.sh

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
coreDriverJson=`cat ../coreDriverInterfaceSupported.json`
2+
coreDriverLength=`echo $coreDriverJson | jq ".versions | length"`
3+
coreDriverArray=`echo $coreDriverJson | jq ".versions"`
4+
echo "got core driver relations"
5+
6+
frontendDriverJson=`cat ../frontendDriverInterfaceSupported.json`
7+
frontendDriverLength=`echo $frontendDriverJson | jq ".versions | length"`
8+
frontendDriverArray=`echo $frontendDriverJson | jq ".versions"`
9+
echo "got frontend driver relations"
10+
11+
# get driver version
12+
version=`cat ../package.json | grep -e '"version":'`
13+
while IFS='"' read -ra ADDR; do
14+
counter=0
15+
for i in "${ADDR[@]}"; do
16+
if [ $counter == 3 ]
17+
then
18+
version=$i
19+
fi
20+
counter=$(($counter+1))
21+
done
22+
done <<< "$version"
23+
24+
someTestsRan=false
25+
i=0
26+
while [ $i -lt $coreDriverLength ]; do
27+
coreDriverVersion=`echo $coreDriverArray | jq ".[$i]"`
28+
coreDriverVersion=`echo $coreDriverVersion | tr -d '"'`
29+
i=$((i+1))
30+
31+
coreFree=`curl -s -X GET \
32+
"https://api.supertokens.io/0/core-driver-interface/dependency/core/latest?password=$SUPERTOKENS_API_KEY&planType=FREE&mode=DEV&version=$coreDriverVersion" \
33+
-H 'api-version: 0'`
34+
if [[ `echo $coreFree | jq .core` == "null" ]]
35+
then
36+
echo "fetching latest X.Y version for core given core-driver-interface X.Y version: $coreDriverVersion, planType: FREE gave response: $coreFree. Please make sure all relevant cores have been pushed."
37+
exit 1
38+
fi
39+
coreFree=$(echo $coreFree | jq .core | tr -d '"')
40+
41+
someTestsRan=true
42+
./setupAndTestWithFreeCore.sh $coreFree $coreDriverVersion
43+
if [[ $? -ne 0 ]]
44+
then
45+
echo "test failed... exiting!"
46+
exit 1
47+
fi
48+
rm -rf ../../supertokens-root
49+
done
50+
51+
if [[ $someTestsRan = "false" ]]
52+
then
53+
echo "no tests ran... failing!"
54+
exit 1
55+
fi

.circleci/markAsSuccess.sh

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
coreDriverJson=`cat ../coreDriverInterfaceSupported.json`
2+
coreDriverLength=`echo $coreDriverJson | jq ".versions | length"`
3+
coreDriverArray=`echo $coreDriverJson | jq ".versions"`
4+
echo "got core driver relations"
5+
6+
frontendDriverJson=`cat ../frontendDriverInterfaceSupported.json`
7+
frontendDriverLength=`echo $frontendDriverJson | jq ".versions | length"`
8+
frontendDriverArray=`echo $frontendDriverJson | jq ".versions"`
9+
echo "got frontend driver relations"
10+
11+
# get driver version
12+
version=`cat ../package.json | grep -e '"version":'`
13+
while IFS='"' read -ra ADDR; do
14+
counter=0
15+
for i in "${ADDR[@]}"; do
16+
if [ $counter == 3 ]
17+
then
18+
version=$i
19+
fi
20+
counter=$(($counter+1))
21+
done
22+
done <<< "$version"
23+
24+
echo "calling /driver PATCH to make testing passed"
25+
responseStatus=`curl -s -o /dev/null -w "%{http_code}" -X PATCH \
26+
https://api.supertokens.io/0/driver \
27+
-H 'Content-Type: application/json' \
28+
-H 'api-version: 0' \
29+
-d "{
30+
\"password\": \"$SUPERTOKENS_API_KEY\",
31+
\"version\":\"$version\",
32+
\"name\": \"node\",
33+
\"testPassed\": true
34+
}"`
35+
if [ $responseStatus -ne "200" ]
36+
then
37+
echo "patch api failed"
38+
exit 1
39+
fi
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
coreDriverJson=`cat ../coreDriverInterfaceSupported.json`
2+
coreDriverLength=`echo $coreDriverJson | jq ".versions | length"`
3+
coreDriverArray=`echo $coreDriverJson | jq ".versions"`
4+
echo "got core driver relations"
5+
6+
frontendDriverJson=`cat ../frontendDriverInterfaceSupported.json`
7+
frontendDriverLength=`echo $frontendDriverJson | jq ".versions | length"`
8+
frontendDriverArray=`echo $frontendDriverJson | jq ".versions"`
9+
echo "got frontend driver relations"
10+
11+
# get driver version
12+
version=`cat ../package.json | grep -e '"version":'`
13+
while IFS='"' read -ra ADDR; do
14+
counter=0
15+
for i in "${ADDR[@]}"; do
16+
if [ $counter == 3 ]
17+
then
18+
version=$i
19+
fi
20+
counter=$(($counter+1))
21+
done
22+
done <<< "$version"
23+
24+
responseStatus=`curl -s -o /dev/null -w "%{http_code}" -X PUT \
25+
https://api.supertokens.io/0/driver \
26+
-H 'Content-Type: application/json' \
27+
-H 'api-version: 0' \
28+
-d "{
29+
\"password\": \"$SUPERTOKENS_API_KEY\",
30+
\"version\":\"$version\",
31+
\"name\": \"node\",
32+
\"frontendDriverInterfaces\": $frontendDriverArray,
33+
\"coreDriverInterfaces\": $coreDriverArray
34+
}"`
35+
if [ $responseStatus -ne "200" ]
36+
then
37+
echo "failed core PUT API status code: $responseStatus. Exiting!"
38+
exit 1
39+
fi

0 commit comments

Comments
 (0)