PromucFlow_constructor/app/client/cypress/setup-test.sh
Arpit Mohan 9d2b017bf3
Making the nginx root configuration also configurable. (#694)
This is required for enabling custom logging. In future, we can leverage this for proxy caching as well.

Not adding this nginx-root.conf.template file to the installation script because there's nothing for the user to configure there during installation. This file will be baked into the Dockerfile and only the environment variables will be replaced during container start.
2020-10-16 10:00:33 +05:30

75 lines
2.9 KiB
Bash
Executable File

#! /bin/sh
# This script is responsible for setting up the local Nginx server for running E2E Cypress tests
# on our CI/CD system. Currently the script is geared towards Github Actions
# Serve the react bundle on a specific port. Nginx will proxy to this port
echo "Starting the setup the test framework"
sudo echo "127.0.0.1 dev.appsmith.com" | sudo tee -a /etc/hosts
serve -s build -p 3000 &
# Substitute all the env variables in nginx
vars_to_substitute=$(printf '\$%s,' $(env | grep -o "^APPSMITH_[A-Z0-9_]\+" | xargs))
cat ./docker/templates/nginx-linux.conf.template | envsubst ${vars_to_substitute} | sed -e 's|\${\(APPSMITH_[A-Z0-9_]*\)}||g' > ./docker/nginx.conf
cat ./docker/templates/nginx-root.conf.template | envsubst ${vars_to_substitute} | sed -e 's|\${\(APPSMITH_[A-Z0-9_]*\)}||g' > ./docker/nginx-root.conf
# Create the SSL files for Nginx. Required for service workers to work properly.
touch ./docker/dev.appsmith.com.pem ./docker/dev.appsmith.com-key.pem
echo "$APPSMITH_SSL_CERTIFICATE" > ./docker/dev.appsmith.com.pem
echo "$APPSMITH_SSL_KEY" > ./docker/dev.appsmith.com-key.pem
echo "Going to run the nginx server"
sudo docker pull nginx:latest
sudo docker run --network host --name wildcard-nginx -d -p 80:80 -p 443:443 \
-v `pwd`/docker/nginx-root.conf:/etc/nginx/nginx.conf \
-v `pwd`/docker/nginx.conf:/etc/nginx/conf.d/app.conf \
-v `pwd`/docker/dev.appsmith.com.pem:/etc/certificate/dev.appsmith.com.pem \
-v `pwd`/docker/dev.appsmith.com-key.pem:/etc/certificate/dev.appsmith.com-key.pem \
nginx:latest &
echo "Sleeping for 10 seconds to let the server start"
sleep 10
# Create the test user
curl -k --request POST -v 'https://dev.appsmith.com/api/v1/users' \
--header 'Content-Type: application/json' \
--data-raw '{
"name" : "'"$CYPRESS_USERNAME"'",
"email" : "'"$CYPRESS_USERNAME"'",
"source" : "FORM",
"state" : "ACTIVATED",
"isEnabled" : "true",
"password": "'"$CYPRESS_PASSWORD"'"
}'
#Create another testUser1
curl -k --request POST -v 'https://dev.appsmith.com/api/v1/users' \
--header 'Content-Type: application/json' \
--data-raw '{
"name" : "'"$CYPRESS_TESTUSERNAME1"'",
"email" : "'"$CYPRESS_TESTUSERNAME1"'",
"source" : "FORM",
"state" : "ACTIVATED",
"isEnabled" : "true",
"password": "'"$CYPRESS_TESTPASSWORD1"'"
}'
#Create another testUser2
curl -k --request POST -v 'https://dev.appsmith.com/api/v1/users' \
--header 'Content-Type: application/json' \
--data-raw '{
"name" : "'"$CYPRESS_TESTUSERNAME2"'",
"email" : "'"$CYPRESS_TESTUSERNAME2"'",
"source" : "FORM",
"state" : "ACTIVATED",
"isEnabled" : "true",
"password": "'"$CYPRESS_TESTPASSWORD2"'"
}'
# DEBUG=cypress:* $(npm bin)/cypress version
# sed -i -e "s|api_url:.*$|api_url: $CYPRESS_URL|g" /github/home/.cache/Cypress/4.1.0/Cypress/resources/app/packages/server/config/app.yml
# cat /github/home/.cache/Cypress/4.1.0/Cypress/resources/app/packages/server/config/app.yml