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.
75 lines
2.9 KiB
Bash
Executable File
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
|